Skip to main content

Buffer

Struct Buffer 

Source
pub struct Buffer { /* private fields */ }

Implementations§

Source§

impl Buffer

Source

pub unsafe fn from_glib_ptr_borrow(ptr: &*mut GstBuffer) -> &Self

Source

pub unsafe fn from_glib_none(ptr: *const GstBuffer) -> Self

Source

pub unsafe fn from_glib_full(ptr: *const GstBuffer) -> Self

Source

pub unsafe fn from_glib_borrow(ptr: *const GstBuffer) -> Borrowed<Self>

Source

pub unsafe fn replace_ptr(&mut self, ptr: *mut GstBuffer)

Source

pub fn make_mut(&mut self) -> &mut BufferRef

Source

pub fn get_mut(&mut self) -> Option<&mut BufferRef>

Source

pub fn is_writable(&self) -> bool

Source

pub fn upcast(self) -> MiniObject

Source§

impl Buffer

Source

pub fn new() -> Self

Source

pub fn with_size(size: usize) -> Result<Self, BoolError>

Source

pub fn from_mut_slice<T: AsMut<[u8]> + Send + 'static>(slice: T) -> Self

Source

pub fn from_slice<T: AsRef<[u8]> + Send + 'static>(slice: T) -> Self

Source

pub fn try_into_inner<T: 'static>( self, ) -> Result<T, (Self, MemoryIntoInnerError)>

Attempts to extract the underlying wrapped value of type T from this Buffer.

This will only succeed if:

  • The buffer contains exactly one memory
  • That memory was created with Memory::from_slice() wrapping type T
  • The memory can be converted (see Memory::try_into_inner() requirements)

On success, the Buffer is consumed and the original wrapped value is returned. On failure, the original Buffer and an error are returned in the Err variant.

§Examples
use gstreamer::Buffer;

gstreamer::init().unwrap();

let vec = vec![1u8, 2, 3, 4, 5];
let expected = vec.clone();
let buf = Buffer::from_slice(vec);

let converted: Vec<u8> = buf.try_into_inner().unwrap();
assert_eq!(converted, expected);
Source

pub fn into_mapped_buffer_readable(self) -> Result<MappedBuffer<Readable>, Self>

Source

pub fn into_mapped_buffer_writable(self) -> Result<MappedBuffer<Writable>, Self>

Source

pub fn into_cursor_readable(self) -> BufferCursor<Readable>

Source

pub fn into_cursor_writable(self) -> Result<BufferCursor<Writable>, BoolError>

Source

pub fn append(&mut self, other: Self)

Methods from Deref<Target = BufferRef>§

Source

pub fn as_ptr(&self) -> *const GstBuffer

Source

pub fn as_mut_ptr(&self) -> *mut GstBuffer

Source

pub fn copy(&self) -> Buffer

Source

pub fn upcast_ref(&self) -> &MiniObjectRef

Source

pub fn map_readable(&self) -> Result<BufferMap<'_, Readable>, BoolError>

Source

pub fn map_range_readable( &self, range: impl RangeBounds<usize>, ) -> Result<BufferMap<'_, Readable>, BoolError>

Source

pub fn copy_region( &self, flags: BufferCopyFlags, range: impl RangeBounds<usize>, ) -> Result<Buffer, BoolError>

Source

pub fn copy_into( &self, dest: &mut BufferRef, flags: BufferCopyFlags, range: impl RangeBounds<usize>, ) -> Result<(), BoolError>

Source

pub fn copy_to_slice( &self, offset: usize, slice: &mut [u8], ) -> Result<(), usize>

Source

pub fn copy_deep(&self) -> Result<Buffer, BoolError>

Source

pub fn sizes(&self) -> (usize, usize, usize)

Source

pub fn sizes_range( &self, range: impl RangeBounds<usize>, ) -> (usize, usize, usize)

Source

pub fn size(&self) -> usize

Source

pub fn maxsize(&self) -> usize

Source

pub fn offset(&self) -> u64

Source

pub fn offset_end(&self) -> u64

Source

pub fn pts(&self) -> Option<ClockTime>

Source

pub fn dts(&self) -> Option<ClockTime>

Source

pub fn dts_or_pts(&self) -> Option<ClockTime>

Source

pub fn duration(&self) -> Option<ClockTime>

Source

pub fn flags(&self) -> BufferFlags

Source

pub fn meta<T: MetaAPI>(&self) -> Option<MetaRef<'_, T>>

Source

pub fn iter_meta<T: MetaAPI>(&self) -> MetaIter<'_, T>

Source

pub fn foreach_meta<F: FnMut(MetaRef<'_, Meta>) -> ControlFlow<(), ()>>( &self, func: F, ) -> bool

Source

pub fn find_memory( &self, range: impl RangeBounds<usize>, ) -> Option<(Range<usize>, usize)>

Source

pub fn all_memory(&self) -> Option<Memory>

Source

pub fn memory(&self, idx: usize) -> Option<Memory>

Source

pub fn memory_range(&self, range: impl RangeBounds<usize>) -> Option<Memory>

Source

pub fn is_all_memory_writable(&self) -> bool

Source

pub fn is_memory_range_writable(&self, range: impl RangeBounds<usize>) -> bool

Source

pub fn n_memory(&self) -> usize

Source

pub fn peek_memory(&self, idx: usize) -> &MemoryRef

Source

pub fn iter_memories(&self) -> Iter<'_>

Source

pub fn iter_memories_owned(&self) -> IterOwned<'_>

Source

pub fn as_cursor_readable(&self) -> BufferRefCursor<&BufferRef>

Source

pub fn dump(&self) -> Dump<'_>

Source

pub fn dump_range(&self, range: impl RangeBounds<usize>) -> Dump<'_>

Trait Implementations§

Source§

impl AsRef<BufferRef> for Buffer

Source§

fn as_ref(&self) -> &BufferRef

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<BufferRef> for Buffer

Source§

fn borrow(&self) -> &BufferRef

Immutably borrows from an owned value. Read more
Source§

impl Clone for Buffer

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Buffer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Buffer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Deref for Buffer

Source§

type Target = BufferRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'de> Deserialize<'de> for Buffer

Available on crate feature serde only.
Source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Drop for Buffer

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Eq for Buffer

Source§

impl Extend<Buffer> for BufferListRef

Source§

fn extend<T: IntoIterator<Item = Buffer>>(&mut self, iter: T)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: T)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl From<Buffer> for Value

Source§

fn from(v: Buffer) -> Value

Converts to this type from the input type.
Source§

impl From<Buffer> for BufferList

Source§

fn from(value: Buffer) -> Self

Converts to this type from the input type.
Source§

impl From<Memory> for Buffer

Source§

fn from(value: Memory) -> Self

Converts to this type from the input type.
Source§

impl<const N: usize> From<[Memory; N]> for Buffer

Source§

fn from(value: [Memory; N]) -> Self

Converts to this type from the input type.
Source§

impl FromGlibContainerAsVec<*mut GstBuffer, *const *mut GstBuffer> for Buffer

Source§

impl FromGlibContainerAsVec<*mut GstBuffer, *mut *mut GstBuffer> for Buffer

Source§

impl FromGlibPtrArrayContainerAsVec<*mut GstBuffer, *const *mut GstBuffer> for Buffer

Source§

impl FromGlibPtrArrayContainerAsVec<*mut GstBuffer, *mut *mut GstBuffer> for Buffer

Source§

impl FromGlibPtrBorrow<*const GstBuffer> for Buffer

Source§

impl FromGlibPtrBorrow<*mut GstBuffer> for Buffer

Source§

impl FromGlibPtrFull<*const GstBuffer> for Buffer

Source§

unsafe fn from_glib_full(ptr: *const GstBuffer) -> Self

Safety Read more
Source§

impl FromGlibPtrFull<*mut GstBuffer> for Buffer

Source§

unsafe fn from_glib_full(ptr: *mut GstBuffer) -> Self

Safety Read more
Source§

impl FromGlibPtrNone<*const GstBuffer> for Buffer

Source§

unsafe fn from_glib_none(ptr: *const GstBuffer) -> Self

Safety Read more
Source§

impl FromGlibPtrNone<*mut GstBuffer> for Buffer

Source§

unsafe fn from_glib_none(ptr: *mut GstBuffer) -> Self

Safety Read more
Source§

impl FromIterator<Buffer> for BufferList

Source§

fn from_iter<T: IntoIterator<Item = Buffer>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl FromIterator<Memory> for Buffer

Source§

fn from_iter<T: IntoIterator<Item = Memory>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl<'a> FromValue<'a> for Buffer

Source§

type Checker = GenericValueTypeOrNoneChecker<Buffer>

Value type checker.
Source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
Source§

impl<'a> FromValue<'a> for &'a Buffer

Source§

type Checker = GenericValueTypeOrNoneChecker<&'a Buffer>

Value type checker.
Source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
Source§

impl GlibPtrDefault for Buffer

Source§

impl HasParamSpec for Buffer

Source§

type ParamSpec = ParamSpecBoxed

Source§

type SetValue = Buffer

Preferred value to be used as setter for the associated ParamSpec.
Source§

type BuilderFn = fn(&str) -> ParamSpecBoxedBuilder<'_, Buffer>

Source§

fn param_spec_builder() -> Self::BuilderFn

Source§

impl IntoGlibPtr<*mut GstBuffer> for Buffer

Source§

fn into_glib_ptr(self) -> *mut GstBuffer

Transfer: full.
Source§

impl IsMiniObject for Buffer

Source§

impl PartialEq for Buffer

Source§

fn eq(&self, other: &Buffer) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialEq<Buffer> for BufferRef

Source§

fn eq(&self, other: &Buffer) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialEq<BufferRef> for Buffer

Source§

fn eq(&self, other: &BufferRef) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Send for Buffer

Source§

impl Serialize for Buffer

Available on crate feature serde only.
Source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
Source§

impl StaticType for Buffer

Source§

fn static_type() -> Type

Returns the type identifier of Self.
Source§

impl Sync for Buffer

Source§

impl<'a> ToGlibContainerFromSlice<'a, *const *mut GstBuffer> for Buffer

Source§

impl<'a> ToGlibContainerFromSlice<'a, *mut *mut GstBuffer> for Buffer

Source§

impl<'a> ToGlibPtr<'a, *const GstBuffer> for Buffer

Source§

type Storage = PhantomData<&'a Buffer>

Source§

fn to_glib_none(&'a self) -> Stash<'a, *const GstBuffer, Self>

Transfer: none. Read more
Source§

fn to_glib_full(&self) -> *const GstBuffer

Transfer: full. Read more
Source§

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

Transfer: container. Read more
Source§

impl<'a> ToGlibPtr<'a, *mut GstBuffer> for Buffer

Source§

type Storage = PhantomData<&'a Buffer>

Source§

fn to_glib_none(&'a self) -> Stash<'a, *mut GstBuffer, Self>

Transfer: none. Read more
Source§

fn to_glib_full(&self) -> *mut GstBuffer

Transfer: full. Read more
Source§

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

Transfer: container. Read more
Source§

impl<'a> ToGlibPtrMut<'a, *mut GstBuffer> for Buffer

Source§

type Storage = PhantomData<&'a mut Buffer>

Source§

fn to_glib_none_mut(&mut self) -> StashMut<'_, *mut GstBuffer, Self>

Transfer: none. Read more
Source§

impl ToValue for Buffer

Source§

fn to_value(&self) -> Value

Convert a value to a Value.
Source§

fn value_type(&self) -> Type

Returns the type identifier of self. Read more
Source§

impl ToValueOptional for Buffer

Source§

fn to_value_optional(s: Option<&Self>) -> Value

Convert an Option to a Value.
Source§

impl TransparentPtrType for Buffer

Source§

impl ValueType for Buffer

Source§

type Type = Buffer

Type to get the Type from. Read more
Source§

impl ValueTypeOptional for Buffer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

Source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Property for T
where T: HasParamSpec,

Source§

type Value = T

Source§

impl<T> PropertyGet for T
where T: HasParamSpec,

Source§

type Value = T

Source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> StaticTypeExt for T
where T: StaticType,

Source§

fn ensure_type()

Ensures that the type has been registered with the type system.
Source§

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T

Source§

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> for T

Source§

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T

Source§

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToSendValue for T
where T: Send + ToValue + ?Sized,

Source§

fn to_send_value(&self) -> SendValue

Returns a SendValue clone of self.
Source§

impl<T> TransparentType for T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.