|
|
@ -3306,11 +3306,11 @@ char *ff_data_to_hex(char *buff, const uint8_t *src, int s) |
|
|
|
void av_set_pts_info(AVStream *s, int pts_wrap_bits, |
|
|
|
void av_set_pts_info(AVStream *s, int pts_wrap_bits, |
|
|
|
unsigned int pts_num, unsigned int pts_den) |
|
|
|
unsigned int pts_num, unsigned int pts_den) |
|
|
|
{ |
|
|
|
{ |
|
|
|
unsigned int gcd= av_gcd(pts_num, pts_den); |
|
|
|
|
|
|
|
s->pts_wrap_bits = pts_wrap_bits; |
|
|
|
s->pts_wrap_bits = pts_wrap_bits; |
|
|
|
s->time_base.num = pts_num/gcd; |
|
|
|
|
|
|
|
s->time_base.den = pts_den/gcd; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(gcd>1) |
|
|
|
if(av_reduce(&s->time_base.num, &s->time_base.den, pts_num, pts_den, INT_MAX)){ |
|
|
|
av_log(NULL, AV_LOG_DEBUG, "st:%d removing common factor %d from timebase\n", s->index, gcd); |
|
|
|
if(s->time_base.num != pts_num) |
|
|
|
|
|
|
|
av_log(NULL, AV_LOG_DEBUG, "st:%d removing common factor %d from timebase\n", s->index, pts_num/s->time_base.num); |
|
|
|
|
|
|
|
}else |
|
|
|
|
|
|
|
av_log(NULL, AV_LOG_WARNING, "st:%d has too large timebase, reducing\n", s->index); |
|
|
|
} |
|
|
|
} |
|
|
|