webrtc: only add nack pli by default if kind is video
authorMatthew Waters <matthew@centricular.com>
Thu, 6 May 2021 07:07:51 +0000 (17:07 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 6 May 2021 12:19:51 +0000 (12:19 +0000)
Sending/receiving PLI's (Picture Loss Indication) for non-video doesn't
really make sense.  This also matches what the browsers do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>

ext/webrtc/gstwebrtcbin.c
ext/webrtc/utils.c

index 9bf156f..dc4b003 100644 (file)
@@ -1573,6 +1573,7 @@ static GstCaps *
 _add_supported_attributes_to_caps (GstWebRTCBin * webrtc,
     WebRTCTransceiver * trans, const GstCaps * caps)
 {
+  GstWebRTCKind kind;
   GstCaps *ret;
   guint i;
 
@@ -1581,6 +1582,7 @@ _add_supported_attributes_to_caps (GstWebRTCBin * webrtc,
 
   ret = gst_caps_make_writable (caps);
 
+  kind = webrtc_kind_from_caps (ret);
   for (i = 0; i < gst_caps_get_size (ret); i++) {
     GstStructure *s = gst_caps_get_structure (ret, i);
 
@@ -1588,7 +1590,8 @@ _add_supported_attributes_to_caps (GstWebRTCBin * webrtc,
       if (!gst_structure_has_field (s, "rtcp-fb-nack"))
         gst_structure_set (s, "rtcp-fb-nack", G_TYPE_BOOLEAN, TRUE, NULL);
 
-    if (!gst_structure_has_field (s, "rtcp-fb-nack-pli"))
+    if (kind == GST_WEBRTC_KIND_VIDEO
+        && !gst_structure_has_field (s, "rtcp-fb-nack-pli"))
       gst_structure_set (s, "rtcp-fb-nack-pli", G_TYPE_BOOLEAN, TRUE, NULL);
     if (!gst_structure_has_field (s, "rtcp-fb-transport-cc"))
       gst_structure_set (s, "rtcp-fb-transport-cc", G_TYPE_BOOLEAN, TRUE, NULL);
index 6ba101b..3117ed1 100644 (file)
@@ -229,4 +229,3 @@ webrtc_kind_from_caps (const GstCaps * caps)
 
   return GST_WEBRTC_KIND_UNKNOWN;
 }
-