sdp/caps: support translating transport-cc rtcp-fb from caps to sdp attributes
authorMatthew Waters <matthew@centricular.com>
Thu, 29 Apr 2021 11:16:10 +0000 (21:16 +1000)
committerMatthew Waters <matthew@centricular.com>
Thu, 29 Apr 2021 11:16:57 +0000 (21:16 +1000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1130>

gst-libs/gst/sdp/gstsdpmessage.c

index 28bf63b..04c27b9 100644 (file)
@@ -3767,7 +3767,7 @@ gst_sdp_media_set_media_from_caps (const GstCaps * caps, GstSDPMedia * media)
   gchar *tmp;
   gint caps_pt, caps_rate;
   guint n_fields, j;
   gchar *tmp;
   gint caps_pt, caps_rate;
   guint n_fields, j;
-  gboolean first, nack, nack_pli, ccm_fir;
+  gboolean first, nack, nack_pli, ccm_fir, transport_cc;
   GString *fmtp;
   GstStructure *s;
 
   GString *fmtp;
   GstStructure *s;
 
@@ -3833,6 +3833,15 @@ gst_sdp_media_set_media_from_caps (const GstCaps * caps, GstSDPMedia * media)
     }
   }
 
     }
   }
 
+  if (gst_structure_get_boolean (s, "rtcp-fb-transport-cc", &transport_cc)) {
+    if (transport_cc) {
+      tmp = g_strdup_printf ("%d transport-cc", caps_pt);
+      gst_sdp_media_add_attribute (media, "rtcp-fb", tmp);
+      g_free (tmp);
+      GST_DEBUG ("adding rtcp-fb-transport-cc to pt=%d", caps_pt);
+    }
+  }
+
   /* collect all other properties and add them to fmtp, extmap or attributes */
   fmtp = g_string_new ("");
   g_string_append_printf (fmtp, "%d ", caps_pt);
   /* collect all other properties and add them to fmtp, extmap or attributes */
   fmtp = g_string_new ("");
   g_string_append_printf (fmtp, "%d ", caps_pt);