webrtc lib: Make the rtpsender struct private

This will prevent any unsafe access.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
This commit is contained in:
Olivier Crête 2021-04-21 16:00:57 -04:00 committed by GStreamer Marge Bot
parent b5f2de3124
commit a6593753a5
4 changed files with 45 additions and 42 deletions

View file

@ -31,6 +31,8 @@
#include "webrtcdatachannel.h" #include "webrtcdatachannel.h"
#include "sctptransport.h" #include "sctptransport.h"
#include "gst/webrtc/webrtc-priv.h"
#include <gst/rtp/rtp.h> #include <gst/rtp/rtp.h>
#include <stdio.h> #include <stdio.h>

View file

@ -32,6 +32,7 @@
#include "rtpsender.h" #include "rtpsender.h"
#include "rtptransceiver.h" #include "rtptransceiver.h"
#include "webrtc-priv.h"
#define GST_CAT_DEFAULT gst_webrtc_rtp_sender_debug #define GST_CAT_DEFAULT gst_webrtc_rtp_sender_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);

View file

@ -35,48 +35,6 @@ GType gst_webrtc_rtp_sender_get_type(void);
#define GST_IS_WEBRTC_RTP_SENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_WEBRTC_RTP_SENDER)) #define GST_IS_WEBRTC_RTP_SENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_WEBRTC_RTP_SENDER))
#define GST_WEBRTC_RTP_SENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_WEBRTC_RTP_SENDER,GstWebRTCRTPSenderClass)) #define GST_WEBRTC_RTP_SENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_WEBRTC_RTP_SENDER,GstWebRTCRTPSenderClass))
/**
* GstWebRTCRTPSender:
* @transport: The transport for RTP packets
* @send_encodings: Unused
* @priority: The priority of the stream (Since: 1.20)
*
* An object to track the sending aspect of the stream
*
* Mostly matches the WebRTC RTCRtpSender interface.
*
* Since: 1.16
*/
/**
* GstWebRTCRTPSender.priority:
*
* The priority of the stream
*
* Since: 1.20
*/
struct _GstWebRTCRTPSender
{
GstObject parent;
/* The MediStreamTrack is represented by the stream and is output into @transport as necessary */
GstWebRTCDTLSTransport *transport;
GArray *send_encodings;
GstWebRTCPriorityType priority;
gpointer _padding[GST_PADDING];
};
struct _GstWebRTCRTPSenderClass
{
GstObjectClass parent_class;
gpointer _padding[GST_PADDING];
};
GST_WEBRTC_API
GstWebRTCRTPSender * gst_webrtc_rtp_sender_new (void);
GST_WEBRTC_API GST_WEBRTC_API
void gst_webrtc_rtp_sender_set_priority (GstWebRTCRTPSender *sender, void gst_webrtc_rtp_sender_set_priority (GstWebRTCRTPSender *sender,
GstWebRTCPriorityType priority); GstWebRTCPriorityType priority);

View file

@ -86,6 +86,48 @@ struct _GstWebRTCRTPTransceiverClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
/**
* GstWebRTCRTPSender:
* @transport: The transport for RTP packets
* @send_encodings: Unused
* @priority: The priority of the stream (Since: 1.20)
*
* An object to track the sending aspect of the stream
*
* Mostly matches the WebRTC RTCRtpSender interface.
*
* Since: 1.16
*/
/**
* GstWebRTCRTPSender.priority:
*
* The priority of the stream
*
* Since: 1.20
*/
struct _GstWebRTCRTPSender
{
GstObject parent;
/* The MediStreamTrack is represented by the stream and is output into @transport as necessary */
GstWebRTCDTLSTransport *transport;
GArray *send_encodings;
GstWebRTCPriorityType priority;
gpointer _padding[GST_PADDING];
};
struct _GstWebRTCRTPSenderClass
{
GstObjectClass parent_class;
gpointer _padding[GST_PADDING];
};
GST_WEBRTC_API
GstWebRTCRTPSender * gst_webrtc_rtp_sender_new (void);
G_END_DECLS G_END_DECLS
#endif /* __GST_WEBRTC_PRIV_H__ */ #endif /* __GST_WEBRTC_PRIV_H__ */