[FFmpeg-cvslog] fftools/ffmpeg_enc: rename next_picture to frame

Anton Khirnov git at videolan.org
Mon Apr 24 18:02:53 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sat Apr 15 09:53:14 2023 +0200| [403088cb67b0019ec1c11165a3bb9be277386b65] | committer: Anton Khirnov

fftools/ffmpeg_enc: rename next_picture to frame

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=403088cb67b0019ec1c11165a3bb9be277386b65
---

 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)



More information about the ffmpeg-cvslog mailing list