diff options
author | wm4 <nfxjfg@googlemail.com> | 2017-04-06 17:35:32 +0200 |
---|---|---|
committer | wm4 <nfxjfg@googlemail.com> | 2017-04-06 17:46:53 +0200 |
commit | 15a23a83326d70e470a6b5c8d71e55257bffd97b (patch) | |
tree | c40eaad5315b3dfda18b55dd5c74ac3cb72ecba8 /libavdevice/dshow_pin.c | |
parent | e5c11ab9cef60a6c9141d7a60145ea833dd88485 (diff) | |
download | ffmpeg-15a23a83326d70e470a6b5c8d71e55257bffd97b.tar.gz |
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.
Diffstat (limited to 'libavdevice/dshow_pin.c')
0 files changed, 0 insertions, 0 deletions