[FFmpeg-devel] [PATCH 2/2] lavc/pthread_frame: avoid leaving stale hwaccel state in worker threads

Wang Bin wbsecg1 at gmail.com
Mon Sep 12 09:59:05 EEST 2022


Wang Bin <wbsecg1 at gmail.com> 于2022年9月12日周一 10:02写道:

>
>>      av_packet_unref(p->avpkt);
>> @@ -655,6 +670,14 @@ void ff_thread_finish_setup(AVCodecContext *avctx) {
>>          async_lock(p->parent);
>>      }
>>
>> +    /* save hwaccel state for passing to the next thread;
>> +     * this is done here so that this worker thread can wipe its own
>> hwaccel
>> +     * state after decoding, without requiring synchronization */
>> +    av_assert0(!p->parent->stash_hwaccel);
>> +    p->parent->stash_hwaccel         = avctx->hwaccel;
>> +    p->parent->stash_hwaccel_context = avctx->hwaccel_context;
>> +    p->parent->stash_hwaccel_priv    =
>> avctx->internal->hwaccel_priv_data;
>>
>
> Assertion failure when seeking. Step to reproduce:
> ./ffmpeg -stream_loop -1 -an -hwaccel vaapi -i test.mp4 -f null >/dev/null
>
> Regards
>
>

The change breaks hwaccel on all platforms. videotoolbox has another crash.

Regards


More information about the ffmpeg-devel mailing list