sdp: parse sdp attributes in case that sdp message doesn't contain mikey message
authorHyunjun Ko <zzoon@igalia.com>
Tue, 10 May 2016 12:34:53 +0000 (21:34 +0900)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 10 May 2016 16:43:32 +0000 (19:43 +0300)
https://bugzilla.gnome.org/show_bug.cgi?id=766204

gst-libs/gst/sdp/gstsdpmessage.c

index 618712b..d871ea5 100644 (file)
@@ -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;
 }