mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
pthread_frame: don't return stale error codes after flush
Consider the following sequence of events: - open a codec without AV_CODEC_CAP_DELAY - decode call fails with an error - ff_thread_flush() is called - drain packet is sent Then the last step would make ff_thread_decode_frame() return an error, because p->result can still be set to an error value. This is because submit_packet returns immediately if AV_CODEC_CAP_DELAY is not set, and no worker thread gets the chance to reset p->result, yet its value is trusted by ff_thread_decode_frame(). Fix this by clearing the error fields on flush.
This commit is contained in:
parent
e5c11ab9ce
commit
15a23a8332
@ -861,6 +861,7 @@ void ff_thread_flush(AVCodecContext *avctx)
|
||||
// Make sure decode flush calls with size=0 won't return old frames
|
||||
p->got_frame = 0;
|
||||
av_frame_unref(p->frame);
|
||||
p->result = 0;
|
||||
|
||||
release_delayed_buffers(p);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user