From db4766ad1b8389fc7f7213e435037cc883500077 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 11 Aug 2012 15:40:12 +0200 Subject: avconv: try to match codecs by codec descriptor name as a last resort. This allows e.g. -c:v h264 to select the libx264 encoder. --- avconv_opt.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'avconv_opt.c') diff --git a/avconv_opt.c b/avconv_opt.c index 97ae0a4bf9..5c6fc8741f 100644 --- a/avconv_opt.c +++ b/avconv_opt.c @@ -381,12 +381,22 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor static AVCodec *find_codec_or_die(const char *name, enum AVMediaType type, int encoder) { + const AVCodecDescriptor *desc; const char *codec_string = encoder ? "encoder" : "decoder"; AVCodec *codec; codec = encoder ? avcodec_find_encoder_by_name(name) : avcodec_find_decoder_by_name(name); + + if (!codec && (desc = avcodec_descriptor_get_by_name(name))) { + codec = encoder ? avcodec_find_encoder(desc->id) : + avcodec_find_decoder(desc->id); + if (codec) + av_log(NULL, AV_LOG_VERBOSE, "Matched %s '%s' for codec '%s'.\n", + codec_string, codec->name, desc->name); + } + if (!codec) { av_log(NULL, AV_LOG_FATAL, "Unknown %s '%s'\n", codec_string, name); exit_program(1); -- cgit v1.2.3