fe20675e1d146c8a675a382ae74b5995ee72b0ee
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-bad / gst-libs / gst / webrtc / webrtc_fwd.h
1 /* GStreamer
2  * Copyright (C) 2017 Matthew Waters <matthew@centricular.com>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #ifndef __GST_WEBRTC_FWD_H__
21 #define __GST_WEBRTC_FWD_H__
22
23 #ifndef GST_USE_UNSTABLE_API
24 #warning "The WebRTC library from gst-plugins-bad is unstable API and may change in future."
25 #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
26 #endif
27
28 #include <gst/gst.h>
29
30 /**
31  * SECTION:webrtc_fwd.h
32  * @title: GstWebRTC Enumerations
33  */
34
35 #ifndef GST_WEBRTC_API
36 # ifdef BUILDING_GST_WEBRTC
37 #  define GST_WEBRTC_API GST_API_EXPORT         /* from config.h */
38 # else
39 #  define GST_WEBRTC_API GST_API_IMPORT
40 # endif
41 #endif
42
43 /**
44  * GST_WEBRTC_DEPRECATED: (attributes doc.skip=true)
45  */
46 /**
47  * GST_WEBRTC_DEPRECATED_FOR: (attributes doc.skip=true)
48  */
49 #ifndef GST_DISABLE_DEPRECATED
50 #define GST_WEBRTC_DEPRECATED GST_WEBRTC_API
51 #define GST_WEBRTC_DEPRECATED_FOR(f) GST_WEBRTC_API
52 #else
53 #define GST_WEBRTC_DEPRECATED G_DEPRECATED GST_WEBRTC_API
54 #define GST_WEBRTC_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) GST_WEBRTC_API
55 #endif
56
57 #include <gst/webrtc/webrtc-enumtypes.h>
58
59 /**
60  * GstWebRTCDTLSTransport:
61  */
62 typedef struct _GstWebRTCDTLSTransport GstWebRTCDTLSTransport;
63 typedef struct _GstWebRTCDTLSTransportClass GstWebRTCDTLSTransportClass;
64
65 /**
66  * GstWebRTCICE:
67  *
68  * Since: 1.22
69  */
70 typedef struct _GstWebRTCICE GstWebRTCICE;
71 typedef struct _GstWebRTCICEClass GstWebRTCICEClass;
72
73 /**
74  * GstWebRTCICECandidateStats:
75  *
76  * Since: 1.22
77  */
78 typedef struct _GstWebRTCICECandidateStats GstWebRTCICECandidateStats;
79
80 /**
81  * GstWebRTCICEStream:
82  *
83  * Since: 1.22
84  */
85 typedef struct _GstWebRTCICEStream GstWebRTCICEStream;
86 typedef struct _GstWebRTCICEStreamClass GstWebRTCICEStreamClass;
87
88 /**
89  * GstWebRTCICETransport:
90  */
91 typedef struct _GstWebRTCICETransport GstWebRTCICETransport;
92 typedef struct _GstWebRTCICETransportClass GstWebRTCICETransportClass;
93
94 /**
95  * GstWebRTCRTPReceiver:
96  *
97  * An object to track the receiving aspect of the stream
98  *
99  * Mostly matches the WebRTC RTCRtpReceiver interface.
100  */
101 typedef struct _GstWebRTCRTPReceiver GstWebRTCRTPReceiver;
102 typedef struct _GstWebRTCRTPReceiverClass GstWebRTCRTPReceiverClass;
103
104 /**
105  * GstWebRTCRTPSender:
106  *
107  * An object to track the sending aspect of the stream
108  *
109  * Mostly matches the WebRTC RTCRtpSender interface.
110  */
111 typedef struct _GstWebRTCRTPSender GstWebRTCRTPSender;
112 typedef struct _GstWebRTCRTPSenderClass GstWebRTCRTPSenderClass;
113
114 typedef struct _GstWebRTCSessionDescription GstWebRTCSessionDescription;
115
116 /**
117  * GstWebRTCRTPTransceiver:
118  *
119  * Mostly matches the WebRTC RTCRtpTransceiver interface.
120  */
121 typedef struct _GstWebRTCRTPTransceiver GstWebRTCRTPTransceiver;
122 typedef struct _GstWebRTCRTPTransceiverClass GstWebRTCRTPTransceiverClass;
123
124 /**
125  * GstWebRTCDataChannel:
126  *
127  * Since: 1.18
128  */
129 typedef struct _GstWebRTCDataChannel GstWebRTCDataChannel;
130 typedef struct _GstWebRTCDataChannelClass GstWebRTCDataChannelClass;
131
132 typedef struct _GstWebRTCSCTPTransport GstWebRTCSCTPTransport;
133 typedef struct _GstWebRTCSCTPTransportClass GstWebRTCSCTPTransportClass;
134
135 /**
136  * GstWebRTCDTLSTransportState:
137  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW: new
138  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED: closed
139  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED: failed
140  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING: connecting
141  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: connected
142  */
143 typedef enum /*< underscore_name=gst_webrtc_dtls_transport_state >*/
144 {
145   GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW,
146   GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED,
147   GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED,
148   GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING,
149   GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED,
150 } GstWebRTCDTLSTransportState;
151
152 /**
153  * GstWebRTCICEGatheringState:
154  * @GST_WEBRTC_ICE_GATHERING_STATE_NEW: new
155  * @GST_WEBRTC_ICE_GATHERING_STATE_GATHERING: gathering
156  * @GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE: complete
157  *
158  * See <http://w3c.github.io/webrtc-pc/#dom-rtcicegatheringstate>
159  */
160 typedef enum /*< underscore_name=gst_webrtc_ice_gathering_state >*/
161 {
162   GST_WEBRTC_ICE_GATHERING_STATE_NEW,
163   GST_WEBRTC_ICE_GATHERING_STATE_GATHERING,
164   GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE,
165 } GstWebRTCICEGatheringState; /*< underscore_name=gst_webrtc_ice_gathering_state >*/
166
167 /**
168  * GstWebRTCICEConnectionState:
169  * @GST_WEBRTC_ICE_CONNECTION_STATE_NEW: new
170  * @GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING: checking
171  * @GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED: connected
172  * @GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED: completed
173  * @GST_WEBRTC_ICE_CONNECTION_STATE_FAILED: failed
174  * @GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED: disconnected
175  * @GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED: closed
176  *
177  * See <http://w3c.github.io/webrtc-pc/#dom-rtciceconnectionstate>
178  */
179 typedef enum /*< underscore_name=gst_webrtc_ice_connection_state >*/
180 {
181   GST_WEBRTC_ICE_CONNECTION_STATE_NEW,
182   GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING,
183   GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED,
184   GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED,
185   GST_WEBRTC_ICE_CONNECTION_STATE_FAILED,
186   GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED,
187   GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED,
188 } GstWebRTCICEConnectionState;
189
190 /**
191  * GstWebRTCSignalingState:
192  * @GST_WEBRTC_SIGNALING_STATE_STABLE: stable
193  * @GST_WEBRTC_SIGNALING_STATE_CLOSED: closed
194  * @GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER: have-local-offer
195  * @GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER: have-remote-offer
196  * @GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER: have-local-pranswer
197  * @GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER: have-remote-pranswer
198  *
199  * See <http://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate>
200  */
201 typedef enum /*< underscore_name=gst_webrtc_signaling_state >*/
202 {
203   GST_WEBRTC_SIGNALING_STATE_STABLE,
204   GST_WEBRTC_SIGNALING_STATE_CLOSED,
205   GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER,
206   GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER,
207   GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER,
208   GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER,
209 } GstWebRTCSignalingState;
210
211 /**
212  * GstWebRTCPeerConnectionState:
213  * @GST_WEBRTC_PEER_CONNECTION_STATE_NEW: new
214  * @GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING: connecting
215  * @GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED: connected
216  * @GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED: disconnected
217  * @GST_WEBRTC_PEER_CONNECTION_STATE_FAILED: failed
218  * @GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED: closed
219  *
220  * See <http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate>
221  */
222 typedef enum /*< underscore_name=gst_webrtc_peer_connection_state >*/
223 {
224   GST_WEBRTC_PEER_CONNECTION_STATE_NEW,
225   GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING,
226   GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED,
227   GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED,
228   GST_WEBRTC_PEER_CONNECTION_STATE_FAILED,
229   GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED,
230 } GstWebRTCPeerConnectionState;
231
232 /**
233  * GstWebRTCICERole:
234  * @GST_WEBRTC_ICE_ROLE_CONTROLLED: controlled
235  * @GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling
236  */
237 typedef enum /*< underscore_name=gst_webrtc_ice_role >*/
238 {
239   GST_WEBRTC_ICE_ROLE_CONTROLLED,
240   GST_WEBRTC_ICE_ROLE_CONTROLLING,
241 } GstWebRTCICERole;
242
243 /**
244  * GstWebRTCICEComponent:
245  * @GST_WEBRTC_ICE_COMPONENT_RTP: RTP component
246  * @GST_WEBRTC_ICE_COMPONENT_RTCP: RTCP component
247  */
248 typedef enum /*< underscore_name=gst_webrtc_ice_component >*/
249 {
250   GST_WEBRTC_ICE_COMPONENT_RTP,
251   GST_WEBRTC_ICE_COMPONENT_RTCP,
252 } GstWebRTCICEComponent;
253
254 /**
255  * GstWebRTCSDPType:
256  * @GST_WEBRTC_SDP_TYPE_OFFER: offer
257  * @GST_WEBRTC_SDP_TYPE_PRANSWER: pranswer
258  * @GST_WEBRTC_SDP_TYPE_ANSWER: answer
259  * @GST_WEBRTC_SDP_TYPE_ROLLBACK: rollback
260  *
261  * See <http://w3c.github.io/webrtc-pc/#rtcsdptype>
262  */
263 typedef enum /*< underscore_name=gst_webrtc_sdp_type >*/
264 {
265   GST_WEBRTC_SDP_TYPE_OFFER = 1,
266   GST_WEBRTC_SDP_TYPE_PRANSWER,
267   GST_WEBRTC_SDP_TYPE_ANSWER,
268   GST_WEBRTC_SDP_TYPE_ROLLBACK,
269 } GstWebRTCSDPType;
270
271 /**
272  * GstWebRTCRTPTransceiverDirection:
273  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE: none
274  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE: inactive
275  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY: sendonly
276  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY: recvonly
277  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV: sendrecv
278  */
279 typedef enum /*< underscore_name=gst_webrtc_rtp_transceiver_direction >*/
280 {
281   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE,
282   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE,
283   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY,
284   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY,
285   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV,
286 } GstWebRTCRTPTransceiverDirection;
287
288 /**
289  * GstWebRTCDTLSSetup:
290  * @GST_WEBRTC_DTLS_SETUP_NONE: none
291  * @GST_WEBRTC_DTLS_SETUP_ACTPASS: actpass
292  * @GST_WEBRTC_DTLS_SETUP_ACTIVE: sendonly
293  * @GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly
294  */
295 typedef enum /*< underscore_name=gst_webrtc_dtls_setup >*/
296 {
297   GST_WEBRTC_DTLS_SETUP_NONE,
298   GST_WEBRTC_DTLS_SETUP_ACTPASS,
299   GST_WEBRTC_DTLS_SETUP_ACTIVE,
300   GST_WEBRTC_DTLS_SETUP_PASSIVE,
301 } GstWebRTCDTLSSetup;
302
303 /**
304  * GstWebRTCStatsType:
305  * @GST_WEBRTC_STATS_CODEC: codec
306  * @GST_WEBRTC_STATS_INBOUND_RTP: inbound-rtp
307  * @GST_WEBRTC_STATS_OUTBOUND_RTP: outbound-rtp
308  * @GST_WEBRTC_STATS_REMOTE_INBOUND_RTP: remote-inbound-rtp
309  * @GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP: remote-outbound-rtp
310  * @GST_WEBRTC_STATS_CSRC: csrc
311  * @GST_WEBRTC_STATS_PEER_CONNECTION: peer-connectiion
312  * @GST_WEBRTC_STATS_DATA_CHANNEL: data-channel
313  * @GST_WEBRTC_STATS_STREAM: stream
314  * @GST_WEBRTC_STATS_TRANSPORT: transport
315  * @GST_WEBRTC_STATS_CANDIDATE_PAIR: candidate-pair
316  * @GST_WEBRTC_STATS_LOCAL_CANDIDATE: local-candidate
317  * @GST_WEBRTC_STATS_REMOTE_CANDIDATE: remote-candidate
318  * @GST_WEBRTC_STATS_CERTIFICATE: certificate
319  */
320 typedef enum /*< underscore_name=gst_webrtc_stats_type >*/
321 {
322   GST_WEBRTC_STATS_CODEC = 1,
323   GST_WEBRTC_STATS_INBOUND_RTP,
324   GST_WEBRTC_STATS_OUTBOUND_RTP,
325   GST_WEBRTC_STATS_REMOTE_INBOUND_RTP,
326   GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP,
327   GST_WEBRTC_STATS_CSRC,
328   GST_WEBRTC_STATS_PEER_CONNECTION,
329   GST_WEBRTC_STATS_DATA_CHANNEL,
330   GST_WEBRTC_STATS_STREAM,
331   GST_WEBRTC_STATS_TRANSPORT,
332   GST_WEBRTC_STATS_CANDIDATE_PAIR,
333   GST_WEBRTC_STATS_LOCAL_CANDIDATE,
334   GST_WEBRTC_STATS_REMOTE_CANDIDATE,
335   GST_WEBRTC_STATS_CERTIFICATE,
336 } GstWebRTCStatsType;
337
338 /**
339  * GstWebRTCFECType:
340  * @GST_WEBRTC_FEC_TYPE_NONE: none
341  * @GST_WEBRTC_FEC_TYPE_ULP_RED: ulpfec + red
342  *
343  * Since: 1.14.1
344  */
345 typedef enum /*< underscore_name=gst_webrtc_fec_type >*/
346 {
347   GST_WEBRTC_FEC_TYPE_NONE,
348   GST_WEBRTC_FEC_TYPE_ULP_RED,
349 } GstWebRTCFECType;
350
351 /**
352  * GstWebRTCSCTPTransportState:
353  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW: new
354  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING: connecting
355  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED: connected
356  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED: closed
357  *
358  * See <http://w3c.github.io/webrtc-pc/#dom-rtcsctptransportstate>
359  *
360  * Since: 1.16
361  */
362 typedef enum /*< underscore_name=gst_webrtc_sctp_transport_state >*/
363 {
364   GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW,
365   GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING,
366   GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED,
367   GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED,
368 } GstWebRTCSCTPTransportState;
369
370 /**
371  * GstWebRTCPriorityType:
372  * @GST_WEBRTC_PRIORITY_TYPE_VERY_LOW: very-low
373  * @GST_WEBRTC_PRIORITY_TYPE_LOW: low
374  * @GST_WEBRTC_PRIORITY_TYPE_MEDIUM: medium
375  * @GST_WEBRTC_PRIORITY_TYPE_HIGH: high
376  *
377  * See <http://w3c.github.io/webrtc-pc/#dom-rtcprioritytype>
378  *
379  * Since: 1.16
380  */
381 typedef enum /*< underscore_name=gst_webrtc_priority_type >*/
382 {
383   GST_WEBRTC_PRIORITY_TYPE_VERY_LOW = 1,
384   GST_WEBRTC_PRIORITY_TYPE_LOW,
385   GST_WEBRTC_PRIORITY_TYPE_MEDIUM,
386   GST_WEBRTC_PRIORITY_TYPE_HIGH,
387 } GstWebRTCPriorityType;
388
389 /**
390  * GstWebRTCDataChannelState:
391  * @GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: connecting
392  * @GST_WEBRTC_DATA_CHANNEL_STATE_OPEN: open
393  * @GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING: closing
394  * @GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED: closed
395  *
396  * See <http://w3c.github.io/webrtc-pc/#dom-rtcdatachannelstate>
397  *
398  * Since: 1.16
399  */
400 typedef enum /*< underscore_name=gst_webrtc_data_channel_state >*/
401 {
402   GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING = 1,
403   GST_WEBRTC_DATA_CHANNEL_STATE_OPEN,
404   GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING,
405   GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED,
406 } GstWebRTCDataChannelState;
407
408 /**
409  * GstWebRTCBundlePolicy:
410  * @GST_WEBRTC_BUNDLE_POLICY_NONE: none
411  * @GST_WEBRTC_BUNDLE_POLICY_BALANCED: balanced
412  * @GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT: max-compat
413  * @GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE: max-bundle
414  *
415  * See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
416  * for more information.
417  *
418  * Since: 1.16
419  */
420 typedef enum /*<underscore_name=gst_webrtc_bundle_policy>*/
421 {
422   GST_WEBRTC_BUNDLE_POLICY_NONE,
423   GST_WEBRTC_BUNDLE_POLICY_BALANCED,
424   GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT,
425   GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE,
426 } GstWebRTCBundlePolicy;
427
428 /**
429  * GstWebRTCICETransportPolicy:
430  * @GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL: all
431  * @GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY: relay
432  *
433  * See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
434  * for more information.
435  *
436  * Since: 1.16
437  */
438 typedef enum /*<underscore_name=gst_webrtc_ice_transport_policy>*/
439 {
440   GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL,
441   GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY,
442 } GstWebRTCICETransportPolicy;
443
444 /**
445  * GstWebRTCKind:
446  * @GST_WEBRTC_KIND_UNKNOWN: Kind has not yet been set
447  * @GST_WEBRTC_KIND_AUDIO: Kind is audio
448  * @GST_WEBRTC_KIND_VIDEO: Kind is audio
449  *
450  * https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack-kind
451  *
452  * Since: 1.20
453  */
454 typedef enum /*<underscore_name=gst_webrtc_kind>*/
455 {
456   GST_WEBRTC_KIND_UNKNOWN,
457   GST_WEBRTC_KIND_AUDIO,
458   GST_WEBRTC_KIND_VIDEO,
459 } GstWebRTCKind;
460
461
462 GST_WEBRTC_API
463 GQuark gst_webrtc_error_quark (void);
464
465 /**
466  * GST_WEBRTC_ERROR:
467  *
468  * Since: 1.20
469  */
470 #define GST_WEBRTC_ERROR gst_webrtc_error_quark ()
471
472 /**
473  * GstWebRTCError:
474  * @GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE: data-channel-failure
475  * @GST_WEBRTC_ERROR_DTLS_FAILURE: dtls-failure
476  * @GST_WEBRTC_ERROR_FINGERPRINT_FAILURE: fingerprint-failure
477  * @GST_WEBRTC_ERROR_SCTP_FAILURE: sctp-failure
478  * @GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR: sdp-syntax-error
479  * @GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE: hardware-encoder-not-available
480  * @GST_WEBRTC_ERROR_ENCODER_ERROR: encoder-error
481  * @GST_WEBRTC_ERROR_INVALID_STATE: invalid-state (part of WebIDL specification)
482  * @GST_WEBRTC_ERROR_INTERNAL_FAILURE: GStreamer-specific failure, not matching any other value from the specification
483  *
484  * See <https://www.w3.org/TR/webrtc/#dom-rtcerrordetailtype> for more information.
485  *
486  * Since: 1.20
487  */
488 /**
489  * GST_WEBRTC_ERROR_TYPE_ERROR:
490  *
491  * type-error (maps to JavaScript TypeError)
492  *
493  * Since: 1.22
494  */
495 /**
496  * GST_WEBRTC_ERROR_INVALID_MODIFICATION:
497  *
498  * invalid-modification (part of WebIDL specification)
499  *
500  * Since: 1.22
501  */
502 typedef enum /*<underscore_name=gst_webrtc_error>*/
503 {
504   GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE,
505   GST_WEBRTC_ERROR_DTLS_FAILURE,
506   GST_WEBRTC_ERROR_FINGERPRINT_FAILURE,
507   GST_WEBRTC_ERROR_SCTP_FAILURE,
508   GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR,
509   GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE,
510   GST_WEBRTC_ERROR_ENCODER_ERROR,
511   GST_WEBRTC_ERROR_INVALID_STATE,
512   GST_WEBRTC_ERROR_TYPE_ERROR,
513   GST_WEBRTC_ERROR_INTERNAL_FAILURE,
514   GST_WEBRTC_ERROR_INVALID_MODIFICATION,
515 } GstWebRTCError;
516
517 #endif /* __GST_WEBRTC_FWD_H__ */