diff options
author | Torsten Jager <t.jager@gmx.de> | 2014-05-20 18:05:25 +0200 |
---|---|---|
committer | Torsten Jager <t.jager@gmx.de> | 2014-05-20 18:05:25 +0200 |
commit | 3e7a05de52af0dc72bb6716f8b452c36011d7a46 (patch) | |
tree | 569bf7a400f2cf795f92948d12d8c5596069320a /src | |
parent | 24020b6f629bd76163646c252f9d0cf61650fd63 (diff) | |
download | xine-lib-3e7a05de52af0dc72bb6716f8b452c36011d7a46.tar.gz xine-lib-3e7a05de52af0dc72bb6716f8b452c36011d7a46.tar.bz2 |
ff_video_decoder: fix multithreading.
Diffstat (limited to 'src')
-rw-r--r-- | src/combined/ffmpeg/ff_video_decoder.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c index e328cee32..21fbcdcc0 100644 --- a/src/combined/ffmpeg/ff_video_decoder.c +++ b/src/combined/ffmpeg/ff_video_decoder.c @@ -2291,6 +2291,7 @@ static void ff_free_dr1_frames (ff_video_decoder_t *this, int all) { They will only be replaced when new ones arrive, and freed on codec close. They also have no AVCodec.flush () callback for manual freeing (that is, avcodec_flush_buffers () does nothing). + Even worse: multithreading seems to always do it like that... So lets tolerate this behaviour on plain stream seek. */ if (!all) { it = NULL; @@ -2299,7 +2300,7 @@ static void ff_free_dr1_frames (ff_video_decoder_t *this, int all) { frames++; if (!frames) return; - if (frames < 5) { + if (frames < 12) { xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "ffmpeg_video_dec: tolerating %d held DR1 frames.\n", frames); return; |