summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <thibaut.mattern@gmail.com>2008-01-12 15:48:13 +0100
committerThibaut Mattern <thibaut.mattern@gmail.com>2008-01-12 15:48:13 +0100
commit37e7a5aa4c03f8793dc9da8058a5625f5ff84d4b (patch)
treec7943934eacc024e9dd7f57867c698a5830d23ec
parent519f3e9ac3a920fe8a04668f38fbd0eb7b10942a (diff)
downloadxine-lib-37e7a5aa4c03f8793dc9da8058a5625f5ff84d4b.tar.gz
xine-lib-37e7a5aa4c03f8793dc9da8058a5625f5ff84d4b.tar.bz2
Don't send BUF_FLAG_FRAME_START twice per frame, otherwise the ffmpeg plugin skips the first part of the frame.
Fixed wmv playback with ffmpeg.
-rw-r--r--src/demuxers/demux_asf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c
index 9aab59977..c4a154f99 100644
--- a/src/demuxers/demux_asf.c
+++ b/src/demuxers/demux_asf.c
@@ -723,6 +723,9 @@ static void asf_send_buffer_nodefrag (demux_asf_t *this, asf_demux_stream_t *str
buf->size = bufsize;
timestamp = 0;
+ if (stream->frag_offset == 0)
+ buf->decoder_flags |= BUF_FLAG_FRAME_START;
+
stream->frag_offset += bufsize;
frag_len -= bufsize;
@@ -733,10 +736,6 @@ static void asf_send_buffer_nodefrag (demux_asf_t *this, asf_demux_stream_t *str
else
check_newpts (this, buf->pts, PTS_AUDIO, package_done);
-
- if (frag_offset == 0)
- buf->decoder_flags |= BUF_FLAG_FRAME_START;
-
/* test if whole packet read */
if (package_done) {
buf->decoder_flags |= BUF_FLAG_FRAME_END;