diff --git a/Cargo.toml b/Cargo.toml
index 49ba025f8..829b8e68a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,6 +12,7 @@ members = [
"gstreamer-sdp",
"gstreamer-video",
"gstreamer-pbutils",
+ "gstreamer-webrtc",
"examples",
"tutorials",
]
diff --git a/Gir_GstSdp.toml b/Gir_GstSdp.toml
index e8a589d82..a021bf8f3 100644
--- a/Gir_GstSdp.toml
+++ b/Gir_GstSdp.toml
@@ -5,7 +5,7 @@ version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-sdp"
work_mode = "normal"
-concurrency = "send+sync"
+concurrency = "send"
generate_safety_asserts = true
doc_target_path = "docs/gstreamer-sdp/docs.md"
@@ -28,7 +28,7 @@ generate = [
"GstSdp.MIKEYSecSRTP",
"GstSdp.MIKEYTSType",
"GstSdp.MIKEYType",
- "GstSdp.SDPResult"
+ "GstSdp.SDPResult",
]
manual = [
@@ -38,3 +38,23 @@ manual = [
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
+
+[[object]]
+name = "GstSdp.SDPMessage"
+status = "generate"
+use_boxed_functions = true
+
+ [[object.function]]
+ name = "new"
+ # special return type...
+ ignore = true
+
+ [[object.function]]
+ name = "uninit"
+ # unsafe
+ ignore = true
+
+
+[[object]]
+name = "GstSdp.SDPMedia"
+status = "generate"
diff --git a/Gir_GstWebRTC.toml b/Gir_GstWebRTC.toml
new file mode 100644
index 000000000..ced9d862d
--- /dev/null
+++ b/Gir_GstWebRTC.toml
@@ -0,0 +1,62 @@
+[options]
+girs_dir = "gir-files"
+library = "GstWebRTC"
+version = "1.0"
+min_cfg_version = "1.14"
+target_path = "gstreamer-webrtc"
+work_mode = "normal"
+concurrency = "send+sync"
+generate_safety_asserts = true
+
+external_libraries = [
+ "GLib",
+ "GObject",
+ "Gst",
+ "GstSdp",
+]
+
+generate = [
+ "GstWebRTC.WebRTCDTLSTransportState",
+ "GstWebRTC.WebRTCICEGatheringState",
+ "GstWebRTC.WebRTCICEConnectionState",
+ "GstWebRTC.WebRTCICERole",
+ "GstWebRTC.WebRTCICEComponent",
+ "GstWebRTC.WebRTCSDPType",
+]
+
+manual = [
+ "GObject.Object",
+ "Gst.Structure",
+ "GstSdp.SDPMessage",
+]
+
+[[object]]
+name = "GstWebRTC.WebRTCDTLSTransport"
+status = "generate"
+trait = false
+
+[[object]]
+name = "GstWebRTC.WebRTCICETransport"
+status = "generate"
+trait = false
+
+[[object]]
+name = "GstWebRTC.WebRTCRTPReceiver"
+status = "generate"
+trait = false
+
+[[object]]
+name = "GstWebRTC.WebRTCRTPSender"
+status = "generate"
+trait = false
+
+[[object]]
+name = "GstWebRTC.WebRTCRTPTransceiver"
+status = "generate"
+trait = false
+
+[[object]]
+name = "GstWebRTC.WebRTCSessionDescription"
+status = "generate"
+trait = false
+
diff --git a/gir-files/GstWebRTC-1.0.gir b/gir-files/GstWebRTC-1.0.gir
new file mode 100644
index 000000000..f5e002e83
--- /dev/null
+++ b/gir-files/GstWebRTC-1.0.gir
@@ -0,0 +1,876 @@
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_DTLS_SETUP_NONE: none
+GST_WEBRTC_DTLS_SETUP_ACTPASS: actpass
+GST_WEBRTC_DTLS_SETUP_ACTIVE: sendonly
+GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW: new
+GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED: closed
+GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED: failed
+GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING: connecting
+GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: connected
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_ICE_COMPONENT_RTP,
+GST_WEBRTC_ICE_COMPONENT_RTCP,
+
+
+
+
+
+
+ GST_WEBRTC_ICE_CONNECTION_STATE_NEW: new
+GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING: checking
+GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED: connected
+GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED: completed
+GST_WEBRTC_ICE_CONNECTION_STATE_FAILED: failed
+GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED: disconnected
+GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED: closed
+See <ulink url="http://w3c.github.io/webrtc-pc/#dom-rtciceconnectionstate">http://w3c.github.io/webrtc-pc/#dom-rtciceconnectionstate</ulink>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_ICE_GATHERING_STATE_NEW: new
+GST_WEBRTC_ICE_GATHERING_STATE_GATHERING: gathering
+GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE: complete
+See <ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcicegatheringstate">http://w3c.github.io/webrtc-pc/#dom-rtcicegatheringstate</ulink>
+
+
+
+
+
+
+
+
+ GST_WEBRTC_ICE_ROLE_CONTROLLED: controlled
+GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_PEER_CONNECTION_STATE_NEW: new
+GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING: connecting
+GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED: connected
+GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED: disconnected
+GST_WEBRTC_PEER_CONNECTION_STATE_FAILED: failed
+GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED: closed
+See <ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate">http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate</ulink>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_SDP_TYPE_OFFER: offer
+GST_WEBRTC_SDP_TYPE_PRANSWER: pranswer
+GST_WEBRTC_SDP_TYPE_ANSWER: answer
+GST_WEBRTC_SDP_TYPE_ROLLBACK: rollback
+See <ulink url="http://w3c.github.io/webrtc-pc/#rtcsdptype">http://w3c.github.io/webrtc-pc/#rtcsdptype</ulink>
+
+
+
+
+
+
+
+
+
+
+ sdp: the #GstSDPMessage of the description
+See <ulink url="https://www.w3.org/TR/webrtc/#rtcsessiondescription-class">https://www.w3.org/TR/webrtc/#rtcsessiondescription-class</ulink>
+
+
+
+
+
+
+
+
+ a new #GstWebRTCSessionDescription from @type
+ and @sdp
+
+
+
+
+ a #GstWebRTCSDPType
+
+
+
+ a #GstSDPMessage
+
+
+
+
+
+
+ a new copy of @src
+
+
+
+
+ a #GstWebRTCSessionDescription
+
+
+
+
+
+ Free @desc and all associated resources
+
+
+
+
+
+ a #GstWebRTCSessionDescription
+
+
+
+
+
+
+ GST_WEBRTC_SIGNALING_STATE_STABLE: stable
+GST_WEBRTC_SIGNALING_STATE_CLOSED: closed
+GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER: have-local-offer
+GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER: have-remote-offer
+GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER: have-local-pranswer
+GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER: have-remote-pranswer
+See <ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate">http://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate</ulink>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GST_WEBRTC_STATS_CODEC: codec
+GST_WEBRTC_STATS_INBOUND_RTP: inbound-rtp
+GST_WEBRTC_STATS_OUTBOUND_RTP: outbound-rtp
+GST_WEBRTC_STATS_REMOTE_INBOUND_RTP: remote-inbound-rtp
+GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP: remote-outbound-rtp
+GST_WEBRTC_STATS_CSRC: csrc
+GST_WEBRTC_STATS_PEER_CONNECTION: peer-connectiion
+GST_WEBRTC_STATS_DATA_CHANNEL: data-channel
+GST_WEBRTC_STATS_STREAM: stream
+GST_WEBRTC_STATS_TRANSPORT: transport
+GST_WEBRTC_STATS_CANDIDATE_PAIR: candidate-pair
+GST_WEBRTC_STATS_LOCAL_CANDIDATE: local-candidate
+GST_WEBRTC_STATS_REMOTE_CANDIDATE: remote-candidate
+GST_WEBRTC_STATS_CERTIFICATE: certificate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the string representation of @type or "unknown" when @type is not
+ recognized.
+
+
+
+
+ a #GstWebRTCSDPType
+
+
+
+
+
+
diff --git a/gstreamer-sdp/src/auto/mod.rs b/gstreamer-sdp/src/auto/mod.rs
index 82b73fac9..e4c15ef28 100644
--- a/gstreamer-sdp/src/auto/mod.rs
+++ b/gstreamer-sdp/src/auto/mod.rs
@@ -2,6 +2,12 @@
// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
// DO NOT EDIT
+mod s_d_p_media;
+pub use self::s_d_p_media::SDPMedia;
+
+mod s_d_p_message;
+pub use self::s_d_p_message::SDPMessage;
+
mod enums;
pub use self::enums::MIKEYCacheType;
pub use self::enums::MIKEYEncAlg;
diff --git a/gstreamer-sdp/src/auto/s_d_p_media.rs b/gstreamer-sdp/src/auto/s_d_p_media.rs
new file mode 100644
index 000000000..55eb2be86
--- /dev/null
+++ b/gstreamer-sdp/src/auto/s_d_p_media.rs
@@ -0,0 +1,285 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir @ d1e0127)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use SDPResult;
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gst;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct SDPMedia(Boxed);
+
+ match fn {
+ copy => |ptr| ffi::gst_sdp_media_copy(mut_override(ptr)),
+ free => |ptr| ffi::gst_sdp_media_free(ptr),
+ }
+}
+
+impl SDPMedia {
+ pub fn add_attribute<'a, P: Into