[FFmpeg-cvslog] fftools/ffmpeg: move fix_sub_duration_heartbeat() to ffmpeg_dec

Anton Khirnov git at videolan.org
Mon Jun 19 12:11:27 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Jun 14 16:09:25 2023 +0200| [a45b9d35b9852fd2c5ecdc5b43f48c82e6afddc7] | committer: Anton Khirnov

fftools/ffmpeg: move fix_sub_duration_heartbeat() to ffmpeg_dec

This way ffmpeg.c does not need to access InputStream.prev_sub and it
can be made private.

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

 fftools/ffmpeg.c     | 18 ------------------
 fftools/ffmpeg.h     |  2 +-
 fftools/ffmpeg_dec.c | 20 +++++++++++++++++++-
 3 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 4e6205e3cb..435e12a37b 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -768,24 +768,6 @@ int subtitle_wrap_frame(AVFrame *frame, AVSubtitle *subtitle, int copy)
     return 0;
 }
 
-static int fix_sub_duration_heartbeat(InputStream *ist, int64_t signal_pts)
-{
-    int ret = AVERROR_BUG;
-    AVSubtitle *prev_subtitle = &ist->prev_sub.subtitle;
-    AVSubtitle subtitle;
-
-    if (!ist->fix_sub_duration || !prev_subtitle->num_rects ||
-        signal_pts <= prev_subtitle->pts)
-        return 0;
-
-    if ((ret = copy_av_subtitle(&subtitle, prev_subtitle)) < 0)
-        return ret;
-
-    subtitle.pts = signal_pts;
-
-    return process_subtitle(ist, &subtitle);
-}
-
 int trigger_fix_sub_duration_heartbeat(OutputStream *ost, const AVPacket *pkt)
 {
     OutputFile *of = output_files[ost->file_index];
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index 5d60da085b..b4b55f5a73 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -879,7 +879,7 @@ OutputStream *ost_iter(OutputStream *prev);
 
 void close_output_stream(OutputStream *ost);
 int trigger_fix_sub_duration_heartbeat(OutputStream *ost, const AVPacket *pkt);
-int process_subtitle(InputStream *ist, AVSubtitle *subtitle);
+int fix_sub_duration_heartbeat(InputStream *ist, int64_t signal_pts);
 void update_benchmark(const char *fmt, ...);
 
 /**
diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index d2505345b5..a425b701d4 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -376,7 +376,7 @@ static void sub2video_flush(InputStream *ist)
     }
 }
 
-int process_subtitle(InputStream *ist, AVSubtitle *subtitle)
+static int process_subtitle(InputStream *ist, AVSubtitle *subtitle)
 {
     int got_output = 1;
     int ret = 0;
@@ -428,6 +428,24 @@ out:
     return ret;
 }
 
+int fix_sub_duration_heartbeat(InputStream *ist, int64_t signal_pts)
+{
+    int ret = AVERROR_BUG;
+    AVSubtitle *prev_subtitle = &ist->prev_sub.subtitle;
+    AVSubtitle subtitle;
+
+    if (!ist->fix_sub_duration || !prev_subtitle->num_rects ||
+        signal_pts <= prev_subtitle->pts)
+        return 0;
+
+    if ((ret = copy_av_subtitle(&subtitle, prev_subtitle)) < 0)
+        return ret;
+
+    subtitle.pts = signal_pts;
+
+    return process_subtitle(ist, &subtitle);
+}
+
 static int transcode_subtitles(InputStream *ist, const AVPacket *pkt,
                                AVFrame *frame)
 {



More information about the ffmpeg-cvslog mailing list