summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-07 06:21:09 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-10 07:46:54 +0200
commit9163faecd3cdd93b69ae98605e7f518bd228196e (patch)
tree3ee634f9c3d638b737f99bb9617d152ae4685962 /libavformat/utils.c
parent682d42b41d3a198573d93315c158b5baebd0389c (diff)
avformat/utils: Move guessing frame rate/SAR to avformat.c
It is not explicitly forbidden to call these functions with muxers (although it is probably intended to be only called by demuxers; av_guess_sample_aspect_ratio even says that "the stream aspect ratio is set by the demuxer"). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index ebee44f47d..272b8790a6 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -808,51 +808,6 @@ int avformat_network_deinit(void)
return 0;
}
-AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, AVFrame *frame)
-{
- AVRational undef = {0, 1};
- AVRational stream_sample_aspect_ratio = stream ? stream->sample_aspect_ratio : undef;
- AVRational codec_sample_aspect_ratio = stream && stream->codecpar ? stream->codecpar->sample_aspect_ratio : undef;
- AVRational frame_sample_aspect_ratio = frame ? frame->sample_aspect_ratio : codec_sample_aspect_ratio;
-
- av_reduce(&stream_sample_aspect_ratio.num, &stream_sample_aspect_ratio.den,
- stream_sample_aspect_ratio.num, stream_sample_aspect_ratio.den, INT_MAX);
- if (stream_sample_aspect_ratio.num <= 0 || stream_sample_aspect_ratio.den <= 0)
- stream_sample_aspect_ratio = undef;
-
- av_reduce(&frame_sample_aspect_ratio.num, &frame_sample_aspect_ratio.den,
- frame_sample_aspect_ratio.num, frame_sample_aspect_ratio.den, INT_MAX);
- if (frame_sample_aspect_ratio.num <= 0 || frame_sample_aspect_ratio.den <= 0)
- frame_sample_aspect_ratio = undef;
-
- if (stream_sample_aspect_ratio.num)
- return stream_sample_aspect_ratio;
- else
- return frame_sample_aspect_ratio;
-}
-
-AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *frame)
-{
- AVRational fr = st->r_frame_rate;
- AVCodecContext *const avctx = ffstream(st)->avctx;
- AVRational codec_fr = avctx->framerate;
- AVRational avg_fr = st->avg_frame_rate;
-
- if (avg_fr.num > 0 && avg_fr.den > 0 && fr.num > 0 && fr.den > 0 &&
- av_q2d(avg_fr) < 70 && av_q2d(fr) > 210) {
- fr = avg_fr;
- }
-
-
- if (avctx->ticks_per_frame > 1) {
- if ( codec_fr.num > 0 && codec_fr.den > 0 &&
- (fr.num == 0 || av_q2d(codec_fr) < av_q2d(fr)*0.7 && fabs(1.0 - av_q2d(av_div_q(avg_fr, fr))) > 0.1))
- fr = codec_fr;
- }
-
- return fr;
-}
-
void ff_format_io_close_default(AVFormatContext *s, AVIOContext *pb)
{
avio_close(pb);