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 8AF9F45F44 for ; Wed, 19 Apr 2023 19:55:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1912768BF57; Wed, 19 Apr 2023 22:53:19 +0300 (EEST) Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E8EC68BEB0 for ; Wed, 19 Apr 2023 22:53:02 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 80CB82405F9 for ; Wed, 19 Apr 2023 21:53:00 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id jYd2iFQ3xqYu for ; Wed, 19 Apr 2023 21:52:57 +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 D7709240591 for ; Wed, 19 Apr 2023 21:52:55 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 824613A0D68 for ; Wed, 19 Apr 2023 21:52:55 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 19 Apr 2023 21:52:23 +0200 Message-Id: <20230419195243.2974-5-anton@khirnov.net> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230419195243.2974-1-anton@khirnov.net> References: <20230419195243.2974-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/25] fftools/ffmpeg_enc: rename next_picture to frame 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 name is misleading, because it is not a picture in the sense of MPEG terminology (which define "picture" as "frame or field"), but always a full frame. 'next' is also redundant and/or misleading, because it is the _current_ frame to be encoded. --- fftools/ffmpeg_enc.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index 9aaec277f1..e63da2ec97 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -873,14 +873,14 @@ early_exit: * desired target framerate (if any). */ static void video_sync_process(OutputFile *of, OutputStream *ost, - AVFrame *next_picture, double duration, + AVFrame *frame, double duration, int64_t *nb_frames, int64_t *nb_frames_prev) { Encoder *e = ost->enc; double delta0, delta; - double sync_ipts = adjust_frame_pts_to_encoder_tb(of, ost, next_picture); - /* delta0 is the "drift" between the input frame (next_picture) and + double sync_ipts = adjust_frame_pts_to_encoder_tb(of, ost, frame); + /* delta0 is the "drift" between the input frame and * where it would fall in the output. */ delta0 = sync_ipts - e->next_pts; delta = delta0 + duration; @@ -923,18 +923,18 @@ static void video_sync_process(OutputFile *of, OutputStream *ost, if (delta0 > 1.1) *nb_frames_prev = llrintf(delta0 - 0.6); } - next_picture->duration = 1; + frame->duration = 1; break; case VSYNC_VFR: if (delta <= -0.6) *nb_frames = 0; else if (delta > 0.6) e->next_pts = llrint(sync_ipts); - next_picture->duration = duration; + frame->duration = duration; break; case VSYNC_DROP: case VSYNC_PASSTHROUGH: - next_picture->duration = duration; + frame->duration = duration; e->next_pts = llrint(sync_ipts); break; default: @@ -994,10 +994,8 @@ force_keyframe: return AV_PICTURE_TYPE_I; } -/* May modify/reset next_picture */ -static void do_video_out(OutputFile *of, - OutputStream *ost, - AVFrame *next_picture) +/* May modify/reset frame */ +static void do_video_out(OutputFile *of, OutputStream *ost, AVFrame *frame) { int ret; Encoder *e = ost->enc; @@ -1007,8 +1005,8 @@ static void do_video_out(OutputFile *of, double duration = 0; AVFilterContext *filter = ost->filter->filter; - if (next_picture) - duration = lrintf(next_picture->duration * av_q2d(next_picture->time_base) / av_q2d(enc->time_base)); + if (frame) + duration = lrintf(frame->duration * av_q2d(frame->time_base) / av_q2d(enc->time_base)); if (duration <= 0 && ost->frame_rate.num) duration = FFMIN(duration, 1/(av_q2d(ost->frame_rate) * av_q2d(enc->time_base))); @@ -1017,13 +1015,13 @@ static void do_video_out(OutputFile *of, if (duration <= 0 && frame_rate.num > 0 && frame_rate.den > 0) duration = 1/(av_q2d(frame_rate) * av_q2d(enc->time_base)); - if (!next_picture) { + if (!frame) { //end, flushing nb_frames_prev = nb_frames = mid_pred(e->frames_prev_hist[0], e->frames_prev_hist[1], e->frames_prev_hist[2]); } else { - video_sync_process(of, ost, next_picture, duration, + video_sync_process(of, ost, frame, duration, &nb_frames, &nb_frames_prev); } @@ -1051,8 +1049,8 @@ static void do_video_out(OutputFile *of, dup_warning *= 10; } } - ost->last_dropped = nb_frames == nb_frames_prev && next_picture; - ost->kf.dropped_keyframe = ost->last_dropped && next_picture && next_picture->key_frame; + ost->last_dropped = nb_frames == nb_frames_prev && frame; + ost->kf.dropped_keyframe = ost->last_dropped && frame && frame->key_frame; /* duplicates frame if needed */ for (i = 0; i < nb_frames; i++) { @@ -1061,7 +1059,7 @@ static void do_video_out(OutputFile *of, if (i < nb_frames_prev && e->last_frame->buf[0]) { in_picture = e->last_frame; } else - in_picture = next_picture; + in_picture = frame; if (!in_picture) return; @@ -1085,8 +1083,8 @@ static void do_video_out(OutputFile *of, } av_frame_unref(e->last_frame); - if (next_picture) - av_frame_move_ref(e->last_frame, next_picture); + if (frame) + av_frame_move_ref(e->last_frame, frame); } void enc_frame(OutputStream *ost, AVFrame *frame) -- 2.39.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".