[FFmpeg-cvslog] fftools/opt_common: show if muxer is device

Stefano Sabatini git at videolan.org
Mon Mar 11 18:10:18 EET 2024


ffmpeg | branch: master | Stefano Sabatini <stefasab at gmail.com> | Sun Jan  7 16:07:54 2024 +0100| [58a1386eaf770ba4969771bf0f433bc976199083] | committer: Stefano Sabatini

fftools/opt_common: show if muxer is device

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

 fftools/opt_common.c | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/fftools/opt_common.c b/fftools/opt_common.c
index 02d7048c42..947a226d8d 100644
--- a/fftools/opt_common.c
+++ b/fftools/opt_common.c
@@ -852,15 +852,22 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
     const AVOutputFormat *ofmt = NULL;
     const char *last_name;
     int is_dev;
+    const char *is_device_placeholder = device_only ? "" : ".";
+
+    printf("%s:\n"
+           " D.%s = Demuxing supported\n"
+           " .E%s = Muxing supported\n"
+           "%s"
+           " ---\n",
+           device_only ? "Devices" : "Formats",
+           is_device_placeholder, is_device_placeholder,
+           device_only ? "": " ..d = Is a device\n");
 
-    printf("%s\n"
-           " D. = Demuxing supported\n"
-           " .E = Muxing supported\n"
-           " --\n", device_only ? "Devices:" : "File formats:");
     last_name = "000";
     for (;;) {
         int decode = 0;
         int encode = 0;
+        int device = 0;
         const char *name      = NULL;
         const char *long_name = NULL;
 
@@ -875,6 +882,7 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
                     name      = ofmt->name;
                     long_name = ofmt->long_name;
                     encode    = 1;
+                    device    = is_dev;
                 }
             }
         }
@@ -889,20 +897,24 @@ static int show_formats_devices(void *optctx, const char *opt, const char *arg,
                     name      = ifmt->name;
                     long_name = ifmt->long_name;
                     encode    = 0;
+                    device    = is_dev;
                 }
-                if (name && strcmp(ifmt->name, name) == 0)
+                if (name && strcmp(ifmt->name, name) == 0) {
                     decode = 1;
+                    device = is_dev;
+                }
             }
         }
         if (!name)
             break;
         last_name = name;
 
-        printf(" %c%c %-15s %s\n",
+        printf(" %c%c%s %-15s %s\n",
                decode ? 'D' : ' ',
                encode ? 'E' : ' ',
+               device_only ? "" : (device ? "d" : " "),
                name,
-            long_name ? long_name:" ");
+            long_name ? long_name : " ");
     }
     return 0;
 }



More information about the ffmpeg-cvslog mailing list