From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 079A54599A for ; Wed, 31 May 2023 14:56:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0833468C2BF; Wed, 31 May 2023 17:55:19 +0300 (EEST) Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C98568C23F for ; Wed, 31 May 2023 17:55:13 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id C570C2406CB for ; Wed, 31 May 2023 16:55:09 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id s0UXf-dyyLtV for ; Wed, 31 May 2023 16:55:09 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id EA0A12406CD for ; Wed, 31 May 2023 16:55:05 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 5E3403A09B3 for ; Wed, 31 May 2023 16:55:00 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 31 May 2023 16:54:43 +0200 Message-Id: <20230531145453.20994-13-anton@khirnov.net> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230531145453.20994-1-anton@khirnov.net> References: <20230531145453.20994-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/23] fftools/ffmpeg_mux_init: do not overwrite OutputStream.frame_rate for encoding X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The values currently written into it are not used after enc_open(), so it is better to confine them to that function. --- fftools/ffmpeg_enc.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index 5be6e9332a..1b0410ae74 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -214,11 +214,13 @@ int enc_open(OutputStream *ost, AVFrame *frame) av_make_q(1, enc_ctx->sample_rate); break; - case AVMEDIA_TYPE_VIDEO: - if (!ost->frame_rate.num) - ost->frame_rate = av_buffersink_get_frame_rate(ost->filter->filter); - if (!ost->frame_rate.num && !ost->max_frame_rate.num) { - ost->frame_rate = (AVRational){25, 1}; + case AVMEDIA_TYPE_VIDEO: { + AVRational fr = ost->frame_rate; + + if (!fr.num) + fr = av_buffersink_get_frame_rate(ost->filter->filter); + if (!fr.num && !ost->max_frame_rate.num) { + fr = (AVRational){25, 1}; av_log(ost, AV_LOG_WARNING, "No information " "about the input framerate is available. Falling " @@ -227,22 +229,22 @@ int enc_open(OutputStream *ost, AVFrame *frame) } if (ost->max_frame_rate.num && - (av_q2d(ost->frame_rate) > av_q2d(ost->max_frame_rate) || - !ost->frame_rate.den)) - ost->frame_rate = ost->max_frame_rate; + (av_q2d(fr) > av_q2d(ost->max_frame_rate) || + !fr.den)) + fr = ost->max_frame_rate; if (enc->supported_framerates && !ost->force_fps) { - int idx = av_find_nearest_q_idx(ost->frame_rate, enc->supported_framerates); - ost->frame_rate = enc->supported_framerates[idx]; + int idx = av_find_nearest_q_idx(fr, enc->supported_framerates); + fr = enc->supported_framerates[idx]; } // reduce frame rate for mpeg4 to be within the spec limits if (enc_ctx->codec_id == AV_CODEC_ID_MPEG4) { - av_reduce(&ost->frame_rate.num, &ost->frame_rate.den, - ost->frame_rate.num, ost->frame_rate.den, 65535); + av_reduce(&fr.num, &fr.den, + fr.num, fr.den, 65535); } enc_ctx->time_base = ost->enc_timebase.num > 0 ? ost->enc_timebase : - av_inv_q(ost->frame_rate); + av_inv_q(fr); if (!(enc_ctx->time_base.num && enc_ctx->time_base.den)) enc_ctx->time_base = av_buffersink_get_time_base(ost->filter->filter); @@ -277,9 +279,9 @@ int enc_open(OutputStream *ost, AVFrame *frame) enc_ctx->chroma_sample_location = frame->chroma_location; } - enc_ctx->framerate = ost->frame_rate; + enc_ctx->framerate = fr; - ost->st->avg_frame_rate = ost->frame_rate; + ost->st->avg_frame_rate = fr; // Field order: autodetection if (frame) { @@ -307,6 +309,7 @@ int enc_open(OutputStream *ost, AVFrame *frame) } break; + } case AVMEDIA_TYPE_SUBTITLE: enc_ctx->time_base = AV_TIME_BASE_Q; if (!enc_ctx->width) { -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".