@@ -22,6 +22,7 @@
#include "libavutil/avassert.h"
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"
+#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/timestamp.h"
@@ -816,16 +817,6 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
return 0;
}
-static void rescale_interval(AVRational tb_in, AVRational tb_out,
- int64_t *min_ts, int64_t *ts, int64_t *max_ts)
-{
- *ts = av_rescale_q (* ts, tb_in, tb_out);
- *min_ts = av_rescale_q_rnd(*min_ts, tb_in, tb_out,
- AV_ROUND_UP | AV_ROUND_PASS_MINMAX);
- *max_ts = av_rescale_q_rnd(*max_ts, tb_in, tb_out,
- AV_ROUND_DOWN | AV_ROUND_PASS_MINMAX);
-}
-
static int try_seek(AVFormatContext *avf, int stream,
int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
{
@@ -838,8 +829,8 @@ static int try_seek(AVFormatContext *avf, int stream,
if (stream >= 0) {
if (stream >= cat->avf->nb_streams)
return AVERROR(EIO);
- rescale_interval(AV_TIME_BASE_Q, cat->avf->streams[stream]->time_base,
- &min_ts, &ts, &max_ts);
+ av_rescale_interval(AV_TIME_BASE_Q, cat->avf->streams[stream]->time_base,
+ &min_ts, &ts, &max_ts);
}
return avformat_seek_file(cat->avf, stream, min_ts, ts, max_ts, flags);
}
@@ -853,8 +844,8 @@ static int real_seek(AVFormatContext *avf, int stream,
if (stream >= 0) {
if (stream >= avf->nb_streams)
return AVERROR(EINVAL);
- rescale_interval(avf->streams[stream]->time_base, AV_TIME_BASE_Q,
- &min_ts, &ts, &max_ts);
+ av_rescale_interval(avf->streams[stream]->time_base, AV_TIME_BASE_Q,
+ &min_ts, &ts, &max_ts);
}
left = 0;
From: Pierre-Anthony Lemieux <pal@palemieux.com> --- libavformat/concatdec.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-)