Mercurial > libavformat.hg
changeset 4599:d80ca49779b1 libavformat
Add ticks_per_frame, this should hopefully fix the regressions caused
by the time_base change.
author | michael |
---|---|
date | Thu, 26 Feb 2009 23:47:32 +0000 |
parents | 8c9ba1c9bcbc |
children | aff9aac35db0 |
files | utils.c |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/utils.c Thu Feb 26 22:39:53 2009 +0000 +++ b/utils.c Thu Feb 26 23:47:32 2009 +0000 @@ -2201,9 +2201,9 @@ if (!st->r_frame_rate.num){ if( st->codec->time_base.den * (int64_t)st->time_base.num - <= st->codec->time_base.num * (int64_t)st->time_base.den){ + <= st->codec->time_base.num * st->codec->ticks_per_frame * (int64_t)st->time_base.den){ st->r_frame_rate.num = st->codec->time_base.den; - st->r_frame_rate.den = st->codec->time_base.num; + st->r_frame_rate.den = st->codec->time_base.num * st->codec->ticks_per_frame; }else{ st->r_frame_rate.num = st->time_base.den; st->r_frame_rate.den = st->time_base.num; @@ -2537,7 +2537,7 @@ if (pkt->duration == 0) { compute_frame_duration(&num, &den, st, NULL, pkt); if (den && num) { - pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den, den * (int64_t)st->time_base.num); + pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den * st->codec->ticks_per_frame, den * (int64_t)st->time_base.num); } }