Browse code

cmdutils: replace fprintf() by av_log()

This way, all messages can be easily disabled with -loglevel.

Behavior change -- configuration is printed with AV_LOG_VERBOSE, so it's
not shown by default.

Anton Khirnov authored on 2011/09/26 15:39:43
Showing 1 changed files
... ...
@@ -91,7 +91,7 @@ double parse_number_or_die(const char *context, const char *numstr, int type, do
91 91
         error= "Expected int for %s but found %s\n";
92 92
     else
93 93
         return d;
94
-    fprintf(stderr, error, context, numstr, min, max);
94
+    av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max);
95 95
     exit_program(1);
96 96
     return 0;
97 97
 }
... ...
@@ -100,8 +100,8 @@ int64_t parse_time_or_die(const char *context, const char *timestr, int is_durat
100 100
 {
101 101
     int64_t us;
102 102
     if (av_parse_time(&us, timestr, is_duration) < 0) {
103
-        fprintf(stderr, "Invalid %s specification for %s: %s\n",
104
-                is_duration ? "duration" : "date", context, timestr);
103
+        av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n",
104
+               is_duration ? "duration" : "date", context, timestr);
105 105
         exit_program(1);
106 106
     }
107 107
     return us;
... ...
@@ -368,7 +368,7 @@ int opt_default(const char *opt, const char *arg)
368 368
 
369 369
     if (o)
370 370
         return 0;
371
-    fprintf(stderr, "Unrecognized option '%s'\n", opt);
371
+    av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
372 372
     return AVERROR_OPTION_NOT_FOUND;
373 373
 }
374 374
 
... ...
@@ -397,10 +397,10 @@ int opt_loglevel(const char *opt, const char *arg)
397 397
 
398 398
     level = strtol(arg, &tail, 10);
399 399
     if (*tail) {
400
-        fprintf(stderr, "Invalid loglevel \"%s\". "
401
-                        "Possible levels are numbers or:\n", arg);
400
+        av_log(NULL, AV_LOG_FATAL, "Invalid loglevel \"%s\". "
401
+               "Possible levels are numbers or:\n", arg);
402 402
         for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++)
403
-            fprintf(stderr, "\"%s\"\n", log_levels[i].name);
403
+            av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name);
404 404
         exit_program(1);
405 405
     }
406 406
     av_log_set_level(level);
... ...
@@ -415,7 +415,7 @@ int opt_timelimit(const char *opt, const char *arg)
415 415
     if (setrlimit(RLIMIT_CPU, &rl))
416 416
         perror("setrlimit");
417 417
 #else
418
-    fprintf(stderr, "Warning: -%s not implemented on this OS\n", opt);
418
+    av_log(NULL, AV_LOG_WARNING, "-%s not implemented on this OS\n", opt);
419 419
 #endif
420 420
     return 0;
421 421
 }
... ...
@@ -427,7 +427,7 @@ void print_error(const char *filename, int err)
427 427
 
428 428
     if (av_strerror(err, errbuf, sizeof(errbuf)) < 0)
429 429
         errbuf_ptr = strerror(AVUNERROR(err));
430
-    fprintf(stderr, "%s: %s\n", filename, errbuf_ptr);
430
+    av_log(NULL, AV_LOG_ERROR, "%s: %s\n", filename, errbuf_ptr);
431 431
 }
432 432
 
433 433
 static int warned_cfg = 0;
... ...
@@ -436,58 +436,59 @@ static int warned_cfg = 0;
436 436
 #define SHOW_VERSION  2
437 437
 #define SHOW_CONFIG   4
438 438
 
439
-#define PRINT_LIB_INFO(outstream,libname,LIBNAME,flags)                 \
439
+#define PRINT_LIB_INFO(libname, LIBNAME, flags, level)                  \
440 440
     if (CONFIG_##LIBNAME) {                                             \
441 441
         const char *indent = flags & INDENT? "  " : "";                 \
442 442
         if (flags & SHOW_VERSION) {                                     \
443 443
             unsigned int version = libname##_version();                 \
444
-            fprintf(outstream, "%slib%-9s %2d.%3d.%2d / %2d.%3d.%2d\n", \
445
-                    indent, #libname,                                   \
446
-                    LIB##LIBNAME##_VERSION_MAJOR,                       \
447
-                    LIB##LIBNAME##_VERSION_MINOR,                       \
448
-                    LIB##LIBNAME##_VERSION_MICRO,                       \
449
-                    version >> 16, version >> 8 & 0xff, version & 0xff); \
444
+            av_log(NULL, level, "%slib%-9s %2d.%3d.%2d / %2d.%3d.%2d\n",\
445
+                   indent, #libname,                                    \
446
+                   LIB##LIBNAME##_VERSION_MAJOR,                        \
447
+                   LIB##LIBNAME##_VERSION_MINOR,                        \
448
+                   LIB##LIBNAME##_VERSION_MICRO,                        \
449
+                   version >> 16, version >> 8 & 0xff, version & 0xff); \
450 450
         }                                                               \
451 451
         if (flags & SHOW_CONFIG) {                                      \
452 452
             const char *cfg = libname##_configuration();                \
453 453
             if (strcmp(LIBAV_CONFIGURATION, cfg)) {                     \
454 454
                 if (!warned_cfg) {                                      \
455
-                    fprintf(outstream,                                  \
455
+                    av_log(NULL, level,                                 \
456 456
                             "%sWARNING: library configuration mismatch\n", \
457 457
                             indent);                                    \
458 458
                     warned_cfg = 1;                                     \
459 459
                 }                                                       \
460
-                fprintf(stderr, "%s%-11s configuration: %s\n",          \
460
+                av_log(NULL, level, "%s%-11s configuration: %s\n",      \
461 461
                         indent, #libname, cfg);                         \
462 462
             }                                                           \
463 463
         }                                                               \
464 464
     }                                                                   \
465 465
 
466
-static void print_all_libs_info(FILE* outstream, int flags)
466
+static void print_all_libs_info(int flags, int level)
467 467
 {
468
-    PRINT_LIB_INFO(outstream, avutil,   AVUTIL,   flags);
469
-    PRINT_LIB_INFO(outstream, avcodec,  AVCODEC,  flags);
470
-    PRINT_LIB_INFO(outstream, avformat, AVFORMAT, flags);
471
-    PRINT_LIB_INFO(outstream, avdevice, AVDEVICE, flags);
472
-    PRINT_LIB_INFO(outstream, avfilter, AVFILTER, flags);
473
-    PRINT_LIB_INFO(outstream, swscale,  SWSCALE,  flags);
474
-    PRINT_LIB_INFO(outstream, postproc, POSTPROC, flags);
468
+    PRINT_LIB_INFO(avutil,   AVUTIL,   flags, level);
469
+    PRINT_LIB_INFO(avcodec,  AVCODEC,  flags, level);
470
+    PRINT_LIB_INFO(avformat, AVFORMAT, flags, level);
471
+    PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level);
472
+    PRINT_LIB_INFO(avfilter, AVFILTER, flags, level);
473
+    PRINT_LIB_INFO(swscale,  SWSCALE,  flags, level);
474
+    PRINT_LIB_INFO(postproc, POSTPROC, flags, level);
475 475
 }
476 476
 
477 477
 void show_banner(void)
478 478
 {
479
-    fprintf(stderr, "%s version " LIBAV_VERSION ", Copyright (c) %d-%d the Libav developers\n",
480
-            program_name, program_birth_year, this_year);
481
-    fprintf(stderr, "  built on %s %s with %s %s\n",
482
-            __DATE__, __TIME__, CC_TYPE, CC_VERSION);
483
-    fprintf(stderr, "  configuration: " LIBAV_CONFIGURATION "\n");
484
-    print_all_libs_info(stderr, INDENT|SHOW_CONFIG);
485
-    print_all_libs_info(stderr, INDENT|SHOW_VERSION);
479
+    av_log(NULL, AV_LOG_INFO, "%s version " LIBAV_VERSION ", Copyright (c) %d-%d the Libav developers\n",
480
+           program_name, program_birth_year, this_year);
481
+    av_log(NULL, AV_LOG_INFO, "  built on %s %s with %s %s\n",
482
+           __DATE__, __TIME__, CC_TYPE, CC_VERSION);
483
+    av_log(NULL, AV_LOG_VERBOSE, "  configuration: " LIBAV_CONFIGURATION "\n");
484
+    print_all_libs_info(INDENT|SHOW_CONFIG,  AV_LOG_VERBOSE);
485
+    print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_VERBOSE);
486 486
 }
487 487
 
488 488
 void show_version(void) {
489
+    av_log_set_callback(log_callback_help);
489 490
     printf("%s " LIBAV_VERSION "\n", program_name);
490
-    print_all_libs_info(stdout, SHOW_VERSION);
491
+    print_all_libs_info(SHOW_VERSION, AV_LOG_INFO);
491 492
 }
492 493
 
493 494
 void show_license(void)
... ...
@@ -777,7 +778,7 @@ int read_file(const char *filename, char **bufptr, size_t *size)
777 777
     FILE *f = fopen(filename, "rb");
778 778
 
779 779
     if (!f) {
780
-        fprintf(stderr, "Cannot read file '%s': %s\n", filename, strerror(errno));
780
+        av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename, strerror(errno));
781 781
         return AVERROR(errno);
782 782
     }
783 783
     fseek(f, 0, SEEK_END);
... ...
@@ -785,7 +786,7 @@ int read_file(const char *filename, char **bufptr, size_t *size)
785 785
     fseek(f, 0, SEEK_SET);
786 786
     *bufptr = av_malloc(*size + 1);
787 787
     if (!*bufptr) {
788
-        fprintf(stderr, "Could not allocate file buffer\n");
788
+        av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n");
789 789
         fclose(f);
790 790
         return AVERROR(ENOMEM);
791 791
     }