fixing total_frames

Originally committed as revision 5101 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 19 years ago
parent 98740f5a79
commit 61452d5637
  1. 13
      libavformat/avienc.c
  2. 2
      tests/libav.regression.ref

@ -613,22 +613,21 @@ static int avi_write_idx1(AVFormatContext *s)
file_size = url_ftell(pb); file_size = url_ftell(pb);
nb_frames = 0; nb_frames = 0;
for(n=0;n<s->nb_streams;n++) { 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; stream = s->streams[n]->codec;
url_fseek(pb, avi->frames_hdr_strm[n], SEEK_SET); url_fseek(pb, avi->frames_hdr_strm[n], SEEK_SET);
ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale); ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale);
if (au_ssize == 0) { if (au_ssize == 0) {
put_le32(pb, avi->packet_count[n]); put_le32(pb, avi->packet_count[n]);
nb_frames += avi->packet_count[n];
} else { } else {
put_le32(pb, avi->audio_strm_length[n] / au_ssize); put_le32(pb, avi->audio_strm_length[n] / au_ssize);
} }
} if(stream->codec_type == CODEC_TYPE_VIDEO)
} nb_frames = FFMAX(nb_frames, avi->packet_count[n]);
if (avi->frames_hdr_all != 0) {
url_fseek(pb, avi->frames_hdr_all, SEEK_SET);
put_le32(pb, nb_frames);
} }
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); url_fseek(pb, file_size, SEEK_SET);
} }
return 0; return 0;

@ -1,5 +1,5 @@
ffmpeg regression test ffmpeg regression test
ffe84c1d286255bb6856f864b8122b6a *./data/b-libav.avi 3175f33f01e7d0e1ee4bf7f7e4894393 *./data/b-libav.avi
342282 ./data/b-libav.avi 342282 ./data/b-libav.avi
./data/b-libav.avi CRC=0xccab3a27 ./data/b-libav.avi CRC=0xccab3a27
6f4dca897d9a009009798e434fe5f651 *./data/b-libav.asf 6f4dca897d9a009009798e434fe5f651 *./data/b-libav.asf

Loading…
Cancel
Save