| Index: patched-ffmpeg-mt/cmdutils.c
|
| ===================================================================
|
| --- patched-ffmpeg-mt/cmdutils.c (revision 41250)
|
| +++ patched-ffmpeg-mt/cmdutils.c (working copy)
|
| @@ -35,6 +35,7 @@
|
| #include "libswscale/swscale.h"
|
| #include "libpostproc/postprocess.h"
|
| #include "libavutil/avstring.h"
|
| +#include "libavutil/pixdesc.h"
|
| #include "libavcodec/opt.h"
|
| #include "cmdutils.h"
|
| #include "version.h"
|
| @@ -45,8 +46,6 @@
|
| #include <sys/resource.h>
|
| #endif
|
|
|
| -#undef exit
|
| -
|
| const char **opt_names;
|
| static int opt_name_count;
|
| AVCodecContext *avcodec_opts[CODEC_TYPE_NB];
|
| @@ -170,8 +169,10 @@
|
| } else if (po->flags & OPT_FLOAT) {
|
| *po->u.float_arg = parse_number_or_die(opt, arg, OPT_FLOAT, -1.0/0.0, 1.0/0.0);
|
| } else if (po->flags & OPT_FUNC2) {
|
| - if(po->u.func2_arg(opt, arg)<0)
|
| - goto unknown_opt;
|
| + if (po->u.func2_arg(opt, arg) < 0) {
|
| + fprintf(stderr, "%s: invalid value '%s' for option '%s'\n", argv[0], arg, opt);
|
| + exit(1);
|
| + }
|
| } else {
|
| po->u.func_arg(arg);
|
| }
|
| @@ -197,7 +198,7 @@
|
| }
|
| if(!o)
|
| ret = av_set_string3(avformat_opts, opt, arg, 1, &o);
|
| - if(!o)
|
| + if(!o && sws_opts)
|
| ret = av_set_string3(sws_opts, opt, arg, 1, &o);
|
| if(!o){
|
| if(opt[0] == 'a')
|
| @@ -211,8 +212,10 @@
|
| fprintf(stderr, "Invalid value '%s' for option '%s'\n", arg, opt);
|
| exit(1);
|
| }
|
| - if(!o)
|
| - return -1;
|
| + if (!o) {
|
| + fprintf(stderr, "Unrecognized option '%s'\n", opt);
|
| + exit(1);
|
| + }
|
|
|
| // av_log(NULL, AV_LOG_ERROR, "%s:%s: %f 0x%0X\n", opt, arg, av_get_double(avcodec_opts, opt, NULL), (int)av_get_int(avcodec_opts, opt, NULL));
|
|
|
| @@ -262,7 +265,7 @@
|
|
|
| int opt_timelimit(const char *opt, const char *arg)
|
| {
|
| -#if HAVE_SYS_RESOURCE_H
|
| +#if HAVE_SETRLIMIT
|
| int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX);
|
| struct rlimit rl = { lim, lim + 1 };
|
| if (setrlimit(RLIMIT_CPU, &rl))
|
| @@ -366,7 +369,7 @@
|
|
|
| void show_banner(void)
|
| {
|
| - fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d Fabrice Bellard, et al.\n",
|
| + fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the FFmpeg developers\n",
|
| program_name, program_birth_year, this_year);
|
| fprintf(stderr, " built on %s %s with %s %s\n",
|
| __DATE__, __TIME__, CC_TYPE, CC_VERSION);
|
| @@ -625,7 +628,30 @@
|
|
|
| void show_pix_fmts(void)
|
| {
|
| - list_fmts(avcodec_pix_fmt_string, PIX_FMT_NB);
|
| + enum PixelFormat pix_fmt;
|
| +
|
| + printf(
|
| + "Pixel formats:\n"
|
| + "I.... = Supported Input format for conversion\n"
|
| + ".O... = Supported Output format for conversion\n"
|
| + "..H.. = Hardware accelerated format\n"
|
| + "...P. = Paletted format\n"
|
| + "....B = Bitstream format\n"
|
| + "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n"
|
| + "-----\n");
|
| +
|
| + for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) {
|
| + const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt];
|
| + printf("%c%c%c%c%c %-16s %d %2d\n",
|
| + sws_isSupportedInput (pix_fmt) ? 'I' : '.',
|
| + sws_isSupportedOutput(pix_fmt) ? 'O' : '.',
|
| + pix_desc->flags & PIX_FMT_HWACCEL ? 'H' : '.',
|
| + pix_desc->flags & PIX_FMT_PAL ? 'P' : '.',
|
| + pix_desc->flags & PIX_FMT_BITSTREAM ? 'B' : '.',
|
| + pix_desc->name,
|
| + pix_desc->nb_components,
|
| + av_get_bits_per_pixel(pix_desc));
|
| + }
|
| }
|
|
|
| int read_yesno(void)
|
|
|