mirror of https://git.ffmpeg.org/ffmpeg.git
set average frame rate in mov demuxer
Originally committed as revision 21310 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
7231ccf4d5
commit
c3aeaa540d
|
@ -1652,14 +1652,18 @@ static int mov_read_trak(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||
} 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) {
|
||||
|
|
|
@ -2218,7 +2218,7 @@ int av_find_stream_info(AVFormatContext *ic)
|
|||
}
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue