Browse Source

lavu/ffmpeg_opt: Check return value of avcodec_find_encoder().

Prevents a segfault if a stream featuring a known but unavailable codec (like external lib codec) should be opened.

Bug found by: Jonas Geistert <j.geistert@yahoo.de>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.5
Thilo Borgmann Michael Niedermayer 11 years ago
parent
commit
e113692c89
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      ffmpeg_opt.c

+ 4
- 0
ffmpeg_opt.c View File

@@ -1623,6 +1623,10 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch
AVCodecContext *avctx; AVCodecContext *avctx;


codec = avcodec_find_encoder(ic->streams[i]->codec->codec_id); codec = avcodec_find_encoder(ic->streams[i]->codec->codec_id);
if (!codec) {
av_log(s, AV_LOG_ERROR, "no encoder found for codec id %i\n", ic->streams[i]->codec->codec_id);
return AVERROR(EINVAL);
}
ost = new_output_stream(o, s, codec->type, -1); ost = new_output_stream(o, s, codec->type, -1);
st = ost->st; st = ost->st;
avctx = st->codec; avctx = st->codec;


Loading…
Cancel
Save