mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-26 11:31:06 +00:00
Add push_list/chain_list functions to Pad
This commit is contained in:
parent
de98b8039e
commit
dc703cc6e9
2 changed files with 29 additions and 0 deletions
|
@ -84,6 +84,9 @@ pub trait PadExtManual {
|
||||||
fn chain(&self, buffer: Buffer) -> FlowReturn;
|
fn chain(&self, buffer: Buffer) -> FlowReturn;
|
||||||
fn push(&self, buffer: Buffer) -> FlowReturn;
|
fn push(&self, buffer: Buffer) -> FlowReturn;
|
||||||
|
|
||||||
|
fn chain_list(&self, list: BufferList) -> FlowReturn;
|
||||||
|
fn push_list(&self, list: BufferList) -> FlowReturn;
|
||||||
|
|
||||||
fn pull_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn>;
|
fn pull_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn>;
|
||||||
fn get_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn>;
|
fn get_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn>;
|
||||||
|
|
||||||
|
@ -140,6 +143,14 @@ impl<O: IsA<Pad>> PadExtManual for O {
|
||||||
unsafe { from_glib(ffi::gst_pad_push(self.to_glib_none().0, buffer.into_ptr())) }
|
unsafe { from_glib(ffi::gst_pad_push(self.to_glib_none().0, buffer.into_ptr())) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn chain_list(&self, list: BufferList) -> FlowReturn {
|
||||||
|
unsafe { from_glib(ffi::gst_pad_chain_list(self.to_glib_none().0, list.into_ptr())) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn push_list(&self, list: BufferList) -> FlowReturn {
|
||||||
|
unsafe { from_glib(ffi::gst_pad_push_list(self.to_glib_none().0, list.into_ptr())) }
|
||||||
|
}
|
||||||
|
|
||||||
fn get_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn> {
|
fn get_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowReturn> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut buffer = ptr::null_mut();
|
let mut buffer = ptr::null_mut();
|
||||||
|
|
|
@ -12,6 +12,7 @@ use ProxyPad;
|
||||||
use Object;
|
use Object;
|
||||||
use FlowReturn;
|
use FlowReturn;
|
||||||
use Buffer;
|
use Buffer;
|
||||||
|
use BufferList;
|
||||||
|
|
||||||
use glib::IsA;
|
use glib::IsA;
|
||||||
use glib::translate::{from_glib, from_glib_full, ToGlibPtr};
|
use glib::translate::{from_glib, from_glib_full, ToGlibPtr};
|
||||||
|
@ -36,6 +37,23 @@ impl ProxyPad {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn chain_list_default<'a, P: IsA<Pad>, Q: IsA<Object> + 'a, R: Into<Option<&'a Q>>>(
|
||||||
|
pad: &P,
|
||||||
|
parent: R,
|
||||||
|
list: BufferList,
|
||||||
|
) -> FlowReturn {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
let parent = parent.into();
|
||||||
|
let parent = parent.to_glib_none();
|
||||||
|
unsafe {
|
||||||
|
from_glib(ffi::gst_proxy_pad_chain_list_default(
|
||||||
|
pad.to_glib_none().0,
|
||||||
|
parent.0,
|
||||||
|
list.into_ptr(),
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn getrange_default<P: IsA<Pad>, Q: IsA<Object>>(
|
pub fn getrange_default<P: IsA<Pad>, Q: IsA<Object>>(
|
||||||
pad: &P,
|
pad: &P,
|
||||||
parent: &Q,
|
parent: &Q,
|
||||||
|
|
Loading…
Reference in a new issue