Mercurial > libavformat.hg
comparison avienc.c @ 993:3c027a642915 libavformat
fixing total_frames
author | michael |
---|---|
date | Thu, 02 Mar 2006 20:44:35 +0000 |
parents | d54472fc2d04 |
children | 66bd5e175690 |
comparison
equal
deleted
inserted
replaced
992:d54472fc2d04 | 993:3c027a642915 |
---|---|
611 | 611 |
612 /* Fill in frame/sample counters */ | 612 /* Fill in frame/sample counters */ |
613 file_size = url_ftell(pb); | 613 file_size = url_ftell(pb); |
614 nb_frames = 0; | 614 nb_frames = 0; |
615 for(n=0;n<s->nb_streams;n++) { | 615 for(n=0;n<s->nb_streams;n++) { |
616 if (avi->frames_hdr_strm[n] != 0) { | 616 assert(avi->frames_hdr_strm[n]); |
617 stream = s->streams[n]->codec; | 617 stream = s->streams[n]->codec; |
618 url_fseek(pb, avi->frames_hdr_strm[n], SEEK_SET); | 618 url_fseek(pb, avi->frames_hdr_strm[n], SEEK_SET); |
619 ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale); | 619 ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale); |
620 if (au_ssize == 0) { | 620 if (au_ssize == 0) { |
621 put_le32(pb, avi->packet_count[n]); | 621 put_le32(pb, avi->packet_count[n]); |
622 nb_frames += avi->packet_count[n]; | |
623 } else { | 622 } else { |
624 put_le32(pb, avi->audio_strm_length[n] / au_ssize); | 623 put_le32(pb, avi->audio_strm_length[n] / au_ssize); |
625 } | 624 } |
626 } | 625 if(stream->codec_type == CODEC_TYPE_VIDEO) |
626 nb_frames = FFMAX(nb_frames, avi->packet_count[n]); | |
627 } | 627 } |
628 if (avi->frames_hdr_all != 0) { | 628 assert(avi->frames_hdr_all); |
629 url_fseek(pb, avi->frames_hdr_all, SEEK_SET); | 629 url_fseek(pb, avi->frames_hdr_all, SEEK_SET); |
630 put_le32(pb, nb_frames); | 630 put_le32(pb, nb_frames); |
631 } | |
632 url_fseek(pb, file_size, SEEK_SET); | 631 url_fseek(pb, file_size, SEEK_SET); |
633 } | 632 } |
634 return 0; | 633 return 0; |
635 } | 634 } |
636 | 635 |