[FFmpeg-cvslog] avformat/utils: dvd still frames read thru libdvdnav ended up in internal lavf buffer

Voyager1 git at videolan.org
Mon Feb 3 00:42:04 CET 2014


ffmpeg | branch: master | Voyager1 <Voyager at xbmc.org> | Sun Feb  2 15:36:20 2014 +0100| [9f6f4962fbfdbaaa5ae82d1cf216356ce4a64e1c] | committer: Michael Niedermayer

avformat/utils: dvd still frames read thru libdvdnav ended up in internal lavf buffer

This is the solution we've been using in XBMC for over 2 years for dvd still frames.
The problem is that the demuxer asks for probing of the codec in the mpeg stream.
This causes lavf to read the whole menu structure into internal buffers.
After which, it won't read from input stream anymore and no events triggers.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9f6f4962fbfdbaaa5ae82d1cf216356ce4a64e1c
---

 libavformat/utils.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 932b6ad..c094eec 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -659,7 +659,7 @@ no_packet:
 
         if (end || av_log2(pd->buf_size) != av_log2(pd->buf_size - pkt->size)) {
             int score = set_codec_from_probe_data(s, st, pd);
-            if (    (st->codec->codec_id != AV_CODEC_ID_NONE && score > AVPROBE_SCORE_RETRY)
+            if (    (st->codec->codec_id != AV_CODEC_ID_NONE && score > AVPROBE_SCORE_RETRY-1)
                 || end) {
                 pd->buf_size = 0;
                 av_freep(&pd->buf);



More information about the ffmpeg-cvslog mailing list