diff mbox series

[FFmpeg-devel,1/2] fftools/opt_common: Use %c instead of %s to write single char

Message ID GV1P250MB0737C9CA14F1CE0CAD8EB9E38F05A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit 41409405d42977d4544110ccc3667b662a9efc9b
Headers show
Series [FFmpeg-devel,1/2] fftools/opt_common: Use %c instead of %s to write single char | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt July 31, 2023, 12:47 a.m. UTC
Also combine multiple printfs.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 fftools/opt_common.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

Comments

James Almer July 31, 2023, 12:49 a.m. UTC | #1
On 7/30/2023 9:47 PM, Andreas Rheinhardt wrote:
> Also combine multiple printfs.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>   fftools/opt_common.c | 28 ++++++++++++++--------------
>   1 file changed, 14 insertions(+), 14 deletions(-)
> 
> diff --git a/fftools/opt_common.c b/fftools/opt_common.c
> index 7c996f140d..3881d5bbef 100644
> --- a/fftools/opt_common.c
> +++ b/fftools/opt_common.c
> @@ -692,14 +692,13 @@ int show_codecs(void *optctx, const char *opt, const char *arg)
>           if (strstr(desc->name, "_deprecated"))
>               continue;
>   
> -        printf(" ");
> -        printf(avcodec_find_decoder(desc->id) ? "D" : ".");
> -        printf(avcodec_find_encoder(desc->id) ? "E" : ".");
> -
> -        printf("%c", get_media_type_char(desc->type));
> -        printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
> -        printf((desc->props & AV_CODEC_PROP_LOSSY)      ? "L" : ".");
> -        printf((desc->props & AV_CODEC_PROP_LOSSLESS)   ? "S" : ".");
> +        printf(" %c%c%c%c%c%c",
> +               avcodec_find_decoder(desc->id) ? 'D' : '.',
> +               avcodec_find_encoder(desc->id) ? 'E' : '.',
> +               get_media_type_char(desc->type),
> +               (desc->props & AV_CODEC_PROP_INTRA_ONLY) ? 'I' : '.',
> +               (desc->props & AV_CODEC_PROP_LOSSY)      ? 'L' : '.',
> +               (desc->props & AV_CODEC_PROP_LOSSLESS)   ? 'S' : '.');
>   
>           printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : "");
>   
> @@ -747,12 +746,13 @@ static void print_codecs(int encoder)
>           void *iter = NULL;
>   
>           while ((codec = next_codec_for_id(desc->id, &iter, encoder))) {
> -            printf(" %c", get_media_type_char(desc->type));
> -            printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)  ? "X" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_DR1)           ? "D" : ".");
> +            printf(" %c%c%c%c%c%c",
> +                   get_media_type_char(desc->type),
> +                   (codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)   ? 'F' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)   ? 'S' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)    ? 'X' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND) ? 'B' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_DR1)             ? 'D' : '.');
>   
>               printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : "");
>               if (strcmp(codec->name, desc->name))

You could instead port this function to AVBPrint, to only print to 
stderr once.
Andreas Rheinhardt July 31, 2023, 1:33 a.m. UTC | #2
James Almer:
> On 7/30/2023 9:47 PM, Andreas Rheinhardt wrote:
>> Also combine multiple printfs.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
>> ---
>>   fftools/opt_common.c | 28 ++++++++++++++--------------
>>   1 file changed, 14 insertions(+), 14 deletions(-)
>>
>> diff --git a/fftools/opt_common.c b/fftools/opt_common.c
>> index 7c996f140d..3881d5bbef 100644
>> --- a/fftools/opt_common.c
>> +++ b/fftools/opt_common.c
>> @@ -692,14 +692,13 @@ int show_codecs(void *optctx, const char *opt,
>> const char *arg)
>>           if (strstr(desc->name, "_deprecated"))
>>               continue;
>>   -        printf(" ");
>> -        printf(avcodec_find_decoder(desc->id) ? "D" : ".");
>> -        printf(avcodec_find_encoder(desc->id) ? "E" : ".");
>> -
>> -        printf("%c", get_media_type_char(desc->type));
>> -        printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
>> -        printf((desc->props & AV_CODEC_PROP_LOSSY)      ? "L" : ".");
>> -        printf((desc->props & AV_CODEC_PROP_LOSSLESS)   ? "S" : ".");
>> +        printf(" %c%c%c%c%c%c",
>> +               avcodec_find_decoder(desc->id) ? 'D' : '.',
>> +               avcodec_find_encoder(desc->id) ? 'E' : '.',
>> +               get_media_type_char(desc->type),
>> +               (desc->props & AV_CODEC_PROP_INTRA_ONLY) ? 'I' : '.',
>> +               (desc->props & AV_CODEC_PROP_LOSSY)      ? 'L' : '.',
>> +               (desc->props & AV_CODEC_PROP_LOSSLESS)   ? 'S' : '.');
>>             printf(" %-20s %s", desc->name, desc->long_name ?
>> desc->long_name : "");
>>   @@ -747,12 +746,13 @@ static void print_codecs(int encoder)
>>           void *iter = NULL;
>>             while ((codec = next_codec_for_id(desc->id, &iter,
>> encoder))) {
>> -            printf(" %c", get_media_type_char(desc->type));
>> -            printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)
>> ? "F" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)
>> ? "S" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) 
>> ? "X" : ".");
>> -            printf((codec->capabilities &
>> AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_DR1)          
>> ? "D" : ".");
>> +            printf(" %c%c%c%c%c%c",
>> +                   get_media_type_char(desc->type),
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_FRAME_THREADS)   ? 'F' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_SLICE_THREADS)   ? 'S' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_EXPERIMENTAL)    ? 'X' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_DRAW_HORIZ_BAND) ? 'B' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_DR1)             ? 'D' : '.');
>>                 printf(" %-20s %s", codec->name, codec->long_name ?
>> codec->long_name : "");
>>               if (strcmp(codec->name, desc->name))
> 
> You could instead port this function to AVBPrint, to only print to
> stderr once.

I could do so, but it is not "instead" of this patch. It is mostly
orthogonal.
(Btw: printf output goes to stdout.)

- Andreas
Andreas Rheinhardt July 31, 2023, 1:43 a.m. UTC | #3
James Almer:
> On 7/30/2023 9:47 PM, Andreas Rheinhardt wrote:
>> Also combine multiple printfs.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
>> ---
>>   fftools/opt_common.c | 28 ++++++++++++++--------------
>>   1 file changed, 14 insertions(+), 14 deletions(-)
>>
>> diff --git a/fftools/opt_common.c b/fftools/opt_common.c
>> index 7c996f140d..3881d5bbef 100644
>> --- a/fftools/opt_common.c
>> +++ b/fftools/opt_common.c
>> @@ -692,14 +692,13 @@ int show_codecs(void *optctx, const char *opt,
>> const char *arg)
>>           if (strstr(desc->name, "_deprecated"))
>>               continue;
>>   -        printf(" ");
>> -        printf(avcodec_find_decoder(desc->id) ? "D" : ".");
>> -        printf(avcodec_find_encoder(desc->id) ? "E" : ".");
>> -
>> -        printf("%c", get_media_type_char(desc->type));
>> -        printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
>> -        printf((desc->props & AV_CODEC_PROP_LOSSY)      ? "L" : ".");
>> -        printf((desc->props & AV_CODEC_PROP_LOSSLESS)   ? "S" : ".");
>> +        printf(" %c%c%c%c%c%c",
>> +               avcodec_find_decoder(desc->id) ? 'D' : '.',
>> +               avcodec_find_encoder(desc->id) ? 'E' : '.',
>> +               get_media_type_char(desc->type),
>> +               (desc->props & AV_CODEC_PROP_INTRA_ONLY) ? 'I' : '.',
>> +               (desc->props & AV_CODEC_PROP_LOSSY)      ? 'L' : '.',
>> +               (desc->props & AV_CODEC_PROP_LOSSLESS)   ? 'S' : '.');
>>             printf(" %-20s %s", desc->name, desc->long_name ?
>> desc->long_name : "");
>>   @@ -747,12 +746,13 @@ static void print_codecs(int encoder)
>>           void *iter = NULL;
>>             while ((codec = next_codec_for_id(desc->id, &iter,
>> encoder))) {
>> -            printf(" %c", get_media_type_char(desc->type));
>> -            printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)
>> ? "F" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)
>> ? "S" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) 
>> ? "X" : ".");
>> -            printf((codec->capabilities &
>> AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
>> -            printf((codec->capabilities & AV_CODEC_CAP_DR1)          
>> ? "D" : ".");
>> +            printf(" %c%c%c%c%c%c",
>> +                   get_media_type_char(desc->type),
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_FRAME_THREADS)   ? 'F' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_SLICE_THREADS)   ? 'S' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_EXPERIMENTAL)    ? 'X' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_DRAW_HORIZ_BAND) ? 'B' : '.',
>> +                   (codec->capabilities &
>> AV_CODEC_CAP_DR1)             ? 'D' : '.');
>>                 printf(" %-20s %s", codec->name, codec->long_name ?
>> codec->long_name : "");
>>               if (strcmp(codec->name, desc->name))
> 
> You could instead port this function to AVBPrint, to only print to
> stderr once.

I do not think this is a good idea as it would add another potential
source of errors (for the implicit (re)allocations that happen when
using the AVBPrint API).

- Andreas
Andreas Rheinhardt Aug. 1, 2023, 3:43 a.m. UTC | #4
Andreas Rheinhardt:
> Also combine multiple printfs.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  fftools/opt_common.c | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
> 
> diff --git a/fftools/opt_common.c b/fftools/opt_common.c
> index 7c996f140d..3881d5bbef 100644
> --- a/fftools/opt_common.c
> +++ b/fftools/opt_common.c
> @@ -692,14 +692,13 @@ int show_codecs(void *optctx, const char *opt, const char *arg)
>          if (strstr(desc->name, "_deprecated"))
>              continue;
>  
> -        printf(" ");
> -        printf(avcodec_find_decoder(desc->id) ? "D" : ".");
> -        printf(avcodec_find_encoder(desc->id) ? "E" : ".");
> -
> -        printf("%c", get_media_type_char(desc->type));
> -        printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
> -        printf((desc->props & AV_CODEC_PROP_LOSSY)      ? "L" : ".");
> -        printf((desc->props & AV_CODEC_PROP_LOSSLESS)   ? "S" : ".");
> +        printf(" %c%c%c%c%c%c",
> +               avcodec_find_decoder(desc->id) ? 'D' : '.',
> +               avcodec_find_encoder(desc->id) ? 'E' : '.',
> +               get_media_type_char(desc->type),
> +               (desc->props & AV_CODEC_PROP_INTRA_ONLY) ? 'I' : '.',
> +               (desc->props & AV_CODEC_PROP_LOSSY)      ? 'L' : '.',
> +               (desc->props & AV_CODEC_PROP_LOSSLESS)   ? 'S' : '.');
>  
>          printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : "");
>  
> @@ -747,12 +746,13 @@ static void print_codecs(int encoder)
>          void *iter = NULL;
>  
>          while ((codec = next_codec_for_id(desc->id, &iter, encoder))) {
> -            printf(" %c", get_media_type_char(desc->type));
> -            printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)  ? "X" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
> -            printf((codec->capabilities & AV_CODEC_CAP_DR1)           ? "D" : ".");
> +            printf(" %c%c%c%c%c%c",
> +                   get_media_type_char(desc->type),
> +                   (codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)   ? 'F' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)   ? 'S' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)    ? 'X' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND) ? 'B' : '.',
> +                   (codec->capabilities & AV_CODEC_CAP_DR1)             ? 'D' : '.');
>  
>              printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : "");
>              if (strcmp(codec->name, desc->name))

Will apply these patches tomorrow unless there are objections.

- Andreas
diff mbox series

Patch

diff --git a/fftools/opt_common.c b/fftools/opt_common.c
index 7c996f140d..3881d5bbef 100644
--- a/fftools/opt_common.c
+++ b/fftools/opt_common.c
@@ -692,14 +692,13 @@  int show_codecs(void *optctx, const char *opt, const char *arg)
         if (strstr(desc->name, "_deprecated"))
             continue;
 
-        printf(" ");
-        printf(avcodec_find_decoder(desc->id) ? "D" : ".");
-        printf(avcodec_find_encoder(desc->id) ? "E" : ".");
-
-        printf("%c", get_media_type_char(desc->type));
-        printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
-        printf((desc->props & AV_CODEC_PROP_LOSSY)      ? "L" : ".");
-        printf((desc->props & AV_CODEC_PROP_LOSSLESS)   ? "S" : ".");
+        printf(" %c%c%c%c%c%c",
+               avcodec_find_decoder(desc->id) ? 'D' : '.',
+               avcodec_find_encoder(desc->id) ? 'E' : '.',
+               get_media_type_char(desc->type),
+               (desc->props & AV_CODEC_PROP_INTRA_ONLY) ? 'I' : '.',
+               (desc->props & AV_CODEC_PROP_LOSSY)      ? 'L' : '.',
+               (desc->props & AV_CODEC_PROP_LOSSLESS)   ? 'S' : '.');
 
         printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : "");
 
@@ -747,12 +746,13 @@  static void print_codecs(int encoder)
         void *iter = NULL;
 
         while ((codec = next_codec_for_id(desc->id, &iter, encoder))) {
-            printf(" %c", get_media_type_char(desc->type));
-            printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
-            printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
-            printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)  ? "X" : ".");
-            printf((codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
-            printf((codec->capabilities & AV_CODEC_CAP_DR1)           ? "D" : ".");
+            printf(" %c%c%c%c%c%c",
+                   get_media_type_char(desc->type),
+                   (codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)   ? 'F' : '.',
+                   (codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)   ? 'S' : '.',
+                   (codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL)    ? 'X' : '.',
+                   (codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND) ? 'B' : '.',
+                   (codec->capabilities & AV_CODEC_CAP_DR1)             ? 'D' : '.');
 
             printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : "");
             if (strcmp(codec->name, desc->name))