Struct rsmpeg::ffi::AVHWFramesContext[][src]

#[repr(C)]
pub struct AVHWFramesContext {
Show fields pub av_class: *const AVClass, pub internal: *mut AVHWFramesInternal, pub device_ref: *mut AVBufferRef, pub device_ctx: *mut AVHWDeviceContext, pub hwctx: *mut c_void, pub free: Option<unsafe extern "C" fn(*mut AVHWFramesContext)>, pub user_opaque: *mut c_void, pub pool: *mut AVBufferPool, pub initial_pool_size: i32, pub format: i32, pub sw_format: i32, pub width: i32, pub height: i32,
}
Expand description

This struct describes a set or pool of “hardware” frames (i.e. those with data not located in normal system memory). All the frames in the pool are assumed to be allocated in the same way and interchangeable.

This struct is reference-counted with the AVBuffer mechanism and tied to a given AVHWDeviceContext instance. The av_hwframe_ctx_alloc() constructor yields a reference, whose data field points to the actual AVHWFramesContext struct.

Fields

av_class: *const AVClass
Expand description

A class for logging.

internal: *mut AVHWFramesInternal
Expand description

Private data used internally by libavutil. Must not be accessed in any way by the caller.

device_ref: *mut AVBufferRef
Expand description

A reference to the parent AVHWDeviceContext. This reference is owned and managed by the enclosing AVHWFramesContext, but the caller may derive additional references from it.

device_ctx: *mut AVHWDeviceContext
Expand description

The parent AVHWDeviceContext. This is simply a pointer to device_ref->data provided for convenience.

Set by libavutil in av_hwframe_ctx_init().

hwctx: *mut c_void
Expand description

The format-specific data, allocated and freed automatically along with this context.

Should be cast by the user to the format-specific context defined in the corresponding header (hwframe_*.h) and filled as described in the documentation before calling av_hwframe_ctx_init().

After any frames using this context are created, the contents of this struct should not be modified by the caller.

free: Option<unsafe extern "C" fn(*mut AVHWFramesContext)>
Expand description

This field may be set by the caller before calling av_hwframe_ctx_init().

If non-NULL, this callback will be called when the last reference to this context is unreferenced, immediately before it is freed.

user_opaque: *mut c_void
Expand description

Arbitrary user data, to be used e.g. by the free() callback.

pool: *mut AVBufferPool
Expand description

A pool from which the frames are allocated by av_hwframe_get_buffer(). This field may be set by the caller before calling av_hwframe_ctx_init(). The buffers returned by calling av_buffer_pool_get() on this pool must have the properties described in the documentation in the corresponding hw type’s header (hwcontext_*.h). The pool will be freed strictly before this struct’s free() callback is invoked.

This field may be NULL, then libavutil will attempt to allocate a pool internally. Note that certain device types enforce pools allocated at fixed size (frame count), which cannot be extended dynamically. In such a case, initial_pool_size must be set appropriately.

initial_pool_size: i32
Expand description

Initial size of the frame pool. If a device type does not support dynamically resizing the pool, then this is also the maximum pool size.

May be set by the caller before calling av_hwframe_ctx_init(). Must be set if pool is NULL and the device type does not support dynamic pools.

format: i32
Expand description

The pixel format identifying the underlying HW surface type.

Must be a hwaccel format, i.e. the corresponding descriptor must have the AV_PIX_FMT_FLAG_HWACCEL flag set.

Must be set by the user before calling av_hwframe_ctx_init().

sw_format: i32
Expand description

The pixel format identifying the actual data layout of the hardware frames.

Must be set by the caller before calling av_hwframe_ctx_init().

@note when the underlying API does not provide the exact data layout, but only the colorspace/bit depth, this field should be set to the fully planar version of that format (e.g. for 8-bit 420 YUV it should be AV_PIX_FMT_YUV420P, not AV_PIX_FMT_NV12 or anything else).

width: i32
Expand description

The allocated dimensions of the frames in this pool.

Must be set by the user before calling av_hwframe_ctx_init().

height: i32
Expand description

The allocated dimensions of the frames in this pool.

Must be set by the user before calling av_hwframe_ctx_init().

Trait Implementations

impl Clone for AVHWFramesContext[src]

pub fn clone(&self) -> AVHWFramesContext[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for AVHWFramesContext[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Copy for AVHWFramesContext[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.