[FFmpeg-devel] [PATCH v3 07/18] fftools/play, probe: Adjust for subtitle format type change

Soft Works softworkz at hotmail.com
Sat Sep 11 09:02:50 EEST 2021


Signed-off-by: softworkz <softworkz at hotmail.com>
---
 fftools/ffplay.c  |  2 +-
 fftools/ffprobe.c | 23 ++++++++++++++++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 46758b9f55..f6a4d242c3 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -2250,7 +2250,7 @@ static int subtitle_thread(void *arg)
 
         pts = 0;
 
-        if (got_subtitle && sp->sub.format == 0) {
+        if (got_subtitle && sp->sub.format == AV_SUBTITLE_FMT_BITMAP) {
             if (sp->sub.pts != AV_NOPTS_VALUE)
                 pts = sp->sub.pts / (double)AV_TIME_BASE;
             sp->pts = pts;
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index acfec09656..fb55f3b292 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2212,6 +2212,7 @@ static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream,
                           AVFormatContext *fmt_ctx)
 {
     AVBPrint pbuf;
+    const char *s;
 
     av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
 
@@ -2220,7 +2221,27 @@ static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream,
     print_str ("media_type",         "subtitle");
     print_ts  ("pts",                 sub->pts);
     print_time("pts_time",            sub->pts, &AV_TIME_BASE_Q);
-    print_int ("format",              sub->format);
+
+    // Remain compatible with previous outputs?
+    switch (sub->format) {
+    case AV_SUBTITLE_FMT_BITMAP:
+        print_int ("format",         0);
+        break;
+    case AV_SUBTITLE_FMT_TEXT:
+        print_int ("format",         1);
+        break;
+    case AV_SUBTITLE_FMT_ASS:
+        print_int ("format",         1);
+        break;
+    default:
+        print_int ("format",         -1);
+        break;
+    }
+
+    s = av_get_subtitle_fmt_name(sub->format);
+    if (s) print_str    ("format_str", s);
+    else   print_str_opt("format_str", "unknown");
+
     print_int ("start_display_time",  sub->start_display_time);
     print_int ("end_display_time",    sub->end_display_time);
     print_int ("num_rects",           sub->num_rects);
-- 
2.30.2.windows.1



More information about the ffmpeg-devel mailing list