webrtc: Use properties to access the inside of the transceiver object
authorOlivier Crête <olivier.crete@collabora.com>
Wed, 21 Apr 2021 20:27:38 +0000 (16:27 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Thu, 13 May 2021 21:49:49 +0000 (17:49 -0400)
This will allow hiding the insides from unsafe application access.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/36>

webrtc/sendonly/webrtc-unidirectional-h264.c

index 48fe8a0..593d861 100644 (file)
@@ -259,22 +259,34 @@ create_receiver_entry (SoupWebsocketConnection * connection)
       &transceivers);
   g_assert (transceivers != NULL && transceivers->len > 1);
   trans = g_array_index (transceivers, GstWebRTCRTPTransceiver *, 0);
-  trans->direction = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY;
+  g_object_set (trans, "direction",
+      GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY, NULL);
   if (video_priority) {
     GstWebRTCPriorityType priority;
 
     priority = _priority_from_string (video_priority);
-    if (priority)
-      gst_webrtc_rtp_sender_set_priority (trans->sender, priority);
+    if (priority) {
+      GstWebRTCRTPSender *sender;
+
+      g_object_get (trans, "sender", &sender, NULL);
+      gst_webrtc_rtp_sender_set_priority (sender, priority);
+      g_object_unref (sender);
+    }
   }
   trans = g_array_index (transceivers, GstWebRTCRTPTransceiver *, 1);
-  trans->direction = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY;
+  g_object_set (trans, "direction",
+      GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY, NULL);
   if (audio_priority) {
     GstWebRTCPriorityType priority;
 
     priority = _priority_from_string (audio_priority);
-    if (priority)
-      gst_webrtc_rtp_sender_set_priority (trans->sender, priority);
+    if (priority) {
+      GstWebRTCRTPSender *sender;
+
+      g_object_get (trans, "sender", &sender, NULL);
+      gst_webrtc_rtp_sender_set_priority (sender, priority);
+      g_object_unref (sender);
+    }
   }
   g_array_unref (transceivers);