webrtc lib: Make the datachannel 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:
parent
dd2da6f2b4
commit
a931e31141
@ -26,6 +26,8 @@
|
|||||||
#include <gst/webrtc/datachannel.h>
|
#include <gst/webrtc/datachannel.h>
|
||||||
#include "sctptransport.h"
|
#include "sctptransport.h"
|
||||||
|
|
||||||
|
#include "gst/webrtc/webrtc-priv.h"
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
GType webrtc_data_channel_get_type(void);
|
GType webrtc_data_channel_get_type(void);
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "datachannel.h"
|
#include "datachannel.h"
|
||||||
|
#include "webrtc-priv.h"
|
||||||
|
|
||||||
#define GST_CAT_DEFAULT gst_webrtc_data_channel_debug
|
#define GST_CAT_DEFAULT gst_webrtc_data_channel_debug
|
||||||
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||||
|
@ -36,69 +36,6 @@ GType gst_webrtc_data_channel_get_type(void);
|
|||||||
#define GST_IS_WEBRTC_DATA_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_WEBRTC_DATA_CHANNEL))
|
#define GST_IS_WEBRTC_DATA_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_WEBRTC_DATA_CHANNEL))
|
||||||
#define GST_WEBRTC_DATA_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_WEBRTC_DATA_CHANNEL,GstWebRTCDataChannelClass))
|
#define GST_WEBRTC_DATA_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_WEBRTC_DATA_CHANNEL,GstWebRTCDataChannelClass))
|
||||||
|
|
||||||
#define GST_WEBRTC_DATA_CHANNEL_LOCK(channel) g_mutex_lock(&((GstWebRTCDataChannel *)(channel))->lock)
|
|
||||||
#define GST_WEBRTC_DATA_CHANNEL_UNLOCK(channel) g_mutex_unlock(&((GstWebRTCDataChannel *)(channel))->lock)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* GstWebRTCDataChannel:
|
|
||||||
*
|
|
||||||
* Since: 1.18
|
|
||||||
*/
|
|
||||||
struct _GstWebRTCDataChannel
|
|
||||||
{
|
|
||||||
GObject parent;
|
|
||||||
|
|
||||||
GMutex lock;
|
|
||||||
|
|
||||||
gchar *label;
|
|
||||||
gboolean ordered;
|
|
||||||
guint max_packet_lifetime;
|
|
||||||
guint max_retransmits;
|
|
||||||
gchar *protocol;
|
|
||||||
gboolean negotiated;
|
|
||||||
gint id;
|
|
||||||
GstWebRTCPriorityType priority;
|
|
||||||
GstWebRTCDataChannelState ready_state;
|
|
||||||
guint64 buffered_amount;
|
|
||||||
guint64 buffered_amount_low_threshold;
|
|
||||||
|
|
||||||
gpointer _padding[GST_PADDING];
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* GstWebRTCDataChannelClass:
|
|
||||||
*
|
|
||||||
* Since: 1.18
|
|
||||||
*/
|
|
||||||
struct _GstWebRTCDataChannelClass
|
|
||||||
{
|
|
||||||
GObjectClass parent_class;
|
|
||||||
|
|
||||||
void (*send_data) (GstWebRTCDataChannel * channel, GBytes *data);
|
|
||||||
void (*send_string) (GstWebRTCDataChannel * channel, const gchar *str);
|
|
||||||
void (*close) (GstWebRTCDataChannel * channel);
|
|
||||||
|
|
||||||
gpointer _padding[GST_PADDING];
|
|
||||||
};
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_open (GstWebRTCDataChannel * channel);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_close (GstWebRTCDataChannel * channel);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_error (GstWebRTCDataChannel * channel, GError * error);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_message_data (GstWebRTCDataChannel * channel, GBytes * data);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_message_string (GstWebRTCDataChannel * channel, const gchar * str);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
|
||||||
void gst_webrtc_data_channel_on_buffered_amount_low (GstWebRTCDataChannel * channel);
|
|
||||||
|
|
||||||
GST_WEBRTC_API
|
GST_WEBRTC_API
|
||||||
void gst_webrtc_data_channel_send_data (GstWebRTCDataChannel * channel, GBytes * data);
|
void gst_webrtc_data_channel_send_data (GstWebRTCDataChannel * channel, GBytes * data);
|
||||||
|
|
||||||
|
@ -231,6 +231,69 @@ GST_WEBRTC_API
|
|||||||
void gst_webrtc_dtls_transport_set_transport (GstWebRTCDTLSTransport * transport,
|
void gst_webrtc_dtls_transport_set_transport (GstWebRTCDTLSTransport * transport,
|
||||||
GstWebRTCICETransport * ice);
|
GstWebRTCICETransport * ice);
|
||||||
|
|
||||||
|
#define GST_WEBRTC_DATA_CHANNEL_LOCK(channel) g_mutex_lock(&((GstWebRTCDataChannel *)(channel))->lock)
|
||||||
|
#define GST_WEBRTC_DATA_CHANNEL_UNLOCK(channel) g_mutex_unlock(&((GstWebRTCDataChannel *)(channel))->lock)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstWebRTCDataChannel:
|
||||||
|
*
|
||||||
|
* Since: 1.18
|
||||||
|
*/
|
||||||
|
struct _GstWebRTCDataChannel
|
||||||
|
{
|
||||||
|
GObject parent;
|
||||||
|
|
||||||
|
GMutex lock;
|
||||||
|
|
||||||
|
gchar *label;
|
||||||
|
gboolean ordered;
|
||||||
|
guint max_packet_lifetime;
|
||||||
|
guint max_retransmits;
|
||||||
|
gchar *protocol;
|
||||||
|
gboolean negotiated;
|
||||||
|
gint id;
|
||||||
|
GstWebRTCPriorityType priority;
|
||||||
|
GstWebRTCDataChannelState ready_state;
|
||||||
|
guint64 buffered_amount;
|
||||||
|
guint64 buffered_amount_low_threshold;
|
||||||
|
|
||||||
|
gpointer _padding[GST_PADDING];
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstWebRTCDataChannelClass:
|
||||||
|
*
|
||||||
|
* Since: 1.18
|
||||||
|
*/
|
||||||
|
struct _GstWebRTCDataChannelClass
|
||||||
|
{
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
void (*send_data) (GstWebRTCDataChannel * channel, GBytes *data);
|
||||||
|
void (*send_string) (GstWebRTCDataChannel * channel, const gchar *str);
|
||||||
|
void (*close) (GstWebRTCDataChannel * channel);
|
||||||
|
|
||||||
|
gpointer _padding[GST_PADDING];
|
||||||
|
};
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_open (GstWebRTCDataChannel * channel);
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_close (GstWebRTCDataChannel * channel);
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_error (GstWebRTCDataChannel * channel, GError * error);
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_message_data (GstWebRTCDataChannel * channel, GBytes * data);
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_message_string (GstWebRTCDataChannel * channel, const gchar * str);
|
||||||
|
|
||||||
|
GST_WEBRTC_API
|
||||||
|
void gst_webrtc_data_channel_on_buffered_amount_low (GstWebRTCDataChannel * channel);
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user