From b5e47ff2c7e178a6704b921d5581378b01710e31 Mon Sep 17 00:00:00 2001 From: Pavel Dubsky Date: Wed, 24 Apr 2024 21:02:44 +0200 Subject: Remove deprecated avcodec_close Since FFmpeg n7.0 avcodec_close is marked as deprecated. According to the documentation avcodec_free_context should be used which is already true therefore the removal shouldn't cause any problems. Task-number: QTBUG-124482 Pick-to: 6.7.1 6.7 6.5 Change-Id: Ia2bdec8e9560441f99cc159b341ef60c1a39e88f Reviewed-by: Artem Dyomin --- src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec.cpp | 7 ------- src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec_p.h | 1 - src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp | 5 ++++- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec.cpp b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec.cpp index a99432c29..457b3603d 100644 --- a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec.cpp +++ b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec.cpp @@ -18,13 +18,6 @@ Codec::Data::Data(AVCodecContextUPtr context, AVStream *stream, AVFormatContext pixelAspectRatio = av_guess_sample_aspect_ratio(formatContext, stream, nullptr); } -Codec::Data::~Data() -{ - // TODO: investigate if we can remove avcodec_close - // FFmpeg doc says that avcodec_free_context is enough - avcodec_close(context.get()); -} - QMaybe Codec::create(AVStream *stream, AVFormatContext *formatContext) { if (!stream) diff --git a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec_p.h b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec_p.h index 5510e0e84..449fb1f65 100644 --- a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec_p.h +++ b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegcodec_p.h @@ -31,7 +31,6 @@ class Codec { Data(AVCodecContextUPtr context, AVStream *stream, AVFormatContext *formatContext, std::unique_ptr hwAccel); - ~Data(); QAtomicInt ref; AVCodecContextUPtr context; AVStream *stream = nullptr; diff --git a/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp b/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp index 58bf4dce7..ed2532e73 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp @@ -37,7 +37,7 @@ static Libs loadLibs() return {}; } -constexpr size_t symbolsCount = 38 +constexpr size_t symbolsCount = 40 #if VA_CHECK_VERSION(1, 9, 0) + 1 #endif @@ -114,6 +114,9 @@ DEFINE_FUNC(vaGetDisplayAttributes, 3, VA_STATUS_ERROR_OPERATION_FAILED); DEFINE_FUNC(vaSetDriverName, 2, VA_STATUS_ERROR_OPERATION_FAILED); +DEFINE_FUNC(vaAcquireBufferHandle, 3, VA_STATUS_ERROR_OPERATION_FAILED); +DEFINE_FUNC(vaReleaseBufferHandle, 2, VA_STATUS_ERROR_OPERATION_FAILED); + #ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS DEFINE_FUNC(vaGetDisplayDRM, 1); // va-drm #endif -- cgit v1.2.3