跳到主要内容

AVHWFramesContext

搜索

结构体 AVHWFramesContext 

源代码
#[repr(C)]
pub struct AVHWFramesContext { pub av_class: *const AVClass, pub device_ref: *mut AVBufferRef, pub device_ctx: *mut AVHWDeviceContext, pub hwctx: *mut c_void, pub free: Option<unsafe extern "C" fn(ctx: *mut AVHWFramesContext)>, pub user_opaque: *mut c_void, pub pool: *mut AVBufferPool, pub initial_pool_size: c_int, pub format: AVPixelFormat, pub sw_format: AVPixelFormat, pub width: c_int, pub height: c_int, }
展开描述

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

A class for logging.

§device_ref: *mut AVBufferRef

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

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

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

The user shall ignore this field if the corresponding format-specific header (hwcontext_*.h) does not define a context to be used as AVHWFramesContext.hwctx.

Otherwise, it should be cast by the user to said context 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(ctx: *mut AVHWFramesContext)>

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

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

§pool: *mut AVBufferPool

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: c_int

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: AVPixelFormat

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: AVPixelFormat

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: c_int

The allocated dimensions of the frames in this pool.

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

§height: c_int

The allocated dimensions of the frames in this pool.

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

trait 实现§

源代码§

impl Clone for AVHWFramesContext

源代码§

fn clone(&self) -> AVHWFramesContext

Returns a duplicate of the value. 阅读更多
1.0.0 · 源代码§

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

source 执行拷贝赋值。 阅读更多
源代码§

impl Debug for AVHWFramesContext

源代码§

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

使用给定的格式化器格式化该值。 阅读更多
源代码§

impl PartialEq for AVHWFramesContext

源代码§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 源代码§

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

测试 !=。默认实现几乎总是足够的,没有充分理由不应被重写。
源代码§

impl Copy for AVHWFramesContext

源代码§

impl Eq for AVHWFramesContext

源代码§

impl StructuralPartialEq for AVHWFramesContext

自动 trait 实现§

blanket 实现§

源代码§

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

源代码§

fn type_id(&self) -> TypeId

获取 selfTypeId阅读更多
源代码§

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

源代码§

fn borrow(&self) -> &T

从拥有的值不可变地借用。 阅读更多
源代码§

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

源代码§

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

从拥有的值可变地借用。 阅读更多
源代码§

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

源代码§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
self 执行拷贝赋值到 dest阅读更多
源代码§

impl<T> From<T> for T

源代码§

fn from(t: T) -> T

原样返回参数。

源代码§

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

源代码§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U 实现选择执行的操作。

源代码§

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

源代码§

type Owned = T

获取所有权后得到的类型。
源代码§

fn to_owned(&self) -> T

通常通过克隆,从借用数据创建拥有的数据。 阅读更多
源代码§

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

通常通过克隆,使用借用数据替换拥有的数据。 阅读更多
源代码§

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

源代码§

type Error = Infallible

转换出错时返回的类型。
源代码§

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

执行该转换。
源代码§

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

源代码§

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

转换出错时返回的类型。
源代码§

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

执行该转换。