diff options
| author | Andreas Rheinhardt <[email protected]> | 2022-05-07 06:21:09 +0200 | 
|---|---|---|
| committer | Andreas Rheinhardt <[email protected]> | 2022-05-10 07:46:54 +0200 | 
| commit | 9163faecd3cdd93b69ae98605e7f518bd228196e (patch) | |
| tree | 3ee634f9c3d638b737f99bb9617d152ae4685962 /libavformat/utils.c | |
| parent | 682d42b41d3a198573d93315c158b5baebd0389c (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 <[email protected]>
Diffstat (limited to 'libavformat/utils.c')
| -rw-r--r-- | libavformat/utils.c | 45 | 
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);  | 
