forked from mirrors/gstreamer-rs
gstreamer: Add support for 1.18 instant rate request message
This commit is contained in:
parent
cdddf48f08
commit
67af5ac569
1 changed files with 63 additions and 0 deletions
|
@ -121,6 +121,10 @@ impl MessageRef {
|
||||||
}
|
}
|
||||||
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
||||||
ffi::GST_MESSAGE_DEVICE_CHANGED => MessageView::DeviceChanged(DeviceChanged(self)),
|
ffi::GST_MESSAGE_DEVICE_CHANGED => MessageView::DeviceChanged(DeviceChanged(self)),
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
ffi::GST_MESSAGE_INSTANT_RATE_REQUEST => {
|
||||||
|
MessageView::InstantRateRequest(InstantRateRequest(self))
|
||||||
|
}
|
||||||
_ => MessageView::Other,
|
_ => MessageView::Other,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,6 +226,9 @@ pub enum MessageView<'a> {
|
||||||
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
||||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
|
||||||
DeviceChanged(DeviceChanged<'a>),
|
DeviceChanged(DeviceChanged<'a>),
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||||
|
InstantRateRequest(InstantRateRequest<'a>),
|
||||||
Other,
|
Other,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1615,6 +1622,39 @@ impl<'a> DeviceChanged<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||||
|
declare_concrete_message!(InstantRateRequest);
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||||
|
impl<'a> InstantRateRequest<'a> {
|
||||||
|
#[allow(clippy::new_ret_no_self)]
|
||||||
|
pub fn new(rate_multiplier: f64) -> Message {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
Self::builder(rate_multiplier).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn builder(rate_multiplier: f64) -> InstantRateRequestBuilder<'a> {
|
||||||
|
assert_initialized_main_thread!();
|
||||||
|
InstantRateRequestBuilder::new(rate_multiplier)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[doc(alias = "parse_instant_rate_request")]
|
||||||
|
#[doc(alias = "gst_message_parse_instant_rate_request")]
|
||||||
|
pub fn rate_multiplier(&self) -> f64 {
|
||||||
|
unsafe {
|
||||||
|
let mut rate_multiplier = mem::MaybeUninit::uninit();
|
||||||
|
|
||||||
|
ffi::gst_message_parse_instant_rate_request(
|
||||||
|
self.as_mut_ptr(),
|
||||||
|
rate_multiplier.as_mut_ptr(),
|
||||||
|
);
|
||||||
|
|
||||||
|
rate_multiplier.assume_init()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct MessageBuilder<'a> {
|
struct MessageBuilder<'a> {
|
||||||
src: Option<Object>,
|
src: Option<Object>,
|
||||||
seqnum: Option<Seqnum>,
|
seqnum: Option<Seqnum>,
|
||||||
|
@ -2912,6 +2952,29 @@ impl<'a> DeviceChangedBuilder<'a> {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||||
|
pub struct InstantRateRequestBuilder<'a> {
|
||||||
|
builder: MessageBuilder<'a>,
|
||||||
|
rate_multiplier: f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||||
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||||
|
impl<'a> InstantRateRequestBuilder<'a> {
|
||||||
|
fn new(rate_multiplier: f64) -> Self {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
Self {
|
||||||
|
builder: MessageBuilder::new(),
|
||||||
|
rate_multiplier,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message_builder_generic_impl!(
|
||||||
|
|s: &mut Self, src| ffi::gst_message_new_instant_rate_request(src, s.rate_multiplier,)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
Loading…
Reference in a new issue