SHA256
1
0
forked from pool/ffmpeg-7

avcodec/decode: clean-up if get_hw_frames_parameters fails (ffmpeg#11013, vlc#28811) #7

Manually merged
jengelh merged 2 commits from :master into master 2024-10-01 12:50:47 +02:00
3 changed files with 44 additions and 10 deletions

View File

@ -0,0 +1,27 @@
From: François Cartegnie <fcvlcdev@free.fr>
Date: Mon, 13 May 2024 11:37:27 +0000
Subject: avcodec/decode: clean-up if get_hw_frames_parameters fails
https://trac.ffmpeg.org/ticket/11013
https://code.videolan.org/videolan/vlc/-/issues/28811
Fixes the following assert:
[00007f1df83d17e0] vaapi generic error: avcodec_get_hw_frames_parameters failed: -22
Assertion p_dst->hwaccel_threadsafe || (!dst->hwaccel && !dst->internal->hwaccel_priv_data) failed at libavcodec/pthread_frame.c:349
Reproduced from VLC with VAAPI, when fallbacking from hw to sw.
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -344,6 +344,10 @@ FF_ENABLE_DEPRECATION_WARNINGS
return err;
}
+ // hwaccel could have failed init due to some params
+ if(!dst->hwaccel && dst->internal->hwaccel_priv_data)
+ ff_hwaccel_uninit(dst);
+
// reset dst hwaccel state if needed
av_assert0(p_dst->hwaccel_threadsafe ||
(!dst->hwaccel && !dst->internal->hwaccel_priv_data));

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Mon Sep 30 12:34:56 UTC 2024 - olaf@aepfle.de
- Fix assertion due to missing priv_data cleanup on failed VAAPI
acceleration with 11013-avcodec-decode-clean-up-if-get_hw_frames_parameters-.patch
(ffmpeg#11013, vlc#28811)
-------------------------------------------------------------------
Thu Sep 26 10:02:20 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- no longer build against libmfx; build also 15.5 against libvpl
(boo#1230983)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Aug 21 09:58:42 UTC 2024 - Jan Engelhardt <jengelh@inai.de> Wed Aug 21 09:58:42 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -111,6 +111,7 @@ Patch10: ffmpeg-chromium.patch
Patch91: ffmpeg-dlopen-openh264.patch Patch91: ffmpeg-dlopen-openh264.patch
Patch95: ffmpeg-7-fix-crashes.patch Patch95: ffmpeg-7-fix-crashes.patch
Patch96: 0001-libavcodec-arm-mlpdsp_armv5te-fix-label-format-to-wo.patch Patch96: 0001-libavcodec-arm-mlpdsp_armv5te-fix-label-format-to-wo.patch
Patch15: 11013-avcodec-decode-clean-up-if-get_hw_frames_parameters-.patch
BuildRequires: ladspa-devel BuildRequires: ladspa-devel
BuildRequires: libgsm-devel BuildRequires: libgsm-devel
BuildRequires: libmp3lame-devel >= 3.98.3 BuildRequires: libmp3lame-devel >= 3.98.3
@ -230,11 +231,7 @@ BuildRequires: pkgconfig(shaderc) >= 2019.1
BuildRequires: pkgconfig(vulkan) >= 1.3.255 BuildRequires: pkgconfig(vulkan) >= 1.3.255
%endif %endif
%if 0%{?suse_version} < 1550 && 0%{?sle_version} >= 150200 && 0%{?sle_version} < 150600 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500
%ifarch x86_64 %x86_64
BuildRequires: pkgconfig(libmfx)
%endif
%else
%ifarch x86_64 %x86_64 %ifarch x86_64 %x86_64
BuildRequires: pkgconfig(vpl) >= 2.6 BuildRequires: pkgconfig(vpl) >= 2.6
%endif %endif
@ -631,11 +628,7 @@ LDFLAGS="%_lto_cflags" \
%endif %endif
%endif %endif
--enable-lv2 \ --enable-lv2 \
%if 0%{?suse_version} < 1550 && 0%{?sle_version} >= 150200 && 0%{?sle_version} < 150600 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500
%ifarch x86_64 %x86_64
--enable-libmfx \
%endif
%else
%ifarch x86_64 %x86_64 %ifarch x86_64 %x86_64
--enable-libvpl \ --enable-libvpl \
%endif %endif
@ -825,6 +818,7 @@ Patch10: ffmpeg-chromium.patch
Patch91: ffmpeg-dlopen-openh264.patch Patch91: ffmpeg-dlopen-openh264.patch
Patch95: ffmpeg-7-fix-crashes.patch Patch95: ffmpeg-7-fix-crashes.patch
Patch96: 0001-libavcodec-arm-mlpdsp_armv5te-fix-label-format-to-wo.patch Patch96: 0001-libavcodec-arm-mlpdsp_armv5te-fix-label-format-to-wo.patch
Patch15: 11013-avcodec-decode-clean-up-if-get_hw_frames_parameters-.patch
BuildRequires: c_compiler BuildRequires: c_compiler
Requires: this-is-only-for-build-envs Requires: this-is-only-for-build-envs