[FFmpeg-trac] #11013(avcodec:new): thread assertion if avcodec_get_hw_frames_parameters fails
FFmpeg
trac at avcodec.org
Mon May 13 14:39:18 EEST 2024
#11013: thread assertion if avcodec_get_hw_frames_parameters fails
-------------------------------------+-------------------------------------
Reporter: François | Owner: (none)
Cartegnie |
Type: defect | Status: new
Priority: normal | Component: avcodec
Version: unspecified | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Description changed by François Cartegnie:
Old description:
> Summary of the bug:
>
> Using libavcodec's leads to assertion due to missing private_date cleanup
> on failed VAAPI VP9 acceleration.
>
> release/7.0 e7d2238ad751e4ce4ebc5118af750fd5cc0c5055
>
> {{{
> libva info: VA-API version 1.20.0
> libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
> libva info: Found init function __vaDriverInit_1_20
> libva info: va_openDriver() returns 0
> [vp9 @ 0x619000022180] No support for codec vp9 profile 0.
> [0000604000066ad0] vaapi generic error: avcodec_get_hw_frames_parameters
> failed: -38
> Assertion p_dst->hwaccel_threadsafe || (!dst->hwaccel &&
> !dst->internal->hwaccel_priv_data) failed at
> libavcodec/pthread_frame.c:348
>
> }}}
>
> Fix attempt
>
> {{{
>
> diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
> index fd356bd190..a13bb9e996 100644
> --- 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));
> }}}
>
> How to reproduce:
>
> Sample reference
> {{{
>
> 4d8e399e9ecf06363840f3a7880e0e2937d527438bcf87bb3c250e5f4ac71c7e Agent
> 327 - Operation Barbershop.web
>
> }}}
New description:
Summary of the bug:
Using libavcodec for decoding VP9 leads to assertion due to missing
private_date cleanup on failed VAAPI acceleration.
release/7.0 e7d2238ad751e4ce4ebc5118af750fd5cc0c5055
{{{
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
[vp9 @ 0x619000022180] No support for codec vp9 profile 0.
[0000604000066ad0] vaapi generic error: avcodec_get_hw_frames_parameters
failed: -38
Assertion p_dst->hwaccel_threadsafe || (!dst->hwaccel &&
!dst->internal->hwaccel_priv_data) failed at
libavcodec/pthread_frame.c:348
}}}
Fix attempt
{{{
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index fd356bd190..a13bb9e996 100644
--- 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));
}}}
How to reproduce:
Sample reference
{{{
4d8e399e9ecf06363840f3a7880e0e2937d527438bcf87bb3c250e5f4ac71c7e Agent 327
- Operation Barbershop.web
}}}
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11013#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list