diff options
-rw-r--r-- | gst-libs/gst/video/gstvideodecoder.c | 7 |
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); |