|
|
|
@@ -2477,7 +2477,7 @@ static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset) |
|
|
|
{ |
|
|
|
AVPacket pkt1, *pkt = &pkt1; |
|
|
|
AVStream *st; |
|
|
|
int read_size, i, ret; |
|
|
|
int num, den, read_size, i, ret; |
|
|
|
int found_duration = 0; |
|
|
|
int is_end; |
|
|
|
int64_t filesize, offset, duration; |
|
|
|
@@ -2525,6 +2525,15 @@ static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset) |
|
|
|
if (pkt->pts != AV_NOPTS_VALUE && |
|
|
|
(st->start_time != AV_NOPTS_VALUE || |
|
|
|
st->first_dts != AV_NOPTS_VALUE)) { |
|
|
|
if (pkt->duration == 0) { |
|
|
|
ff_compute_frame_duration(&num, &den, st, st->parser, pkt); |
|
|
|
if (den && num) { |
|
|
|
pkt->duration = av_rescale_rnd(1, |
|
|
|
num * (int64_t) st->time_base.den, |
|
|
|
den * (int64_t) st->time_base.num, |
|
|
|
AV_ROUND_DOWN); |
|
|
|
} |
|
|
|
} |
|
|
|
duration = pkt->pts + pkt->duration; |
|
|
|
found_duration = 1; |
|
|
|
if (st->start_time != AV_NOPTS_VALUE) |
|
|
|
|