summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/avienc.c13
-rw-r--r--tests/libav.regression.ref2
2 files changed, 7 insertions, 8 deletions
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index 2239e2670e..dbb301dc13 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -613,22 +613,21 @@ static int avi_write_idx1(AVFormatContext *s)
file_size = url_ftell(pb);
nb_frames = 0;
for(n=0;n<s->nb_streams;n++) {
- if (avi->frames_hdr_strm[n] != 0) {
+ assert(avi->frames_hdr_strm[n]);
stream = s->streams[n]->codec;
url_fseek(pb, avi->frames_hdr_strm[n], SEEK_SET);
ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale);
if (au_ssize == 0) {
put_le32(pb, avi->packet_count[n]);
- nb_frames += avi->packet_count[n];
} else {
put_le32(pb, avi->audio_strm_length[n] / au_ssize);
}
- }
- }
- if (avi->frames_hdr_all != 0) {
- url_fseek(pb, avi->frames_hdr_all, SEEK_SET);
- put_le32(pb, nb_frames);
+ if(stream->codec_type == CODEC_TYPE_VIDEO)
+ nb_frames = FFMAX(nb_frames, avi->packet_count[n]);
}
+ assert(avi->frames_hdr_all);
+ url_fseek(pb, avi->frames_hdr_all, SEEK_SET);
+ put_le32(pb, nb_frames);
url_fseek(pb, file_size, SEEK_SET);
}
return 0;
diff --git a/tests/libav.regression.ref b/tests/libav.regression.ref
index 5297408c60..aebe963768 100644
--- a/tests/libav.regression.ref
+++ b/tests/libav.regression.ref
@@ -1,5 +1,5 @@
ffmpeg regression test
-ffe84c1d286255bb6856f864b8122b6a *./data/b-libav.avi
+3175f33f01e7d0e1ee4bf7f7e4894393 *./data/b-libav.avi
342282 ./data/b-libav.avi
./data/b-libav.avi CRC=0xccab3a27
6f4dca897d9a009009798e434fe5f651 *./data/b-libav.asf