[FFmpeg-cvslog] avi: DV in AVI must be considered single stream
Luca Barbato
git at videolan.org
Thu Oct 10 11:29:11 CEST 2013
ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Tue Aug 6 03:38:12 2013 +0200| [756547ce7f4d67a18663503e2157aebed3531703] | committer: Luca Barbato
avi: DV in AVI must be considered single stream
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=756547ce7f4d67a18663503e2157aebed3531703
---
libavformat/avidec.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 971b3f5..9396a20 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -952,7 +952,7 @@ start_sync:
goto start_sync;
}
- n = get_stream_idx(d);
+ n = avi->dv_demux ? 0 : get_stream_idx(d);
if (!((i - avi->last_pkt_pos) & 1) &&
get_stream_idx(d + 1) < s->nb_streams)
@@ -1392,12 +1392,17 @@ static int avi_read_seek(AVFormatContext *s, int stream_index,
int64_t pos;
AVIStream *ast;
+ /* Does not matter which stream is requested dv in avi has the
+ * stream information in the first video stream.
+ */
+ if (avi->dv_demux)
+ stream_index = 0;
+
if (!avi->index_loaded) {
/* we only load the index on demand */
avi_load_index(s);
avi->index_loaded = 1;
}
- assert(stream_index >= 0);
st = s->streams[stream_index];
ast = st->priv_data;
@@ -1418,7 +1423,6 @@ static int avi_read_seek(AVFormatContext *s, int stream_index,
/* One and only one real stream for DV in AVI, and it has video */
/* offsets. Calling with other stream indexes should have failed */
/* the av_index_search_timestamp call above. */
- assert(stream_index == 0);
/* Feed the DV video stream version of the timestamp to the */
/* DV demux so it can synthesize correct timestamps. */
More information about the ffmpeg-cvslog
mailing list