From 648a07f367fe290164ca3e19d709b81ee67c22ba Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Tue, 10 May 2016 21:34:53 +0900 Subject: sdp: parse sdp attributes in case that sdp message doesn't contain mikey message https://bugzilla.gnome.org/show_bug.cgi?id=766204 --- gst-libs/gst/sdp/gstsdpmessage.c | 26 ++++++++++++++++++-------- 1 file 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; } -- cgit v1.2.1