summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-07 08:59:48 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-10 07:49:16 +0200
commit60fa58b8357984867b9104ad5e902a21ba2d78b0 (patch)
tree4310be419f5465cd16f5d99d2fdff25b3dc594b2 /libavformat
parentfc2fc98c7535b2984010155292efbe634b267485 (diff)
avformat/utils: Move avpriv_set_pts_info() to avformat.c
It is an essential auxiliary function for both demuxing and muxing. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/avformat.c26
-rw-r--r--libavformat/utils.c26
2 files changed, 26 insertions, 26 deletions
diff --git a/libavformat/avformat.c b/libavformat/avformat.c
index 2249f09825..2a919ad89f 100644
--- a/libavformat/avformat.c
+++ b/libavformat/avformat.c
@@ -663,6 +663,32 @@ AVRational av_stream_get_codec_timebase(const AVStream *st)
return cffstream(st)->avctx->time_base;
}
+void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits,
+ unsigned int pts_num, unsigned int pts_den)
+{
+ FFStream *const sti = ffstream(st);
+ AVRational new_tb;
+ if (av_reduce(&new_tb.num, &new_tb.den, pts_num, pts_den, INT_MAX)) {
+ if (new_tb.num != pts_num)
+ av_log(NULL, AV_LOG_DEBUG,
+ "st:%d removing common factor %d from timebase\n",
+ st->index, pts_num / new_tb.num);
+ } else
+ av_log(NULL, AV_LOG_WARNING,
+ "st:%d has too large timebase, reducing\n", st->index);
+
+ if (new_tb.num <= 0 || new_tb.den <= 0) {
+ av_log(NULL, AV_LOG_ERROR,
+ "Ignoring attempt to set invalid timebase %d/%d for st:%d\n",
+ new_tb.num, new_tb.den,
+ st->index);
+ return;
+ }
+ st->time_base = new_tb;
+ sti->avctx->pkt_timebase = new_tb;
+ st->pts_wrap_bits = pts_wrap_bits;
+}
+
const AVCodec *ff_find_decoder(AVFormatContext *s, const AVStream *st,
enum AVCodecID codec_id)
{
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 26f44ddfa1..848afa3c35 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -530,32 +530,6 @@ int ff_hex_to_data(uint8_t *data, const char *p)
return len;
}
-void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits,
- unsigned int pts_num, unsigned int pts_den)
-{
- FFStream *const sti = ffstream(st);
- AVRational new_tb;
- if (av_reduce(&new_tb.num, &new_tb.den, pts_num, pts_den, INT_MAX)) {
- if (new_tb.num != pts_num)
- av_log(NULL, AV_LOG_DEBUG,
- "st:%d removing common factor %d from timebase\n",
- st->index, pts_num / new_tb.num);
- } else
- av_log(NULL, AV_LOG_WARNING,
- "st:%d has too large timebase, reducing\n", st->index);
-
- if (new_tb.num <= 0 || new_tb.den <= 0) {
- av_log(NULL, AV_LOG_ERROR,
- "Ignoring attempt to set invalid timebase %d/%d for st:%d\n",
- new_tb.num, new_tb.den,
- st->index);
- return;
- }
- st->time_base = new_tb;
- sti->avctx->pkt_timebase = new_tb;
- st->pts_wrap_bits = pts_wrap_bits;
-}
-
void ff_parse_key_value(const char *str, ff_parse_key_val_cb callback_get_buf,
void *context)
{