Browse Source

ffmpeg_filter: check encoder before using it to set frame size.

Fix a segfault when no encoder is found for a default codec
with a complex filter graph.
tags/n3.0
Nicolas George 9 years ago
parent
commit
e8e7eb150f
1 changed files with 7 additions and 0 deletions
  1. +7
    -0
      ffmpeg_filter.c

+ 7
- 0
ffmpeg_filter.c View File

@@ -1046,6 +1046,13 @@ int configure_filtergraph(FilterGraph *fg)

for (i = 0; i < fg->nb_outputs; i++) {
OutputStream *ost = fg->outputs[i]->ost;
if (!ost->enc) {
/* identical to the same check in ffmpeg.c, needed because
complex filter graphs are initialized earlier */
av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n",
avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index);
return AVERROR(EINVAL);
}
if (ost &&
ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE))


Loading…
Cancel
Save