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) |