summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2013-11-29 15:49:29 +0000
committerTim-Philipp Müller <tim@centricular.com>2013-11-29 15:54:55 +0000
commit20d6dbd2f620d987737349b9c321bc18d05587e8 (patch)
tree2e250c957a07c50abb93b91c1a2a876057f2b2f8
parent8c1be8796e58bfcab7c9b9ac2ca089b10bf803b4 (diff)
x264enc: fix crash on NULL caps when negotiation happens without a downstream peer
gst-launch-1.0 videotestsrc ! x264enc
-rw-r--r--ext/x264/gstx264enc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c
index 5fc5e121..8ec88b3d 100644
--- a/ext/x264/gstx264enc.c
+++ b/ext/x264/gstx264enc.c
@@ -1552,6 +1552,10 @@ gst_x264_enc_set_profile_and_level (GstX264Enc * encoder, GstCaps * caps)
profile = gst_structure_get_string (s, "profile");
allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
+
+ if (allowed_caps == NULL)
+ goto no_peer;
+
if (!gst_caps_can_intersect (allowed_caps, caps)) {
allowed_caps = gst_caps_make_writable (allowed_caps);
allowed_caps = gst_caps_truncate (allowed_caps);
@@ -1581,6 +1585,8 @@ gst_x264_enc_set_profile_and_level (GstX264Enc * encoder, GstCaps * caps)
}
gst_caps_unref (allowed_caps);
+no_peer:
+
return TRUE;
}