From 86074ed1b7d32f504a942bdcb0b40f2830d27e54 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Thu, 27 Sep 2007 06:38:40 +0000 Subject: [PATCH] Implement common show version and banner. Patch by Stefano Sabatini [stefano sabatini-lala poste it] Originally committed as revision 10600 to svn://svn.ffmpeg.org/ffmpeg/trunk --- cmdutils.c | 26 ++++++++++++++++++++++++++ cmdutils.h | 17 +++++++++++++++++ ffmpeg.c | 27 +++++---------------------- ffserver.c | 12 +++++------- 4 files changed, 53 insertions(+), 29 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 6726c3642b..2228a7e050 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -26,6 +26,7 @@ #include "avformat.h" #include "cmdutils.h" #include "avstring.h" +#include "version.h" #undef exit @@ -152,6 +153,31 @@ void print_error(const char *filename, int err) } } +void show_banner(const char *program_name, int program_birth_year) +{ + fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-2007 Fabrice Bellard, et al.\n", + program_name, program_birth_year); + fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); + fprintf(stderr, " libavutil version: " AV_STRINGIFY(LIBAVUTIL_VERSION) "\n"); + fprintf(stderr, " libavcodec version: " AV_STRINGIFY(LIBAVCODEC_VERSION) "\n"); + fprintf(stderr, " libavformat version: " AV_STRINGIFY(LIBAVFORMAT_VERSION) "\n"); + fprintf(stderr, " built on " __DATE__ " " __TIME__); +#ifdef __GNUC__ + fprintf(stderr, ", gcc: " __VERSION__ "\n"); +#else + fprintf(stderr, ", using a non-gcc compiler\n"); +#endif +} + +void show_version(const char *program_name) { + /* TODO: add function interface to avutil and avformat */ + printf("%s " FFMPEG_VERSION "\n", program_name); + printf("libavutil %d\n" + "libavcodec %d\n" + "libavformat %d\n", + LIBAVUTIL_BUILD, avcodec_build(), LIBAVFORMAT_BUILD); +} + void show_license(void) { #ifdef CONFIG_GPL diff --git a/cmdutils.h b/cmdutils.h index e44b6b5bd1..36734efd5e 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -64,6 +64,23 @@ void parse_options(int argc, char **argv, const OptionDef *options, void print_error(const char *filename, int err); +/** + * Prints the banner of the program on stderr. The banner message + * depends on the current versions of the repository and of the libav* + * libraries. + * @param program_name Name of the program. + * @param program_birth_year Year of birth of the program. + */ +void show_banner(const char *program_name, int program_birth_year); + +/** + * Prints the version of the program on stdout. The version message + * depends on the current versions of the repository and of the libav* + * libraries. + * @param program_name Name of the program. + */ +void show_version(const char *program_name); + /** * Prints on stdout the license of the program, which depends on the license of * the compiled libav* libraries. diff --git a/ffmpeg.c b/ffmpeg.c index 0687780610..62d3be73d6 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -63,6 +63,9 @@ #undef exit +static const char program_name[] = "FFmpeg"; +static const int program_birth_year = 2000; + /* select an input stream for an output stream */ typedef struct AVStreamMap { int file_index; @@ -3564,12 +3567,7 @@ static void opt_audio_bsf(const char *arg) static void opt_show_version(void) { - /* TODO: add function interface to avutil and avformat */ - fprintf(stderr, "ffmpeg " FFMPEG_VERSION "\n" - "libavutil %d\n" - "libavcodec %d\n" - "libavformat %d\n", - LIBAVUTIL_BUILD, avcodec_build(), LIBAVFORMAT_BUILD); + show_version(program_name); exit(0); } @@ -3736,21 +3734,6 @@ const OptionDef options[] = { { NULL, }, }; -static void show_banner(void) -{ - fprintf(stderr, "FFmpeg version " FFMPEG_VERSION ", Copyright (c) 2000-2007 Fabrice Bellard, et al.\n"); - fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); - fprintf(stderr, " libavutil version: " AV_STRINGIFY(LIBAVUTIL_VERSION) "\n"); - fprintf(stderr, " libavcodec version: " AV_STRINGIFY(LIBAVCODEC_VERSION) "\n"); - fprintf(stderr, " libavformat version: " AV_STRINGIFY(LIBAVFORMAT_VERSION) "\n"); - fprintf(stderr, " built on " __DATE__ " " __TIME__); -#ifdef __GNUC__ - fprintf(stderr, ", gcc: " __VERSION__ "\n"); -#else - fprintf(stderr, ", using a non-gcc compiler\n"); -#endif -} - static void opt_show_license(void) { show_license(); @@ -3866,7 +3849,7 @@ int main(int argc, char **argv) avformat_opts = av_alloc_format_context(); sws_opts = sws_getContext(16,16,0, 16,16,0, sws_flags, NULL,NULL,NULL); - show_banner(); + show_banner(program_name, program_birth_year); if (argc <= 1) { show_help(); exit(1); diff --git a/ffserver.c b/ffserver.c index 90bc908973..ef96078766 100644 --- a/ffserver.c +++ b/ffserver.c @@ -53,6 +53,9 @@ #undef exit +static const char program_name[] = "FFserver"; +static const int program_birth_year = 2000; + /* maximum number of simultaneous HTTP connections */ #define HTTP_MAX_CONNECTIONS 2000 @@ -4313,14 +4316,9 @@ static int parse_ffconfig(const char *filename) return 0; } -static void show_banner(void) -{ - printf("ffserver version " FFMPEG_VERSION ", Copyright (c) 2000-2006 Fabrice Bellard, et al.\n"); -} - static void show_help(void) { - show_banner(); + show_banner(program_name, program_birth_year); printf("usage: ffserver [-L] [-h] [-f configfile]\n" "Hyper fast multi format Audio/Video streaming server\n" "\n" @@ -4375,7 +4373,7 @@ int main(int argc, char **argv) break; switch(c) { case 'L': - show_banner(); + show_banner(program_name, program_birth_year); show_license(); exit(0); case '?':