diff options
author | elupus <elupus@xbmc.org> | 2012-04-17 01:13:15 +0200 |
---|---|---|
committer | elupus <elupus@xbmc.org> | 2012-04-17 01:20:34 +0200 |
commit | 45e41b9096869062a2113590f3158321d06dea8b (patch) | |
tree | 916adb9a5b6d02bde6009beb51078796f39773b2 /lib | |
parent | 9632ed35f9ae00a7be0d808b63c7ef7adbbc4737 (diff) |
fixed: dvd still frames ended up in internal lavf buffer
This is very hackish, but it's the old solution we had 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.
The only proper fix to avoid this is to allow this situation
in our navigator. This needs further work so that we can
process HOP/ACTIVATION events in libdvdnav without advancing
stream.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ffmpeg/libavformat/utils.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ffmpeg/libavformat/utils.c b/lib/ffmpeg/libavformat/utils.c index 4729a401ef..63f89dd2e3 100644 --- a/lib/ffmpeg/libavformat/utils.c +++ b/lib/ffmpeg/libavformat/utils.c @@ -833,7 +833,7 @@ int av_read_packet(AVFormatContext *s, AVPacket *pkt) 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 != CODEC_ID_NONE && score > AVPROBE_SCORE_MAX/4) + if( (st->codec->codec_id != CODEC_ID_NONE && score > AVPROBE_SCORE_MAX/4-1) || end){ pd->buf_size=0; av_freep(&pd->buf); |