• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <gst/webrtc/webrtc-enumtypes.h>
44 
45 /**
46  * GstWebRTCDTLSTransport:
47  */
48 typedef struct _GstWebRTCDTLSTransport GstWebRTCDTLSTransport;
49 typedef struct _GstWebRTCDTLSTransportClass GstWebRTCDTLSTransportClass;
50 
51 /**
52  * GstWebRTCICETransport:
53  */
54 typedef struct _GstWebRTCICETransport GstWebRTCICETransport;
55 typedef struct _GstWebRTCICETransportClass GstWebRTCICETransportClass;
56 
57 /**
58  * GstWebRTCRTPReceiver:
59  *
60  * An object to track the receiving aspect of the stream
61  *
62  * Mostly matches the WebRTC RTCRtpReceiver interface.
63  */
64 typedef struct _GstWebRTCRTPReceiver GstWebRTCRTPReceiver;
65 typedef struct _GstWebRTCRTPReceiverClass GstWebRTCRTPReceiverClass;
66 
67 /**
68  * GstWebRTCRTPSender:
69  *
70  * An object to track the sending aspect of the stream
71  *
72  * Mostly matches the WebRTC RTCRtpSender interface.
73  */
74 typedef struct _GstWebRTCRTPSender GstWebRTCRTPSender;
75 typedef struct _GstWebRTCRTPSenderClass GstWebRTCRTPSenderClass;
76 
77 typedef struct _GstWebRTCSessionDescription GstWebRTCSessionDescription;
78 
79 /**
80  * GstWebRTCRTPTransceiver:
81  *
82  * Mostly matches the WebRTC RTCRtpTransceiver interface.
83  */
84 typedef struct _GstWebRTCRTPTransceiver GstWebRTCRTPTransceiver;
85 typedef struct _GstWebRTCRTPTransceiverClass GstWebRTCRTPTransceiverClass;
86 
87 /**
88  * GstWebRTCDataChannel:
89  *
90  * Since: 1.18
91  */
92 typedef struct _GstWebRTCDataChannel GstWebRTCDataChannel;
93 typedef struct _GstWebRTCDataChannelClass GstWebRTCDataChannelClass;
94 
95 typedef struct _GstWebRTCSCTPTransport GstWebRTCSCTPTransport;
96 typedef struct _GstWebRTCSCTPTransportClass GstWebRTCSCTPTransportClass;
97 
98 /**
99  * GstWebRTCDTLSTransportState:
100  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW: new
101  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED: closed
102  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED: failed
103  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING: connecting
104  * @GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: connected
105  */
106 typedef enum /*< underscore_name=gst_webrtc_dtls_transport_state >*/
107 {
108   GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW,
109   GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED,
110   GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED,
111   GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING,
112   GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED,
113 } GstWebRTCDTLSTransportState;
114 
115 /**
116  * GstWebRTCICEGatheringState:
117  * @GST_WEBRTC_ICE_GATHERING_STATE_NEW: new
118  * @GST_WEBRTC_ICE_GATHERING_STATE_GATHERING: gathering
119  * @GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE: complete
120  *
121  * See <http://w3c.github.io/webrtc-pc/#dom-rtcicegatheringstate>
122  */
123 typedef enum /*< underscore_name=gst_webrtc_ice_gathering_state >*/
124 {
125   GST_WEBRTC_ICE_GATHERING_STATE_NEW,
126   GST_WEBRTC_ICE_GATHERING_STATE_GATHERING,
127   GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE,
128 } GstWebRTCICEGatheringState; /*< underscore_name=gst_webrtc_ice_gathering_state >*/
129 
130 /**
131  * GstWebRTCICEConnectionState:
132  * @GST_WEBRTC_ICE_CONNECTION_STATE_NEW: new
133  * @GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING: checking
134  * @GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED: connected
135  * @GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED: completed
136  * @GST_WEBRTC_ICE_CONNECTION_STATE_FAILED: failed
137  * @GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED: disconnected
138  * @GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED: closed
139  *
140  * See <http://w3c.github.io/webrtc-pc/#dom-rtciceconnectionstate>
141  */
142 typedef enum /*< underscore_name=gst_webrtc_ice_connection_state >*/
143 {
144   GST_WEBRTC_ICE_CONNECTION_STATE_NEW,
145   GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING,
146   GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED,
147   GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED,
148   GST_WEBRTC_ICE_CONNECTION_STATE_FAILED,
149   GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED,
150   GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED,
151 } GstWebRTCICEConnectionState;
152 
153 /**
154  * GstWebRTCSignalingState:
155  * @GST_WEBRTC_SIGNALING_STATE_STABLE: stable
156  * @GST_WEBRTC_SIGNALING_STATE_CLOSED: closed
157  * @GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER: have-local-offer
158  * @GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER: have-remote-offer
159  * @GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER: have-local-pranswer
160  * @GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER: have-remote-pranswer
161  *
162  * See <http://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate>
163  */
164 typedef enum /*< underscore_name=gst_webrtc_signaling_state >*/
165 {
166   GST_WEBRTC_SIGNALING_STATE_STABLE,
167   GST_WEBRTC_SIGNALING_STATE_CLOSED,
168   GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER,
169   GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER,
170   GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER,
171   GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER,
172 } GstWebRTCSignalingState;
173 
174 /**
175  * GstWebRTCPeerConnectionState:
176  * @GST_WEBRTC_PEER_CONNECTION_STATE_NEW: new
177  * @GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING: connecting
178  * @GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED: connected
179  * @GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED: disconnected
180  * @GST_WEBRTC_PEER_CONNECTION_STATE_FAILED: failed
181  * @GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED: closed
182  *
183  * See <http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate>
184  */
185 typedef enum /*< underscore_name=gst_webrtc_peer_connection_state >*/
186 {
187   GST_WEBRTC_PEER_CONNECTION_STATE_NEW,
188   GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING,
189   GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED,
190   GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED,
191   GST_WEBRTC_PEER_CONNECTION_STATE_FAILED,
192   GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED,
193 } GstWebRTCPeerConnectionState;
194 
195 /**
196  * GstWebRTCICERole:
197  * @GST_WEBRTC_ICE_ROLE_CONTROLLED: controlled
198  * @GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling
199  */
200 typedef enum /*< underscore_name=gst_webrtc_ice_role >*/
201 {
202   GST_WEBRTC_ICE_ROLE_CONTROLLED,
203   GST_WEBRTC_ICE_ROLE_CONTROLLING,
204 } GstWebRTCICERole;
205 
206 /**
207  * GstWebRTCICEComponent:
208  * @GST_WEBRTC_ICE_COMPONENT_RTP: RTP component
209  * @GST_WEBRTC_ICE_COMPONENT_RTCP: RTCP component
210  */
211 typedef enum /*< underscore_name=gst_webrtc_ice_component >*/
212 {
213   GST_WEBRTC_ICE_COMPONENT_RTP,
214   GST_WEBRTC_ICE_COMPONENT_RTCP,
215 } GstWebRTCICEComponent;
216 
217 /**
218  * GstWebRTCSDPType:
219  * @GST_WEBRTC_SDP_TYPE_OFFER: offer
220  * @GST_WEBRTC_SDP_TYPE_PRANSWER: pranswer
221  * @GST_WEBRTC_SDP_TYPE_ANSWER: answer
222  * @GST_WEBRTC_SDP_TYPE_ROLLBACK: rollback
223  *
224  * See <http://w3c.github.io/webrtc-pc/#rtcsdptype>
225  */
226 typedef enum /*< underscore_name=gst_webrtc_sdp_type >*/
227 {
228   GST_WEBRTC_SDP_TYPE_OFFER = 1,
229   GST_WEBRTC_SDP_TYPE_PRANSWER,
230   GST_WEBRTC_SDP_TYPE_ANSWER,
231   GST_WEBRTC_SDP_TYPE_ROLLBACK,
232 } GstWebRTCSDPType;
233 
234 /**
235  * GstWebRTCRTPTransceiverDirection:
236  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE: none
237  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE: inactive
238  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY: sendonly
239  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY: recvonly
240  * @GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV: sendrecv
241  */
242 typedef enum /*< underscore_name=gst_webrtc_rtp_transceiver_direction >*/
243 {
244   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE,
245   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE,
246   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY,
247   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY,
248   GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV,
249 } GstWebRTCRTPTransceiverDirection;
250 
251 /**
252  * GstWebRTCDTLSSetup:
253  * @GST_WEBRTC_DTLS_SETUP_NONE: none
254  * @GST_WEBRTC_DTLS_SETUP_ACTPASS: actpass
255  * @GST_WEBRTC_DTLS_SETUP_ACTIVE: sendonly
256  * @GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly
257  */
258 typedef enum /*< underscore_name=gst_webrtc_dtls_setup >*/
259 {
260   GST_WEBRTC_DTLS_SETUP_NONE,
261   GST_WEBRTC_DTLS_SETUP_ACTPASS,
262   GST_WEBRTC_DTLS_SETUP_ACTIVE,
263   GST_WEBRTC_DTLS_SETUP_PASSIVE,
264 } GstWebRTCDTLSSetup;
265 
266 /**
267  * GstWebRTCStatsType:
268  * @GST_WEBRTC_STATS_CODEC: codec
269  * @GST_WEBRTC_STATS_INBOUND_RTP: inbound-rtp
270  * @GST_WEBRTC_STATS_OUTBOUND_RTP: outbound-rtp
271  * @GST_WEBRTC_STATS_REMOTE_INBOUND_RTP: remote-inbound-rtp
272  * @GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP: remote-outbound-rtp
273  * @GST_WEBRTC_STATS_CSRC: csrc
274  * @GST_WEBRTC_STATS_PEER_CONNECTION: peer-connectiion
275  * @GST_WEBRTC_STATS_DATA_CHANNEL: data-channel
276  * @GST_WEBRTC_STATS_STREAM: stream
277  * @GST_WEBRTC_STATS_TRANSPORT: transport
278  * @GST_WEBRTC_STATS_CANDIDATE_PAIR: candidate-pair
279  * @GST_WEBRTC_STATS_LOCAL_CANDIDATE: local-candidate
280  * @GST_WEBRTC_STATS_REMOTE_CANDIDATE: remote-candidate
281  * @GST_WEBRTC_STATS_CERTIFICATE: certificate
282  */
283 typedef enum /*< underscore_name=gst_webrtc_stats_type >*/
284 {
285   GST_WEBRTC_STATS_CODEC = 1,
286   GST_WEBRTC_STATS_INBOUND_RTP,
287   GST_WEBRTC_STATS_OUTBOUND_RTP,
288   GST_WEBRTC_STATS_REMOTE_INBOUND_RTP,
289   GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP,
290   GST_WEBRTC_STATS_CSRC,
291   GST_WEBRTC_STATS_PEER_CONNECTION,
292   GST_WEBRTC_STATS_DATA_CHANNEL,
293   GST_WEBRTC_STATS_STREAM,
294   GST_WEBRTC_STATS_TRANSPORT,
295   GST_WEBRTC_STATS_CANDIDATE_PAIR,
296   GST_WEBRTC_STATS_LOCAL_CANDIDATE,
297   GST_WEBRTC_STATS_REMOTE_CANDIDATE,
298   GST_WEBRTC_STATS_CERTIFICATE,
299 } GstWebRTCStatsType;
300 
301 /**
302  * GstWebRTCFECType:
303  * @GST_WEBRTC_FEC_TYPE_NONE: none
304  * @GST_WEBRTC_FEC_TYPE_ULP_RED: ulpfec + red
305  *
306  * Since: 1.14.1
307  */
308 typedef enum /*< underscore_name=gst_webrtc_fec_type >*/
309 {
310   GST_WEBRTC_FEC_TYPE_NONE,
311   GST_WEBRTC_FEC_TYPE_ULP_RED,
312 } GstWebRTCFECType;
313 
314 /**
315  * GstWebRTCSCTPTransportState:
316  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW: new
317  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING: connecting
318  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED: connected
319  * @GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED: closed
320  *
321  * See <http://w3c.github.io/webrtc-pc/#dom-rtcsctptransportstate>
322  *
323  * Since: 1.16
324  */
325 typedef enum /*< underscore_name=gst_webrtc_sctp_transport_state >*/
326 {
327   GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW,
328   GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING,
329   GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED,
330   GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED,
331 } GstWebRTCSCTPTransportState;
332 
333 /**
334  * GstWebRTCPriorityType:
335  * @GST_WEBRTC_PRIORITY_TYPE_VERY_LOW: very-low
336  * @GST_WEBRTC_PRIORITY_TYPE_LOW: low
337  * @GST_WEBRTC_PRIORITY_TYPE_MEDIUM: medium
338  * @GST_WEBRTC_PRIORITY_TYPE_HIGH: high
339  *
340  * See <http://w3c.github.io/webrtc-pc/#dom-rtcprioritytype>
341  *
342  * Since: 1.16
343  */
344 typedef enum /*< underscore_name=gst_webrtc_priority_type >*/
345 {
346   GST_WEBRTC_PRIORITY_TYPE_VERY_LOW = 1,
347   GST_WEBRTC_PRIORITY_TYPE_LOW,
348   GST_WEBRTC_PRIORITY_TYPE_MEDIUM,
349   GST_WEBRTC_PRIORITY_TYPE_HIGH,
350 } GstWebRTCPriorityType;
351 
352 /**
353  * GstWebRTCDataChannelState:
354  * @GST_WEBRTC_DATA_CHANNEL_STATE_NEW: new
355  * @GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: connection
356  * @GST_WEBRTC_DATA_CHANNEL_STATE_OPEN: open
357  * @GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING: closing
358  * @GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED: closed
359  *
360  * See <http://w3c.github.io/webrtc-pc/#dom-rtcdatachannelstate>
361  *
362  * Since: 1.16
363  */
364 typedef enum /*< underscore_name=gst_webrtc_data_channel_state >*/
365 {
366   GST_WEBRTC_DATA_CHANNEL_STATE_NEW,
367   GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING,
368   GST_WEBRTC_DATA_CHANNEL_STATE_OPEN,
369   GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING,
370   GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED,
371 } GstWebRTCDataChannelState;
372 
373 /**
374  * GstWebRTCBundlePolicy:
375  * @GST_WEBRTC_BUNDLE_POLICY_NONE: none
376  * @GST_WEBRTC_BUNDLE_POLICY_BALANCED: balanced
377  * @GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT: max-compat
378  * @GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE: max-bundle
379  *
380  * See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
381  * for more information.
382  *
383  * Since: 1.16
384  */
385 typedef enum /*<underscore_name=gst_webrtc_bundle_policy>*/
386 {
387   GST_WEBRTC_BUNDLE_POLICY_NONE,
388   GST_WEBRTC_BUNDLE_POLICY_BALANCED,
389   GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT,
390   GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE,
391 } GstWebRTCBundlePolicy;
392 
393 /**
394  * GstWebRTCICETransportPolicy:
395  * @GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL: all
396  * @GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY: relay
397  *
398  * See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
399  * for more information.
400  *
401  * Since: 1.16
402  */
403 typedef enum /*<underscore_name=gst_webrtc_ice_transport_policy>*/
404 {
405   GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL,
406   GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY,
407 } GstWebRTCICETransportPolicy;
408 
409 /**
410  * GstWebRTCKind:
411  * @GST_WEBRTC_KIND_UNKNOWN: Kind has not yet been set
412  * @GST_WEBRTC_KIND_AUDIO: Kind is audio
413  * @GST_WEBRTC_KIND_VIDEO: Kind is audio
414  *
415  * https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack-kind
416  *
417  * Since: 1.20
418  */
419 typedef enum /*<underscore_name=gst_webrtc_kind>*/
420 {
421   GST_WEBRTC_KIND_UNKNOWN,
422   GST_WEBRTC_KIND_AUDIO,
423   GST_WEBRTC_KIND_VIDEO,
424 } GstWebRTCKind;
425 
426 
427 GST_WEBRTC_API
428 GQuark gst_webrtc_error_quark (void);
429 
430 /**
431  * GST_WEBRTC_ERROR:
432  *
433  * Since: 1.20
434  */
435 #define GST_WEBRTC_ERROR gst_webrtc_error_quark ()
436 
437 /**
438  * GstWebRTCError:
439  * @GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE: data-channel-failure
440  * @GST_WEBRTC_ERROR_DTLS_FAILURE: dtls-failure
441  * @GST_WEBRTC_ERROR_FINGERPRINT_FAILURE: fingerprint-failure
442  * @GST_WEBRTC_ERROR_SCTP_FAILURE: sctp-failure
443  * @GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR: sdp-syntax-error
444  * @GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE: hardware-encoder-not-available
445  * @GST_WEBRTC_ERROR_ENCODER_ERROR: encoder-error
446  * @GST_WEBRTC_ERROR_INVALID_STATE: invalid-state (part of WebIDL specification)
447  * @GST_WEBRTC_ERROR_INTERNAL_FAILURE: GStreamer-specific failure, not matching any other value from the specification
448  *
449  * See <https://www.w3.org/TR/webrtc/#dom-rtcerrordetailtype> for more information.
450  *
451  * Since: 1.20
452  */
453 typedef enum /*<underscore_name=gst_webrtc_error>*/
454 {
455   GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE,
456   GST_WEBRTC_ERROR_DTLS_FAILURE,
457   GST_WEBRTC_ERROR_FINGERPRINT_FAILURE,
458   GST_WEBRTC_ERROR_SCTP_FAILURE,
459   GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR,
460   GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE,
461   GST_WEBRTC_ERROR_ENCODER_ERROR,
462   GST_WEBRTC_ERROR_INVALID_STATE,
463   GST_WEBRTC_ERROR_INTERNAL_FAILURE
464 } GstWebRTCError;
465 
466 
467 #endif /* __GST_WEBRTC_FWD_H__ */
468