[FFmpeg-cvslog] r21310 - in trunk/libavformat: mov.c utils.c
bcoudurier
subversion
Tue Jan 19 00:56:04 CET 2010
Author: bcoudurier
Date: Tue Jan 19 00:56:04 2010
New Revision: 21310
Log:
set average frame rate in mov demuxer
Modified:
trunk/libavformat/mov.c
trunk/libavformat/utils.c
Modified: trunk/libavformat/mov.c
==============================================================================
--- trunk/libavformat/mov.c Tue Jan 19 00:55:19 2010 (r21309)
+++ trunk/libavformat/mov.c Tue Jan 19 00:56:04 2010 (r21310)
@@ -1652,14 +1652,18 @@ static int mov_read_trak(MOVContext *c,
} else
sc->pb = c->fc->pb;
- if (st->codec->codec_type == CODEC_TYPE_VIDEO &&
- (st->codec->width != sc->width || st->codec->height != sc->height)) {
+ if (st->codec->codec_type == CODEC_TYPE_VIDEO) {
+ if (st->codec->width != sc->width || st->codec->height != sc->height) {
AVRational r = av_d2q(((double)st->codec->height * sc->width) /
((double)st->codec->width * sc->height), INT_MAX);
if (st->sample_aspect_ratio.num)
st->sample_aspect_ratio = av_mul_q(st->sample_aspect_ratio, r);
else
st->sample_aspect_ratio = r;
+ }
+
+ av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
+ sc->time_scale*st->nb_frames, st->duration, INT_MAX);
}
switch (st->codec->codec_id) {
Modified: trunk/libavformat/utils.c
==============================================================================
--- trunk/libavformat/utils.c Tue Jan 19 00:55:19 2010 (r21309)
+++ trunk/libavformat/utils.c Tue Jan 19 00:56:04 2010 (r21310)
@@ -2218,7 +2218,7 @@ int av_find_stream_info(AVFormatContext
}
for(i=0;i<ic->nb_streams;i++) {
st = ic->streams[i];
- if(codec_info_nb_frames[i]>2)
+ if(codec_info_nb_frames[i]>2 && !st->avg_frame_rate.num)
av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
(codec_info_nb_frames[i]-2)*(int64_t)st->time_base.den,
codec_info_duration[i] *(int64_t)st->time_base.num, 60000);
More information about the ffmpeg-cvslog
mailing list