[FFmpeg-cvslog] r9416 - trunk/libavformat/matroskadec.c
aurel
subversion
Sun Jun 24 23:49:13 CEST 2007
Author: aurel
Date: Sun Jun 24 23:49:13 2007
New Revision: 9416
Log:
drop blocks which are part of unsupported tracks
Modified:
trunk/libavformat/matroskadec.c
Modified: trunk/libavformat/matroskadec.c
==============================================================================
--- trunk/libavformat/matroskadec.c (original)
+++ trunk/libavformat/matroskadec.c Sun Jun 24 23:49:13 2007
@@ -41,7 +41,7 @@ typedef struct Track {
* the calling app uses for this track. */
uint32_t num;
uint32_t uid;
- uint32_t stream_index;
+ int stream_index;
char *name;
char *language;
@@ -2021,6 +2021,7 @@ matroska_read_header (AVFormatContext
int extradata_size = 0;
int extradata_offset = 0;
track = matroska->tracks[i];
+ track->stream_index = -1;
/* libavformat does not really support subtitles.
* Also apply some sanity checks. */
@@ -2213,6 +2214,7 @@ matroska_read_header (AVFormatContext
MatroskaDemuxIndex *idx = &matroska->index[i];
track = matroska_find_track_by_num(matroska, idx->track);
stream = matroska->tracks[track]->stream_index;
+ if (stream >= 0)
av_add_index_entry(matroska->ctx->streams[stream],
idx->pos, idx->time/matroska->time_scale,
0, 0, AVINDEX_KEYFRAME);
@@ -2260,6 +2262,8 @@ matroska_parse_block(MatroskaDemuxContex
av_free(origdata);
return res;
}
+ if (matroska->tracks[track]->stream_index < 0)
+ return res;
st = matroska->ctx->streams[matroska->tracks[track]->stream_index];
if (st->discard >= AVDISCARD_ALL) {
av_free(origdata);
More information about the ffmpeg-cvslog
mailing list