forked from mirrors/gstreamer-rs
Run gstreamer-sdp and gstreamer-webrtc through rustfmt
This commit is contained in:
parent
2de1f6f7a5
commit
873ddf0de6
15 changed files with 568 additions and 294 deletions
|
@ -18,11 +18,11 @@ extern crate gstreamer_sdp_sys as ffi;
|
||||||
extern crate gstreamer_sys as gst_ffi;
|
extern crate gstreamer_sys as gst_ffi;
|
||||||
|
|
||||||
macro_rules! assert_initialized_main_thread {
|
macro_rules! assert_initialized_main_thread {
|
||||||
() => (
|
() => {
|
||||||
if unsafe {::gst_ffi::gst_is_initialized()} != ::glib_ffi::GTRUE {
|
if unsafe { ::gst_ffi::gst_is_initialized() } != ::glib_ffi::GTRUE {
|
||||||
panic!("GStreamer has not been initialized. Call `gst::init` first.");
|
panic!("GStreamer has not been initialized. Call `gst::init` first.");
|
||||||
}
|
}
|
||||||
)
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! skip_assert_initialized {
|
macro_rules! skip_assert_initialized {
|
||||||
|
@ -38,19 +38,19 @@ pub use glib::{Cast, Continue, Error, IsA, StaticType, ToValue, Type, TypedValue
|
||||||
mod auto;
|
mod auto;
|
||||||
pub use auto::*;
|
pub use auto::*;
|
||||||
|
|
||||||
mod s_d_p_message;
|
mod m_i_k_e_y_decrypt_info;
|
||||||
mod s_d_p_media;
|
mod m_i_k_e_y_encrypt_info;
|
||||||
|
mod m_i_k_e_y_map_s_r_t_p;
|
||||||
|
mod m_i_k_e_y_payload_s_p_param;
|
||||||
mod s_d_p_attribute;
|
mod s_d_p_attribute;
|
||||||
mod s_d_p_bandwidth;
|
mod s_d_p_bandwidth;
|
||||||
mod s_d_p_connection;
|
mod s_d_p_connection;
|
||||||
mod s_d_p_key;
|
mod s_d_p_key;
|
||||||
|
mod s_d_p_media;
|
||||||
|
mod s_d_p_message;
|
||||||
mod s_d_p_origin;
|
mod s_d_p_origin;
|
||||||
mod s_d_p_time;
|
mod s_d_p_time;
|
||||||
mod s_d_p_zone;
|
mod s_d_p_zone;
|
||||||
mod m_i_k_e_y_payload_s_p_param;
|
|
||||||
mod m_i_k_e_y_encrypt_info;
|
|
||||||
mod m_i_k_e_y_decrypt_info;
|
|
||||||
mod m_i_k_e_y_map_s_r_t_p;
|
|
||||||
|
|
||||||
// Re-export all the traits in a prelude module, so that applications
|
// Re-export all the traits in a prelude module, so that applications
|
||||||
// can always "use gst::prelude::*" without getting conflicts
|
// can always "use gst::prelude::*" without getting conflicts
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub struct MIKEYMapSRTP(ffi::GstMIKEYMapSRTP);
|
||||||
|
|
||||||
impl MIKEYMapSRTP {
|
impl MIKEYMapSRTP {
|
||||||
pub fn new(policy: u8, ssrc: u32, roc: u32) -> MIKEYMapSRTP {
|
pub fn new(policy: u8, ssrc: u32, roc: u32) -> MIKEYMapSRTP {
|
||||||
MIKEYMapSRTP(ffi::GstMIKEYMapSRTP{
|
MIKEYMapSRTP(ffi::GstMIKEYMapSRTP {
|
||||||
policy: policy,
|
policy: policy,
|
||||||
ssrc: ssrc,
|
ssrc: ssrc,
|
||||||
roc: roc,
|
roc: roc,
|
||||||
|
|
|
@ -15,50 +15,81 @@ use glib_ffi;
|
||||||
use gobject_ffi;
|
use gobject_ffi;
|
||||||
use gst;
|
use gst;
|
||||||
|
|
||||||
use auto::{
|
use auto::{MIKEYMessage, MIKEYTSType};
|
||||||
MIKEYMessage,
|
|
||||||
MIKEYTSType,
|
|
||||||
};
|
|
||||||
use m_i_k_e_y_payload::MIKEYPayload;
|
|
||||||
use m_i_k_e_y_decrypt_info::MIKEYDecryptInfo;
|
use m_i_k_e_y_decrypt_info::MIKEYDecryptInfo;
|
||||||
use m_i_k_e_y_encrypt_info::MIKEYEncryptInfo;
|
use m_i_k_e_y_encrypt_info::MIKEYEncryptInfo;
|
||||||
use m_i_k_e_y_map_s_r_t_p::MIKEYMapSRTP;
|
use m_i_k_e_y_map_s_r_t_p::MIKEYMapSRTP;
|
||||||
|
use m_i_k_e_y_payload::MIKEYPayload;
|
||||||
|
|
||||||
impl MIKEYMessage {
|
impl MIKEYMessage {
|
||||||
pub fn new_from_bytes<'a, P: Into<Option<&'a MIKEYDecryptInfo>>>(bytes: &glib::Bytes, info: P) -> Result<MIKEYMessage, Error> {
|
pub fn new_from_bytes<'a, P: Into<Option<&'a MIKEYDecryptInfo>>>(
|
||||||
|
bytes: &glib::Bytes,
|
||||||
|
info: P,
|
||||||
|
) -> Result<MIKEYMessage, Error> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut error = ptr::null_mut();
|
let mut error = ptr::null_mut();
|
||||||
let ret = ffi::gst_mikey_message_new_from_bytes(bytes.to_glib_none(), info.to_glib_full(), &mut error);
|
let ret = ffi::gst_mikey_message_new_from_bytes(
|
||||||
|
bytes.to_glib_none(),
|
||||||
|
info.to_glib_full(),
|
||||||
|
&mut error,
|
||||||
|
);
|
||||||
mem::forget(bytes);
|
mem::forget(bytes);
|
||||||
mem::forget(info);
|
mem::forget(info);
|
||||||
if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
|
if error.is_null() {
|
||||||
|
Ok(from_glib_full(ret))
|
||||||
|
} else {
|
||||||
|
Err(from_glib_full(error))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_from_data<'a, P: Into<Option<&'a MIKEYDecryptInfo>>>(data: &[u8], info: P) -> Result<MIKEYMessage, Error> {
|
pub fn new_from_data<'a, P: Into<Option<&'a MIKEYDecryptInfo>>>(
|
||||||
|
data: &[u8],
|
||||||
|
info: P,
|
||||||
|
) -> Result<MIKEYMessage, Error> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut error = ptr::null_mut();
|
let mut error = ptr::null_mut();
|
||||||
let ret = ffi::gst_mikey_message_new_from_data(data.to_glib_none().0, data.len(), info.to_glib_full(), &mut err);
|
let ret = ffi::gst_mikey_message_new_from_data(
|
||||||
|
data.to_glib_none().0,
|
||||||
|
data.len(),
|
||||||
|
info.to_glib_full(),
|
||||||
|
&mut err,
|
||||||
|
);
|
||||||
mem::forget(info);
|
mem::forget(info);
|
||||||
if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
|
if error.is_null() {
|
||||||
|
Ok(from_glib_full(ret))
|
||||||
|
} else {
|
||||||
|
Err(from_glib_full(error))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_t(&mut self, type_: MIKEYTSType, ts_value: &[u8]) -> bool {
|
pub fn add_t(&mut self, type_: MIKEYTSType, ts_value: &[u8]) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib(ffi::gst_mikey_message_add_t(self.to_glib_none_mut().0, type_.to_glib(), ts_value.to_glib_none().0))
|
from_glib(ffi::gst_mikey_message_add_t(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
type_.to_glib(),
|
||||||
|
ts_value.to_glib_none().0,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_cs_srtp(&self, idx: u32) -> Option<&MIKEYMapSRTP> {
|
pub fn get_cs_srtp(&self, idx: u32) -> Option<&MIKEYMapSRTP> {
|
||||||
unsafe {
|
unsafe {
|
||||||
&*(from_glib_none(ffi::gst_mikey_message_get_cs_srtp(self.to_glib_none().0, idx)) as *mut MIKEYMapSRTP)
|
&*(from_glib_none(ffi::gst_mikey_message_get_cs_srtp(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
idx,
|
||||||
|
)) as *mut MIKEYMapSRTP)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn insert_cs_srtp(&mut self, idx: i32, map: MIKEYMapSRTP) -> bool {
|
pub fn insert_cs_srtp(&mut self, idx: i32, map: MIKEYMapSRTP) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_message_insert_cs_srtp(self.to_glib_none_mut().0, idx, map.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_message_insert_cs_srtp(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
map.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(map);
|
mem::forget(map);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -66,13 +97,19 @@ impl MIKEYMessage {
|
||||||
|
|
||||||
pub fn get_payload(&self, idx: u32) -> Option<&MIKEYPayload> {
|
pub fn get_payload(&self, idx: u32) -> Option<&MIKEYPayload> {
|
||||||
unsafe {
|
unsafe {
|
||||||
&*(from_glib_none(ffi::gst_mikey_message_get_payload(self.to_glib_none().0, idx)) as *mut MIKEYPayload)
|
&*(from_glib_none(ffi::gst_mikey_message_get_payload(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
idx,
|
||||||
|
)) as *mut MIKEYPayload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_payload(&mut self, payload: MIKEYPayload) -> bool {
|
pub fn add_payload(&mut self, payload: MIKEYPayload) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_message_add_payload(self.to_glib_none_mut().0, payload.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_message_add_payload(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
payload.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(payload);
|
mem::forget(payload);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -80,7 +117,11 @@ impl MIKEYMessage {
|
||||||
|
|
||||||
pub fn insert_payload(&mut self, idx: u32, payload: MIKEYPayload) -> bool {
|
pub fn insert_payload(&mut self, idx: u32, payload: MIKEYPayload) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_message_insert_payload(self.to_glib_none_mut().0, idx, payload.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_message_insert_payload(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
payload.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(payload);
|
mem::forget(payload);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -88,7 +129,11 @@ impl MIKEYMessage {
|
||||||
|
|
||||||
pub fn replace_cs_srtp(&mut self, idx: i32, map: MIKEYMapSRTP) -> bool {
|
pub fn replace_cs_srtp(&mut self, idx: i32, map: MIKEYMapSRTP) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_message_replace_cs_srtp(self.to_glib_none_mut().0, idx, map.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_message_replace_cs_srtp(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
map.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(map);
|
mem::forget(map);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -96,7 +141,11 @@ impl MIKEYMessage {
|
||||||
|
|
||||||
pub fn replace_payload(&mut self, idx: u32, payload: MIKEYPayload) -> bool {
|
pub fn replace_payload(&mut self, idx: u32, payload: MIKEYPayload) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_message_replace_payload(self.to_glib_none_mut().0, idx, payload.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_message_replace_payload(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
payload.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(payload);
|
mem::forget(payload);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -104,7 +153,9 @@ impl MIKEYMessage {
|
||||||
|
|
||||||
pub fn base64_encode(&self) -> Option<String> {
|
pub fn base64_encode(&self) -> Option<String> {
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib_full(ffi::gst_mikey_message_base64_encode(self.to_glib_none_mut().0))
|
from_glib_full(ffi::gst_mikey_message_base64_encode(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,12 @@ use auto::MIKEYPayload;
|
||||||
use m_i_k_e_y_map_s_r_t_p::MIKEYPayloadSPParam;
|
use m_i_k_e_y_map_s_r_t_p::MIKEYPayloadSPParam;
|
||||||
|
|
||||||
impl MIKEYPayload {
|
impl MIKEYPayload {
|
||||||
|
|
||||||
pub fn kemac_add_sub(&mut self, newpay: MIKEYPayload) -> bool {
|
pub fn kemac_add_sub(&mut self, newpay: MIKEYPayload) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ret = from_glib(ffi::gst_mikey_payload_kemac_add_sub(self.to_glib_none_mut().0, newpay.to_glib_full()));
|
let ret = from_glib(ffi::gst_mikey_payload_kemac_add_sub(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
newpay.to_glib_full(),
|
||||||
|
));
|
||||||
mem::forget(newpay);
|
mem::forget(newpay);
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
@ -29,19 +31,29 @@ impl MIKEYPayload {
|
||||||
|
|
||||||
pub fn kemac_get_sub(&self, idx: u32) -> Option<&MIKEYPayload> {
|
pub fn kemac_get_sub(&self, idx: u32) -> Option<&MIKEYPayload> {
|
||||||
unsafe {
|
unsafe {
|
||||||
&*(from_glib_none(ffi::gst_mikey_payload_kemac_get_sub(self.to_glib_none().0, idx)) as *mut MIKEYPayload)
|
&*(from_glib_none(ffi::gst_mikey_payload_kemac_get_sub(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
idx,
|
||||||
|
)) as *mut MIKEYPayload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sp_get_param(&self, idx: u32) -> Option<&MIKEYPayloadSPParam> {
|
pub fn sp_get_param(&self, idx: u32) -> Option<&MIKEYPayloadSPParam> {
|
||||||
unsafe {
|
unsafe {
|
||||||
&*(from_glib_none(ffi::gst_mikey_payload_sp_get_param(self.to_glib_none().0, idx)) as *mut MIKEYPayloadSPParam)
|
&*(from_glib_none(ffi::gst_mikey_payload_sp_get_param(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
idx,
|
||||||
|
)) as *mut MIKEYPayloadSPParam)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn t_set(&mut self, type_: MIKEYTSType, ts_value: &[u8]) -> bool {
|
pub fn t_set(&mut self, type_: MIKEYTSType, ts_value: &[u8]) -> bool {
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib(ffi::gst_mikey_payload_t_set(self.to_glib_none_mut().0, type_.to_glib(), ts_value.to_glib_none().0))
|
from_glib(ffi::gst_mikey_payload_t_set(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
type_.to_glib(),
|
||||||
|
ts_value.to_glib_none().0,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +61,13 @@ impl MIKEYPayload {
|
||||||
let vf_len = vf_data.len() as u8;
|
let vf_len = vf_data.len() as u8;
|
||||||
let vt_len = vt_data.len() as u8;
|
let vt_len = vt_data.len() as u8;
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib(ffi::gst_mikey_payload_key_data_set_interval(self.to_glib_none_mut().0, vf_len, vf_data.to_glib_none().0, vt_len, vt_data.to_glib_none().0))
|
from_glib(ffi::gst_mikey_payload_key_data_set_interval(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
vf_len,
|
||||||
|
vf_data.to_glib_none().0,
|
||||||
|
vt_len,
|
||||||
|
vt_data.to_glib_none().0,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,6 @@ impl MIKEYPayloadSPParam {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn val(&self) -> &[u8] {
|
pub fn val(&self) -> &[u8] {
|
||||||
unsafe {
|
unsafe { slice::from_raw_parts(self.0.val as *const u8, self.0.len as usize) }
|
||||||
slice::from_raw_parts(self.0.val as *const u8, self.0.len as usize)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use std::mem;
|
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
|
use std::mem;
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
|
@ -22,7 +22,11 @@ impl SDPAttribute {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut attr = mem::zeroed();
|
let mut attr = mem::zeroed();
|
||||||
let result = from_glib(ffi::gst_sdp_attribute_set(&mut attr, key.to_glib_none().0, value.to_glib_none().0));
|
let result = from_glib(ffi::gst_sdp_attribute_set(
|
||||||
|
&mut attr,
|
||||||
|
key.to_glib_none().0,
|
||||||
|
value.to_glib_none().0,
|
||||||
|
));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(SDPAttribute(attr)),
|
SDPResult::Ok => Ok(SDPAttribute(attr)),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -31,15 +35,11 @@ impl SDPAttribute {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn key(&self) -> &str {
|
pub fn key(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.key).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.key).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn value(&self) -> &str {
|
pub fn value(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.value).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.value).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use std::mem;
|
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
|
use std::mem;
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
|
@ -22,7 +22,11 @@ impl SDPBandwidth {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut bw = mem::zeroed();
|
let mut bw = mem::zeroed();
|
||||||
let result = from_glib(ffi::gst_sdp_bandwidth_set(&mut bw, bwtype.to_glib_none().0, bandwidth));
|
let result = from_glib(ffi::gst_sdp_bandwidth_set(
|
||||||
|
&mut bw,
|
||||||
|
bwtype.to_glib_none().0,
|
||||||
|
bandwidth,
|
||||||
|
));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(SDPBandwidth(bw)),
|
SDPResult::Ok => Ok(SDPBandwidth(bw)),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -31,9 +35,7 @@ impl SDPBandwidth {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bwtype(&self) -> &str {
|
pub fn bwtype(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.bwtype).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.bwtype).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn value(&self) -> u32 {
|
pub fn value(&self) -> u32 {
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use std::mem;
|
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
|
use std::mem;
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
|
@ -18,7 +18,13 @@ use auto::SDPResult;
|
||||||
pub struct SDPConnection(pub(crate) ffi::GstSDPConnection);
|
pub struct SDPConnection(pub(crate) ffi::GstSDPConnection);
|
||||||
|
|
||||||
impl SDPConnection {
|
impl SDPConnection {
|
||||||
pub fn new(nettype: &str, addrtype: &str, address: &str, ttl: u32, addr_number: u32) -> Result<Self, ()> {
|
pub fn new(
|
||||||
|
nettype: &str,
|
||||||
|
addrtype: &str,
|
||||||
|
address: &str,
|
||||||
|
ttl: u32,
|
||||||
|
addr_number: u32,
|
||||||
|
) -> Result<Self, ()> {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut conn = mem::zeroed();
|
let mut conn = mem::zeroed();
|
||||||
|
@ -38,21 +44,15 @@ impl SDPConnection {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn nettype(&self) -> &str {
|
pub fn nettype(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.nettype).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.nettype).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn addrtype(&self) -> &str {
|
pub fn addrtype(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.addrtype).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.addrtype).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn address(&self) -> &str {
|
pub fn address(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.address).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.address).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ttl(&self) -> u32 {
|
pub fn ttl(&self) -> u32 {
|
||||||
|
|
|
@ -14,14 +14,10 @@ pub struct SDPKey(ffi::GstSDPKey);
|
||||||
|
|
||||||
impl SDPKey {
|
impl SDPKey {
|
||||||
pub fn type_(&self) -> &str {
|
pub fn type_(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.type_).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.type_).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn data(&self) -> &str {
|
pub fn data(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.data).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.data).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,19 +6,16 @@
|
||||||
// // option. This file may not be copied, modified, or distributed
|
// // option. This file may not be copied, modified, or distributed
|
||||||
// // except according to those terms.
|
// // except according to those terms.
|
||||||
|
|
||||||
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr;
|
use std::ptr;
|
||||||
use std::ffi::CStr;
|
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
use glib_ffi;
|
use glib_ffi;
|
||||||
use gst;
|
use gst;
|
||||||
|
|
||||||
use auto::{
|
use auto::{MIKEYMessage, SDPResult};
|
||||||
SDPResult,
|
|
||||||
MIKEYMessage,
|
|
||||||
};
|
|
||||||
use s_d_p_attribute::SDPAttribute;
|
use s_d_p_attribute::SDPAttribute;
|
||||||
use s_d_p_bandwidth::SDPBandwidth;
|
use s_d_p_bandwidth::SDPBandwidth;
|
||||||
use s_d_p_connection::SDPConnection;
|
use s_d_p_connection::SDPConnection;
|
||||||
|
@ -52,11 +49,19 @@ impl SDPMedia {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_attribute<'a, P: Into<Option<&'a str>>>(&mut self, key: &str, value: P) -> Result<(), ()> {
|
pub fn add_attribute<'a, P: Into<Option<&'a str>>>(
|
||||||
|
&mut self,
|
||||||
|
key: &str,
|
||||||
|
value: P,
|
||||||
|
) -> Result<(), ()> {
|
||||||
let value = value.into();
|
let value = value.into();
|
||||||
let value = value.to_glib_none();
|
let value = value.to_glib_none();
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_add_attribute(self.to_glib_none_mut().0, key.to_glib_none().0, value.0))
|
from_glib(ffi::gst_sdp_media_add_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
key.to_glib_none().0,
|
||||||
|
value.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -66,7 +71,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn add_bandwidth(&mut self, bwtype: &str, bandwidth: u32) -> Result<(), ()> {
|
pub fn add_bandwidth(&mut self, bwtype: &str, bandwidth: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_add_bandwidth(self.to_glib_none_mut().0, bwtype.to_glib_none().0, bandwidth))
|
from_glib(ffi::gst_sdp_media_add_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
bwtype.to_glib_none().0,
|
||||||
|
bandwidth,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -74,9 +83,23 @@ impl SDPMedia {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_connection(&mut self, nettype: &str, addrtype: &str, address: &str, ttl: u32, addr_number: u32) -> Result<(), ()> {
|
pub fn add_connection(
|
||||||
|
&mut self,
|
||||||
|
nettype: &str,
|
||||||
|
addrtype: &str,
|
||||||
|
address: &str,
|
||||||
|
ttl: u32,
|
||||||
|
addr_number: u32,
|
||||||
|
) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_add_connection(self.to_glib_none_mut().0, nettype.to_glib_none().0, addrtype.to_glib_none().0, address.to_glib_none().0, ttl, addr_number))
|
from_glib(ffi::gst_sdp_media_add_connection(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
nettype.to_glib_none().0,
|
||||||
|
addrtype.to_glib_none().0,
|
||||||
|
address.to_glib_none().0,
|
||||||
|
ttl,
|
||||||
|
addr_number,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -86,7 +109,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn add_format(&mut self, format: &str) -> Result<(), ()> {
|
pub fn add_format(&mut self, format: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_add_format(self.to_glib_none_mut().0, format.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_add_format(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
format.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -95,20 +121,19 @@ impl SDPMedia {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn as_text(&self) -> Option<String> {
|
pub fn as_text(&self) -> Option<String> {
|
||||||
unsafe {
|
unsafe { from_glib_full(ffi::gst_sdp_media_as_text(self.to_glib_none().0)) }
|
||||||
from_glib_full(ffi::gst_sdp_media_as_text(self.to_glib_none().0))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn attributes_len(&self) -> u32 {
|
pub fn attributes_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_attributes_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_attributes_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn attributes_to_caps(&self, caps: &gst::Caps) -> Result<(), ()> {
|
pub fn attributes_to_caps(&self, caps: &gst::Caps) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_attributes_to_caps(self.to_glib_none().0, caps.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_attributes_to_caps(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
caps.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -117,21 +142,15 @@ impl SDPMedia {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bandwidths_len(&self) -> u32 {
|
pub fn bandwidths_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_bandwidths_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_bandwidths_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn connections_len(&self) -> u32 {
|
pub fn connections_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_connections_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_connections_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn formats_len(&self) -> u32 {
|
pub fn formats_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_formats_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_formats_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_attribute(&self, idx: u32) -> Option<&SDPAttribute> {
|
pub fn get_attribute(&self, idx: u32) -> Option<&SDPAttribute> {
|
||||||
|
@ -147,7 +166,8 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn get_attribute_val(&self, key: &str) -> Option<&str> {
|
pub fn get_attribute_val(&self, key: &str) -> Option<&str> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ptr = ffi::gst_sdp_media_get_attribute_val(self.to_glib_none().0, key.to_glib_none().0);
|
let ptr =
|
||||||
|
ffi::gst_sdp_media_get_attribute_val(self.to_glib_none().0, key.to_glib_none().0);
|
||||||
if ptr.is_null() {
|
if ptr.is_null() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
@ -162,7 +182,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn get_attribute_val_n(&self, key: &str, nth: u32) -> Option<&str> {
|
pub fn get_attribute_val_n(&self, key: &str, nth: u32) -> Option<&str> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ptr = ffi::gst_sdp_media_get_attribute_val_n(self.to_glib_none().0, key.to_glib_none().0, nth);
|
let ptr = ffi::gst_sdp_media_get_attribute_val_n(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
key.to_glib_none().0,
|
||||||
|
nth,
|
||||||
|
);
|
||||||
if ptr.is_null() {
|
if ptr.is_null() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
@ -188,7 +212,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn get_caps_from_media(&self, pt: i32) -> Option<gst::Caps> {
|
pub fn get_caps_from_media(&self, pt: i32) -> Option<gst::Caps> {
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib_full(ffi::gst_sdp_media_get_caps_from_media(self.to_glib_none().0, pt))
|
from_glib_full(ffi::gst_sdp_media_get_caps_from_media(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
pt,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,15 +287,11 @@ impl SDPMedia {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_num_ports(&self) -> u32 {
|
pub fn get_num_ports(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_get_num_ports(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_get_num_ports(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_port(&self) -> u32 {
|
pub fn get_port(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_media_get_port(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_media_get_port(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_proto(&self) -> Option<&str> {
|
pub fn get_proto(&self) -> Option<&str> {
|
||||||
|
@ -288,7 +311,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn insert_attribute(&mut self, idx: i32, mut attr: SDPAttribute) -> Result<(), ()> {
|
pub fn insert_attribute(&mut self, idx: i32, mut attr: SDPAttribute) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_insert_attribute(self.to_glib_none_mut().0, idx, &mut attr.0))
|
from_glib(ffi::gst_sdp_media_insert_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut attr.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(attr);
|
mem::forget(attr);
|
||||||
match result {
|
match result {
|
||||||
|
@ -299,7 +326,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn insert_bandwidth(&mut self, idx: i32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
pub fn insert_bandwidth(&mut self, idx: i32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_insert_bandwidth(self.to_glib_none_mut().0, idx, &mut bw.0))
|
from_glib(ffi::gst_sdp_media_insert_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut bw.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(bw);
|
mem::forget(bw);
|
||||||
match result {
|
match result {
|
||||||
|
@ -310,7 +341,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn insert_connection(&mut self, idx: i32, mut conn: SDPConnection) -> Result<(), ()> {
|
pub fn insert_connection(&mut self, idx: i32, mut conn: SDPConnection) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_insert_connection(self.to_glib_none_mut().0, idx, &mut conn.0))
|
from_glib(ffi::gst_sdp_media_insert_connection(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut conn.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(conn);
|
mem::forget(conn);
|
||||||
match result {
|
match result {
|
||||||
|
@ -321,7 +356,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn insert_format(&mut self, idx: i32, format: &str) -> Result<(), ()> {
|
pub fn insert_format(&mut self, idx: i32, format: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_insert_format(self.to_glib_none_mut().0, idx, format.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_insert_format(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
format.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -333,7 +372,10 @@ impl SDPMedia {
|
||||||
pub fn parse_keymgmt(&self) -> Result<MIKEYMessage, ()> {
|
pub fn parse_keymgmt(&self) -> Result<MIKEYMessage, ()> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut mikey = ptr::null_mut();
|
let mut mikey = ptr::null_mut();
|
||||||
let result = from_glib(ffi::gst_sdp_media_parse_keymgmt(self.to_glib_none().0, &mut mikey));
|
let result = from_glib(ffi::gst_sdp_media_parse_keymgmt(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
&mut mikey,
|
||||||
|
));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(from_glib_full(mikey)),
|
SDPResult::Ok => Ok(from_glib_full(mikey)),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -343,7 +385,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn remove_attribute(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_attribute(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_remove_attribute(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_media_remove_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -353,7 +398,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn remove_bandwidth(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_bandwidth(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_remove_bandwidth(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_media_remove_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -363,7 +411,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn remove_connection(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_connection(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_remove_connection(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_media_remove_connection(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -373,7 +424,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn remove_format(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_format(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_remove_format(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_media_remove_format(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -383,7 +437,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn replace_attribute(&mut self, idx: u32, mut attr: SDPAttribute) -> Result<(), ()> {
|
pub fn replace_attribute(&mut self, idx: u32, mut attr: SDPAttribute) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_replace_attribute(self.to_glib_none_mut().0, idx, &mut attr.0))
|
from_glib(ffi::gst_sdp_media_replace_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut attr.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(attr);
|
mem::forget(attr);
|
||||||
match result {
|
match result {
|
||||||
|
@ -394,7 +452,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn replace_bandwidth(&mut self, idx: u32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
pub fn replace_bandwidth(&mut self, idx: u32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_replace_bandwidth(self.to_glib_none_mut().0, idx, &mut bw.0))
|
from_glib(ffi::gst_sdp_media_replace_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut bw.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(bw);
|
mem::forget(bw);
|
||||||
match result {
|
match result {
|
||||||
|
@ -405,7 +467,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn replace_connection(&mut self, idx: u32, mut conn: SDPConnection) -> Result<(), ()> {
|
pub fn replace_connection(&mut self, idx: u32, mut conn: SDPConnection) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_replace_connection(self.to_glib_none_mut().0, idx, &mut conn.0))
|
from_glib(ffi::gst_sdp_media_replace_connection(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut conn.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(conn);
|
mem::forget(conn);
|
||||||
match result {
|
match result {
|
||||||
|
@ -416,7 +482,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn replace_format(&mut self, idx: u32, format: &str) -> Result<(), ()> {
|
pub fn replace_format(&mut self, idx: u32, format: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_replace_format(self.to_glib_none_mut().0, idx, format.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_replace_format(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
format.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -426,7 +496,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn set_information(&mut self, information: &str) -> Result<(), ()> {
|
pub fn set_information(&mut self, information: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_information(self.to_glib_none_mut().0, information.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_set_information(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
information.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -436,7 +509,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn set_key(&mut self, type_: &str, data: &str) -> Result<(), ()> {
|
pub fn set_key(&mut self, type_: &str, data: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_key(self.to_glib_none_mut().0, type_.to_glib_none().0, data.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_set_key(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
type_.to_glib_none().0,
|
||||||
|
data.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -446,7 +523,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn set_media(&mut self, med: &str) -> Result<(), ()> {
|
pub fn set_media(&mut self, med: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_media(self.to_glib_none_mut().0, med.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_set_media(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
med.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -456,7 +536,11 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn set_port_info(&mut self, port: u32, num_ports: u32) -> Result<(), ()> {
|
pub fn set_port_info(&mut self, port: u32, num_ports: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_port_info(self.to_glib_none_mut().0, port, num_ports))
|
from_glib(ffi::gst_sdp_media_set_port_info(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
port,
|
||||||
|
num_ports,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -466,7 +550,10 @@ impl SDPMedia {
|
||||||
|
|
||||||
pub fn set_proto(&mut self, proto: &str) -> Result<(), ()> {
|
pub fn set_proto(&mut self, proto: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_proto(self.to_glib_none_mut().0, proto.to_glib_none().0))
|
from_glib(ffi::gst_sdp_media_set_proto(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
proto.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -477,7 +564,10 @@ impl SDPMedia {
|
||||||
pub fn set_media_from_caps(caps: &gst::Caps, media: &mut SDPMedia) -> Result<(), ()> {
|
pub fn set_media_from_caps(caps: &gst::Caps, media: &mut SDPMedia) -> Result<(), ()> {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_media_set_media_from_caps(caps.to_glib_none().0, media.to_glib_none_mut().0))
|
from_glib(ffi::gst_sdp_media_set_media_from_caps(
|
||||||
|
caps.to_glib_none().0,
|
||||||
|
media.to_glib_none_mut().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(media);
|
mem::forget(media);
|
||||||
match result {
|
match result {
|
||||||
|
|
|
@ -6,26 +6,23 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr;
|
use std::ptr;
|
||||||
use std::ffi::CStr;
|
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use gst;
|
use glib::translate::*;
|
||||||
use glib_ffi;
|
use glib_ffi;
|
||||||
use gobject_ffi;
|
use gobject_ffi;
|
||||||
use glib::translate::*;
|
use gst;
|
||||||
use gst::MiniObject;
|
use gst::MiniObject;
|
||||||
|
|
||||||
use auto::{
|
use auto::{MIKEYMessage, SDPResult};
|
||||||
SDPResult,
|
|
||||||
MIKEYMessage,
|
|
||||||
};
|
|
||||||
use s_d_p_media::SDPMedia;
|
|
||||||
use s_d_p_attribute::SDPAttribute;
|
use s_d_p_attribute::SDPAttribute;
|
||||||
use s_d_p_bandwidth::SDPBandwidth;
|
use s_d_p_bandwidth::SDPBandwidth;
|
||||||
use s_d_p_connection::SDPConnection;
|
use s_d_p_connection::SDPConnection;
|
||||||
use s_d_p_key::SDPKey;
|
use s_d_p_key::SDPKey;
|
||||||
|
use s_d_p_media::SDPMedia;
|
||||||
use s_d_p_origin::SDPOrigin;
|
use s_d_p_origin::SDPOrigin;
|
||||||
use s_d_p_time::SDPTime;
|
use s_d_p_time::SDPTime;
|
||||||
use s_d_p_zone::SDPZone;
|
use s_d_p_zone::SDPZone;
|
||||||
|
@ -50,9 +47,17 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_attribute<'a, P: Into<Option<&'a str>>>(&mut self, key: &str, value: P) -> Result<(), ()> {
|
pub fn add_attribute<'a, P: Into<Option<&'a str>>>(
|
||||||
|
&mut self,
|
||||||
|
key: &str,
|
||||||
|
value: P,
|
||||||
|
) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_attribute(self.to_glib_none_mut().0, key.to_glib_none().0, value.into().to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_add_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
key.to_glib_none().0,
|
||||||
|
value.into().to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -62,7 +67,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn add_email(&mut self, email: &str) -> Result<(), ()> {
|
pub fn add_email(&mut self, email: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_email(self.to_glib_none_mut().0, email.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_add_email(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
email.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -72,7 +80,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn add_media(&mut self, media: SDPMedia) -> Result<(), ()> {
|
pub fn add_media(&mut self, media: SDPMedia) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_media(self.to_glib_none_mut().0, media.to_glib_full() as *mut ffi::GstSDPMedia))
|
from_glib(ffi::gst_sdp_message_add_media(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
media.to_glib_full() as *mut ffi::GstSDPMedia,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(media);
|
mem::forget(media);
|
||||||
match result {
|
match result {
|
||||||
|
@ -83,7 +94,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn add_phone(&mut self, phone: &str) -> Result<(), ()> {
|
pub fn add_phone(&mut self, phone: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_phone(self.to_glib_none_mut().0, phone.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_add_phone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
phone.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -93,7 +107,12 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn add_time(&mut self, start: &str, stop: &str, repeat: &[&str]) -> Result<(), ()> {
|
pub fn add_time(&mut self, start: &str, stop: &str, repeat: &[&str]) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_time(self.to_glib_none_mut().0, start.to_glib_none().0, stop.to_glib_none().0, repeat.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_add_time(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
start.to_glib_none().0,
|
||||||
|
stop.to_glib_none().0,
|
||||||
|
repeat.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -103,7 +122,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn add_zone(&mut self, adj_time: &str, typed_time: &str) -> Result<(), ()> {
|
pub fn add_zone(&mut self, adj_time: &str, typed_time: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_add_zone(self.to_glib_none_mut().0, adj_time.to_glib_none().0, typed_time.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_add_zone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
adj_time.to_glib_none().0,
|
||||||
|
typed_time.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -112,20 +135,19 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn as_text(&self) -> Option<String> {
|
pub fn as_text(&self) -> Option<String> {
|
||||||
unsafe {
|
unsafe { from_glib_full(ffi::gst_sdp_message_as_text(self.to_glib_none().0)) }
|
||||||
from_glib_full(ffi::gst_sdp_message_as_text(self.to_glib_none().0))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn attributes_len(&self) -> u32 {
|
pub fn attributes_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_attributes_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_attributes_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn attributes_to_caps(&self, caps: &mut gst::CapsRef) -> Result<(), ()> {
|
pub fn attributes_to_caps(&self, caps: &mut gst::CapsRef) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_attributes_to_caps(self.to_glib_none().0, caps.as_mut_ptr()))
|
from_glib(ffi::gst_sdp_message_attributes_to_caps(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
caps.as_mut_ptr(),
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -134,15 +156,11 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bandwidths_len(&self) -> u32 {
|
pub fn bandwidths_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_bandwidths_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_bandwidths_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn dump(&self) -> Result<(), ()> {
|
pub fn dump(&self) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe { from_glib(ffi::gst_sdp_message_dump(self.to_glib_none().0)) };
|
||||||
from_glib(ffi::gst_sdp_message_dump(self.to_glib_none().0))
|
|
||||||
};
|
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -150,9 +168,7 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn emails_len(&self) -> u32 {
|
pub fn emails_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_emails_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_emails_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_attribute(&self, idx: u32) -> Option<&SDPAttribute> {
|
pub fn get_attribute(&self, idx: u32) -> Option<&SDPAttribute> {
|
||||||
|
@ -168,7 +184,8 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn get_attribute_val(&self, key: &str) -> Option<&str> {
|
pub fn get_attribute_val(&self, key: &str) -> Option<&str> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ptr = ffi::gst_sdp_message_get_attribute_val(self.to_glib_none().0, key.to_glib_none().0);
|
let ptr =
|
||||||
|
ffi::gst_sdp_message_get_attribute_val(self.to_glib_none().0, key.to_glib_none().0);
|
||||||
if ptr.is_null() {
|
if ptr.is_null() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
@ -183,7 +200,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn get_attribute_val_n(&self, key: &str, nth: u32) -> Option<&str> {
|
pub fn get_attribute_val_n(&self, key: &str, nth: u32) -> Option<&str> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ptr = ffi::gst_sdp_message_get_attribute_val_n(self.to_glib_none().0, key.to_glib_none().0, nth);
|
let ptr = ffi::gst_sdp_message_get_attribute_val_n(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
key.to_glib_none().0,
|
||||||
|
nth,
|
||||||
|
);
|
||||||
if ptr.is_null() {
|
if ptr.is_null() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
@ -365,7 +386,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_attribute(&mut self, idx: i32, mut attr: SDPAttribute) -> Result<(), ()> {
|
pub fn insert_attribute(&mut self, idx: i32, mut attr: SDPAttribute) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_attribute(self.to_glib_none_mut().0, idx, &mut attr.0))
|
from_glib(ffi::gst_sdp_message_insert_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut attr.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(attr);
|
mem::forget(attr);
|
||||||
match result {
|
match result {
|
||||||
|
@ -376,7 +401,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_bandwidth(&mut self, idx: i32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
pub fn insert_bandwidth(&mut self, idx: i32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_bandwidth(self.to_glib_none_mut().0, idx, &mut bw.0))
|
from_glib(ffi::gst_sdp_message_insert_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut bw.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(bw);
|
mem::forget(bw);
|
||||||
match result {
|
match result {
|
||||||
|
@ -387,7 +416,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_email(&mut self, idx: i32, email: &str) -> Result<(), ()> {
|
pub fn insert_email(&mut self, idx: i32, email: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_email(self.to_glib_none_mut().0, idx, email.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_insert_email(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
email.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -397,7 +430,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_phone(&mut self, idx: i32, phone: &str) -> Result<(), ()> {
|
pub fn insert_phone(&mut self, idx: i32, phone: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_phone(self.to_glib_none_mut().0, idx, phone.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_insert_phone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
phone.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -407,7 +444,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_time(&mut self, idx: i32, mut time: SDPTime) -> Result<(), ()> {
|
pub fn insert_time(&mut self, idx: i32, mut time: SDPTime) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_time(self.to_glib_none_mut().0, idx, &mut time.0))
|
from_glib(ffi::gst_sdp_message_insert_time(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut time.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(time);
|
mem::forget(time);
|
||||||
match result {
|
match result {
|
||||||
|
@ -418,7 +459,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn insert_zone(&mut self, idx: i32, mut zone: SDPZone) -> Result<(), ()> {
|
pub fn insert_zone(&mut self, idx: i32, mut zone: SDPZone) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_insert_zone(self.to_glib_none_mut().0, idx, &mut zone.0))
|
from_glib(ffi::gst_sdp_message_insert_zone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut zone.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(zone);
|
mem::forget(zone);
|
||||||
match result {
|
match result {
|
||||||
|
@ -428,15 +473,16 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn medias_len(&self) -> u32 {
|
pub fn medias_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_medias_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_medias_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(feature = "v1_8_1", feature = "dox"))]
|
#[cfg(any(feature = "v1_8_1", feature = "dox"))]
|
||||||
pub fn parse_keymgmt(&self, mikey: MIKEYMessage) -> Result<(), ()> {
|
pub fn parse_keymgmt(&self, mikey: MIKEYMessage) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_parse_keymgmt(self.to_glib_none().0, &mut mikey))
|
from_glib(ffi::gst_sdp_message_parse_keymgmt(
|
||||||
|
self.to_glib_none().0,
|
||||||
|
&mut mikey,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(mikey);
|
mem::forget(mikey);
|
||||||
match result {
|
match result {
|
||||||
|
@ -446,14 +492,15 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn phones_len(&self) -> u32 {
|
pub fn phones_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_phones_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_phones_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_attribute(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_attribute(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_attribute(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -463,7 +510,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn remove_bandwidth(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_bandwidth(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_bandwidth(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -473,7 +523,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn remove_email(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_email(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_email(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_email(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -483,7 +536,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn remove_phone(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_phone(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_phone(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_phone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -493,7 +549,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn remove_time(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_time(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_time(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_time(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -503,7 +562,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn remove_zone(&mut self, idx: u32) -> Result<(), ()> {
|
pub fn remove_zone(&mut self, idx: u32) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_remove_zone(self.to_glib_none_mut().0, idx))
|
from_glib(ffi::gst_sdp_message_remove_zone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -513,7 +575,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_attribute(&mut self, idx: u32, mut attr: SDPAttribute) -> Result<(), ()> {
|
pub fn replace_attribute(&mut self, idx: u32, mut attr: SDPAttribute) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_attribute(self.to_glib_none_mut().0, idx, &mut attr.0))
|
from_glib(ffi::gst_sdp_message_replace_attribute(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut attr.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(attr);
|
mem::forget(attr);
|
||||||
match result {
|
match result {
|
||||||
|
@ -524,7 +590,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_bandwidth(&mut self, idx: u32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
pub fn replace_bandwidth(&mut self, idx: u32, mut bw: SDPBandwidth) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_bandwidth(self.to_glib_none_mut().0, idx, &mut bw.0))
|
from_glib(ffi::gst_sdp_message_replace_bandwidth(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut bw.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(bw);
|
mem::forget(bw);
|
||||||
match result {
|
match result {
|
||||||
|
@ -535,7 +605,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_email(&mut self, idx: u32, email: &str) -> Result<(), ()> {
|
pub fn replace_email(&mut self, idx: u32, email: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_email(self.to_glib_none_mut().0, idx, email.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_replace_email(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
email.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -545,7 +619,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_phone(&mut self, idx: u32, phone: &str) -> Result<(), ()> {
|
pub fn replace_phone(&mut self, idx: u32, phone: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_phone(self.to_glib_none_mut().0, idx, phone.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_replace_phone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
phone.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -555,7 +633,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_time(&mut self, idx: u32, mut time: SDPTime) -> Result<(), ()> {
|
pub fn replace_time(&mut self, idx: u32, mut time: SDPTime) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_time(self.to_glib_none_mut().0, idx, &mut time.0))
|
from_glib(ffi::gst_sdp_message_replace_time(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut time.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(time);
|
mem::forget(time);
|
||||||
match result {
|
match result {
|
||||||
|
@ -566,7 +648,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn replace_zone(&mut self, idx: u32, mut zone: SDPZone) -> Result<(), ()> {
|
pub fn replace_zone(&mut self, idx: u32, mut zone: SDPZone) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_replace_zone(self.to_glib_none_mut().0, idx, &mut zone.0))
|
from_glib(ffi::gst_sdp_message_replace_zone(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
idx,
|
||||||
|
&mut zone.0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
mem::forget(zone);
|
mem::forget(zone);
|
||||||
match result {
|
match result {
|
||||||
|
@ -575,9 +661,23 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_connection(&mut self, nettype: &str, addrtype: &str, address: &str, ttl: u32, addr_number: u32) -> Result<(), ()> {
|
pub fn set_connection(
|
||||||
|
&mut self,
|
||||||
|
nettype: &str,
|
||||||
|
addrtype: &str,
|
||||||
|
address: &str,
|
||||||
|
ttl: u32,
|
||||||
|
addr_number: u32,
|
||||||
|
) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_connection(self.to_glib_none_mut().0, nettype.to_glib_none().0, addrtype.to_glib_none().0, address.to_glib_none().0, ttl, addr_number))
|
from_glib(ffi::gst_sdp_message_set_connection(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
nettype.to_glib_none().0,
|
||||||
|
addrtype.to_glib_none().0,
|
||||||
|
address.to_glib_none().0,
|
||||||
|
ttl,
|
||||||
|
addr_number,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -587,7 +687,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn set_information(&mut self, information: &str) -> Result<(), ()> {
|
pub fn set_information(&mut self, information: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_information(self.to_glib_none_mut().0, information.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_information(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
information.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -597,7 +700,11 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn set_key(&mut self, type_: &str, data: &str) -> Result<(), ()> {
|
pub fn set_key(&mut self, type_: &str, data: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_key(self.to_glib_none_mut().0, type_.to_glib_none().0, data.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_key(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
type_.to_glib_none().0,
|
||||||
|
data.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -605,9 +712,25 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_origin(&mut self, username: &str, sess_id: &str, sess_version: &str, nettype: &str, addrtype: &str, addr: &str) -> Result<(), ()> {
|
pub fn set_origin(
|
||||||
|
&mut self,
|
||||||
|
username: &str,
|
||||||
|
sess_id: &str,
|
||||||
|
sess_version: &str,
|
||||||
|
nettype: &str,
|
||||||
|
addrtype: &str,
|
||||||
|
addr: &str,
|
||||||
|
) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_origin(self.to_glib_none_mut().0, username.to_glib_none().0, sess_id.to_glib_none().0, sess_version.to_glib_none().0, nettype.to_glib_none().0, addrtype.to_glib_none().0, addr.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_origin(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
username.to_glib_none().0,
|
||||||
|
sess_id.to_glib_none().0,
|
||||||
|
sess_version.to_glib_none().0,
|
||||||
|
nettype.to_glib_none().0,
|
||||||
|
addrtype.to_glib_none().0,
|
||||||
|
addr.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -617,7 +740,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn set_session_name(&mut self, session_name: &str) -> Result<(), ()> {
|
pub fn set_session_name(&mut self, session_name: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_session_name(self.to_glib_none_mut().0, session_name.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_session_name(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
session_name.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -627,7 +753,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn set_uri(&mut self, uri: &str) -> Result<(), ()> {
|
pub fn set_uri(&mut self, uri: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_uri(self.to_glib_none_mut().0, uri.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_uri(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
uri.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -637,7 +766,10 @@ impl SDPMessage {
|
||||||
|
|
||||||
pub fn set_version(&mut self, version: &str) -> Result<(), ()> {
|
pub fn set_version(&mut self, version: &str) -> Result<(), ()> {
|
||||||
let result = unsafe {
|
let result = unsafe {
|
||||||
from_glib(ffi::gst_sdp_message_set_version(self.to_glib_none_mut().0, version.to_glib_none().0))
|
from_glib(ffi::gst_sdp_message_set_version(
|
||||||
|
self.to_glib_none_mut().0,
|
||||||
|
version.to_glib_none().0,
|
||||||
|
))
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(()),
|
SDPResult::Ok => Ok(()),
|
||||||
|
@ -646,21 +778,20 @@ impl SDPMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn times_len(&self) -> u32 {
|
pub fn times_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_times_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_times_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn zones_len(&self) -> u32 {
|
pub fn zones_len(&self) -> u32 {
|
||||||
unsafe {
|
unsafe { ffi::gst_sdp_message_zones_len(self.to_glib_none().0) }
|
||||||
ffi::gst_sdp_message_zones_len(self.to_glib_none().0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn as_uri(scheme: &str, msg: &SDPMessage) -> Option<String> {
|
pub fn as_uri(scheme: &str, msg: &SDPMessage) -> Option<String> {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
from_glib_full(ffi::gst_sdp_message_as_uri(scheme.to_glib_none().0, msg.to_glib_none().0))
|
from_glib_full(ffi::gst_sdp_message_as_uri(
|
||||||
|
scheme.to_glib_none().0,
|
||||||
|
msg.to_glib_none().0,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -668,14 +799,19 @@ impl SDPMessage {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let size = data.len() as u32;
|
let size = data.len() as u32;
|
||||||
let msg = glib_ffi::g_malloc0(mem::size_of::<ffi::GstSDPMessage>()) as *mut ffi::GstSDPMessage;
|
let msg = glib_ffi::g_malloc0(mem::size_of::<ffi::GstSDPMessage>())
|
||||||
let result = from_glib(ffi::gst_sdp_message_parse_buffer(data.to_glib_none().0, size, msg));
|
as *mut ffi::GstSDPMessage;
|
||||||
|
let result = from_glib(ffi::gst_sdp_message_parse_buffer(
|
||||||
|
data.to_glib_none().0,
|
||||||
|
size,
|
||||||
|
msg,
|
||||||
|
));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(from_glib_full(msg)),
|
SDPResult::Ok => Ok(from_glib_full(msg)),
|
||||||
_ => {
|
_ => {
|
||||||
glib_ffi::g_free(msg as *mut _);
|
glib_ffi::g_free(msg as *mut _);
|
||||||
Err(())
|
Err(())
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -683,14 +819,15 @@ impl SDPMessage {
|
||||||
pub fn parse_uri(uri: &str) -> Result<Self, ()> {
|
pub fn parse_uri(uri: &str) -> Result<Self, ()> {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let msg = glib_ffi::g_malloc0(mem::size_of::<ffi::GstSDPMessage>()) as *mut ffi::GstSDPMessage;
|
let msg = glib_ffi::g_malloc0(mem::size_of::<ffi::GstSDPMessage>())
|
||||||
|
as *mut ffi::GstSDPMessage;
|
||||||
let result = from_glib(ffi::gst_sdp_message_parse_uri(uri.to_glib_none().0, msg));
|
let result = from_glib(ffi::gst_sdp_message_parse_uri(uri.to_glib_none().0, msg));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(from_glib_full(msg)),
|
SDPResult::Ok => Ok(from_glib_full(msg)),
|
||||||
_ => {
|
_ => {
|
||||||
glib_ffi::g_free(msg as *mut _);
|
glib_ffi::g_free(msg as *mut _);
|
||||||
Err(())
|
Err(())
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,38 +15,26 @@ pub struct SDPOrigin(pub(crate) ffi::GstSDPOrigin);
|
||||||
|
|
||||||
impl SDPOrigin {
|
impl SDPOrigin {
|
||||||
pub fn username(&self) -> &str {
|
pub fn username(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.username).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.username).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sess_id(&self) -> &str {
|
pub fn sess_id(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.sess_id).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.sess_id).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sess_version(&self) -> &str {
|
pub fn sess_version(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.sess_version).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.sess_version).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn nettype(&self) -> &str {
|
pub fn nettype(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.nettype).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.nettype).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn addrtype(&self) -> &str {
|
pub fn addrtype(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.addrtype).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.addrtype).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn addr(&self) -> &str {
|
pub fn addr(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.addr).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.addr).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::os::raw::c_char;
|
use std::os::raw::c_char;
|
||||||
use std::ffi::CStr;
|
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
|
@ -37,15 +37,11 @@ impl SDPTime {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn start(&self) -> &str {
|
pub fn start(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.start).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.start).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn stop(&self) -> &str {
|
pub fn stop(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.stop).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.stop).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn repeat(&self) -> Vec<&str> {
|
pub fn repeat(&self) -> Vec<&str> {
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use std::mem;
|
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
|
use std::mem;
|
||||||
|
|
||||||
use ffi;
|
use ffi;
|
||||||
use glib::translate::*;
|
use glib::translate::*;
|
||||||
|
@ -22,7 +22,11 @@ impl SDPZone {
|
||||||
assert_initialized_main_thread!();
|
assert_initialized_main_thread!();
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut zone = mem::zeroed();
|
let mut zone = mem::zeroed();
|
||||||
let result = from_glib(ffi::gst_sdp_zone_set(&mut zone, time.to_glib_none().0, typed_time.to_glib_none().0));
|
let result = from_glib(ffi::gst_sdp_zone_set(
|
||||||
|
&mut zone,
|
||||||
|
time.to_glib_none().0,
|
||||||
|
typed_time.to_glib_none().0,
|
||||||
|
));
|
||||||
match result {
|
match result {
|
||||||
SDPResult::Ok => Ok(SDPZone(zone)),
|
SDPResult::Ok => Ok(SDPZone(zone)),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -31,15 +35,11 @@ impl SDPZone {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn time(&self) -> &str {
|
pub fn time(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.time).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.time).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn typed_time(&self) -> &str {
|
pub fn typed_time(&self) -> &str {
|
||||||
unsafe {
|
unsafe { CStr::from_ptr(self.0.typed_time).to_str().unwrap() }
|
||||||
CStr::from_ptr(self.0.typed_time).to_str().unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,28 +12,27 @@ extern crate libc;
|
||||||
extern crate glib;
|
extern crate glib;
|
||||||
extern crate glib_sys as glib_ffi;
|
extern crate glib_sys as glib_ffi;
|
||||||
extern crate gobject_sys as gobject_ffi;
|
extern crate gobject_sys as gobject_ffi;
|
||||||
extern crate gstreamer_sys as gst_ffi;
|
|
||||||
extern crate gstreamer_webrtc_sys as ffi;
|
|
||||||
extern crate gstreamer as gst;
|
extern crate gstreamer as gst;
|
||||||
extern crate gstreamer_sdp as gst_sdp;
|
extern crate gstreamer_sdp as gst_sdp;
|
||||||
|
extern crate gstreamer_sys as gst_ffi;
|
||||||
|
extern crate gstreamer_webrtc_sys as ffi;
|
||||||
|
|
||||||
macro_rules! assert_initialized_main_thread {
|
macro_rules! assert_initialized_main_thread {
|
||||||
() => (
|
() => {
|
||||||
if unsafe {::gst_ffi::gst_is_initialized()} != ::glib_ffi::GTRUE {
|
if unsafe { ::gst_ffi::gst_is_initialized() } != ::glib_ffi::GTRUE {
|
||||||
panic!("GStreamer has not been initialized. Call `gst::init` first.");
|
panic!("GStreamer has not been initialized. Call `gst::init` first.");
|
||||||
}
|
}
|
||||||
)
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! skip_assert_initialized {
|
macro_rules! skip_assert_initialized {
|
||||||
() => (
|
() => {};
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! callback_guard {
|
macro_rules! callback_guard {
|
||||||
() => (
|
() => {
|
||||||
let _guard = ::glib::CallbackGuard::new();
|
let _guard = ::glib::CallbackGuard::new();
|
||||||
)
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
pub use glib::{Cast, Continue, Error, IsA, StaticType, ToValue, Type, TypedValue, Value};
|
pub use glib::{Cast, Continue, Error, IsA, StaticType, ToValue, Type, TypedValue, Value};
|
||||||
|
|
Loading…
Reference in a new issue