diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 1004c172ef8e2144d7081cb16af3ee5b8f406a88..f49187818976fb78cfbd8ca46ce40d8d53e38f8e 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -35,7 +35,6 @@ typedef struct AVIStream { int scale; int rate; int sample_size; /* size of one sample (or packet) (in the rate/scale sense) in bytes */ - int start; int64_t cum_len; /* temporary storage (used during seek) */ @@ -313,7 +312,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) } av_set_pts_info(st, 64, ast->scale, ast->rate); - ast->start= get_le32(pb); /* start */ + ast->cum_len=get_le32(pb); /* start */ nb_frames = get_le32(pb); st->start_time = 0; @@ -344,6 +343,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) av_log(s, AV_LOG_ERROR, "unknown stream type %X\n", tag1); goto fail; } + ast->frame_offset= ast->cum_len * FFMAX(ast->sample_size, 1); url_fskip(pb, size - 12 * 4); break; case MKTAG('s', 't', 'r', 'f'):