av_assert0(ist);
ist->discard = 0;
- ist->decoding_needed++;
+ ist->decoding_needed |= DECODING_FOR_FILTER;
ist->st->discard = AVDISCARD_NONE;
GROW_ARRAY(fg->inputs, fg->nb_inputs);
init_input_filter(fg, cur);
for (cur = inputs, i = 0; cur; cur = cur->next, i++)
- if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0)
+ if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0) {
+ avfilter_inout_free(&inputs);
+ avfilter_inout_free(&outputs);
return ret;
+ }
avfilter_inout_free(&inputs);
if (!init || simple) {
}
fg->reconfiguration = 1;
+
+ for (i = 0; i < fg->nb_outputs; i++) {
+ OutputStream *ost = fg->outputs[i]->ost;
+ if (ost &&
+ ost->enc->type == AVMEDIA_TYPE_AUDIO &&
+ !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
+ av_buffersink_set_frame_size(ost->filter->filter,
+ ost->enc_ctx->frame_size);
+ }
+
return 0;
}