diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-04-20 15:17:38 +0200 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-04-20 16:30:58 +0200 |
commit | 34c426be4a3cb52f6d420e5e775a3f2daebcfefe (patch) | |
tree | 332b9323d47310285aaf5b486d4293c150bf3ea3 | |
parent | 044f7275d3461d30787f067d7671af9b79da28c0 (diff) | |
download | ffmpeg-34c426be4a3cb52f6d420e5e775a3f2daebcfefe.tar.gz |
ffmpeg: check encoder earlier.
Fixes a segfault with Ogg output, libtheora not compiled in
and no codec specified.
-rw-r--r-- | ffmpeg.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -3013,6 +3013,12 @@ static int transcode_init(void) } else { if (!ost->enc) ost->enc = avcodec_find_encoder(codec->codec_id); + if (!ost->enc) { + snprintf(error, sizeof(error), "Encoder (codec %s) not found for output stream #%d:%d", + avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index); + ret = AVERROR(EINVAL); + goto dump_format; + } if (ist) ist->decoding_needed = 1; @@ -3154,12 +3160,6 @@ static int transcode_init(void) if (ost->encoding_needed) { AVCodec *codec = ost->enc; AVCodecContext *dec = NULL; - if (!codec) { - snprintf(error, sizeof(error), "Encoder (codec %s) not found for output stream #%d:%d", - avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index); - ret = AVERROR(EINVAL); - goto dump_format; - } if ((ist = get_input_stream(ost))) dec = ist->st->codec; |