summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst-libs/gst/video/gstvideodecoder.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index 623b307a7..6e789e2bf 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -3809,9 +3809,12 @@ gst_video_decoder_negotiate_default (GstVideoDecoder * decoder)
}
prevcaps = gst_pad_get_current_caps (decoder->srcpad);
- if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps))
+ if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps)) {
ret = gst_pad_set_caps (decoder->srcpad, state->caps);
- else
+ if (ret || decoder->priv->pool == NULL)
+ /* Negotiate pool */
+ ret = gst_video_decoder_negotiate_pool (decoder, state->caps);
+ } else
ret = TRUE;
if (prevcaps)
gst_caps_unref (prevcaps);