summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunjun Ko <zzoon@igalia.com>2016-05-10 21:34:53 +0900
committerSebastian Dröge <sebastian@centricular.com>2016-05-11 09:44:50 +0300
commit648a07f367fe290164ca3e19d709b81ee67c22ba (patch)
treef85fe671dc17a86a565f45c4311b098a29b4a5db
parent907ef9b7c026f8958d8f5d0fdf6da4f1b8e199d7 (diff)
downloadgstreamer-plugins-base-648a07f367fe290164ca3e19d709b81ee67c22ba.tar.gz
sdp: parse sdp attributes in case that sdp message doesn't contain mikey message
https://bugzilla.gnome.org/show_bug.cgi?id=766204
-rw-r--r--gst-libs/gst/sdp/gstsdpmessage.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/gst-libs/gst/sdp/gstsdpmessage.c b/gst-libs/gst/sdp/gstsdpmessage.c
index 618712b3f..d871ea5fb 100644
--- a/gst-libs/gst/sdp/gstsdpmessage.c
+++ b/gst-libs/gst/sdp/gstsdpmessage.c
@@ -3782,12 +3782,17 @@ gst_sdp_message_attributes_to_caps (const GstSDPMessage * msg, GstCaps * caps)
res = gst_sdp_message_parse_keymgmt (msg, &mikey);
if (mikey) {
- res = GST_SDP_EINVAL;
- if (gst_mikey_message_to_caps (mikey, caps))
- res = sdp_add_attributes_to_caps (msg->attributes, caps);
- gst_mikey_message_unref (mikey);
+ if (gst_mikey_message_to_caps (mikey, caps)) {
+ res = GST_SDP_EINVAL;
+ goto done;
+ }
}
+ res = sdp_add_attributes_to_caps (msg->attributes, caps);
+
+done:
+ if (mikey)
+ gst_mikey_message_unref (mikey);
return res;
}
@@ -3813,11 +3818,16 @@ gst_sdp_media_attributes_to_caps (const GstSDPMedia * media, GstCaps * caps)
res = gst_sdp_media_parse_keymgmt (media, &mikey);
if (mikey) {
- res = GST_SDP_EINVAL;
- if (gst_mikey_message_to_caps (mikey, caps))
- res = sdp_add_attributes_to_caps (media->attributes, caps);
- gst_mikey_message_unref (mikey);
+ if (!gst_mikey_message_to_caps (mikey, caps)) {
+ res = GST_SDP_EINVAL;
+ goto done;
+ }
}
+ res = sdp_add_attributes_to_caps (media->attributes, caps);
+
+done:
+ if (mikey)
+ gst_mikey_message_unref (mikey);
return res;
}