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