if (G_UNLIKELY (priv->output_state_changed || (priv->output_state
&& gst_pad_check_reconfigure (decoder->srcpad)))) {
if (!gst_video_decoder_negotiate (decoder)) {
+ gst_pad_mark_reconfigure (decoder->srcpad);
if (GST_PAD_IS_FLUSHING (decoder->srcpad))
ret = GST_FLOW_FLUSHING;
else
|| gst_pad_check_reconfigure (decoder->srcpad))) {
if (!gst_video_decoder_negotiate (decoder)) {
GST_DEBUG_OBJECT (decoder, "Failed to negotiate, fallback allocation");
+ gst_pad_mark_reconfigure (decoder->srcpad);
goto fallback;
}
}
}
if (G_UNLIKELY (decoder->priv->output_state_changed
- || gst_pad_check_reconfigure (decoder->srcpad)))
- gst_video_decoder_negotiate (decoder);
+ || gst_pad_check_reconfigure (decoder->srcpad))) {
+ if (!gst_video_decoder_negotiate (decoder)) {
+ GST_DEBUG_OBJECT (decoder, "Failed to negotiate, fallback allocation");
+ gst_pad_mark_reconfigure (decoder->srcpad);
+ }
+ }
GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes);
&& gst_pad_check_reconfigure (encoder->srcpad)))) {
if (!gst_video_encoder_negotiate (encoder)) {
GST_DEBUG_OBJECT (encoder, "Failed to negotiate, fallback allocation");
+ gst_pad_mark_reconfigure (encoder->srcpad);
goto fallback;
}
}
GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
if (G_UNLIKELY (encoder->priv->output_state_changed
|| (encoder->priv->output_state
- && gst_pad_check_reconfigure (encoder->srcpad))))
- gst_video_encoder_negotiate (encoder);
+ && gst_pad_check_reconfigure (encoder->srcpad)))) {
+ if (!gst_video_encoder_negotiate (encoder)) {
+ GST_DEBUG_OBJECT (encoder, "Failed to negotiate, fallback allocation");
+ gst_pad_mark_reconfigure (encoder->srcpad);
+ }
+ }
GST_LOG_OBJECT (encoder, "alloc buffer size %" G_GSIZE_FORMAT, size);
if (G_UNLIKELY (priv->output_state_changed || (priv->output_state
&& gst_pad_check_reconfigure (encoder->srcpad)))) {
if (!gst_video_encoder_negotiate (encoder)) {
+ gst_pad_mark_reconfigure (encoder->srcpad);
if (GST_PAD_IS_FLUSHING (encoder->srcpad))
ret = GST_FLOW_FLUSHING;
else