FFmpeg
|
#include <hwaccel_internal.h>
Data Fields | |
AVHWAccel | p |
The public AVHWAccel. More... | |
int(* | alloc_frame )(AVCodecContext *avctx, AVFrame *frame) |
Allocate a custom buffer. More... | |
int(* | start_frame )(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size) |
Called at the beginning of each frame or field picture. More... | |
int(* | decode_params )(AVCodecContext *avctx, int type, const uint8_t *buf, uint32_t buf_size) |
Callback for parameter data (SPS/PPS/VPS etc). More... | |
int(* | decode_slice )(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size) |
Callback for each slice. More... | |
int(* | end_frame )(AVCodecContext *avctx) |
Called at the end of each frame or field picture. More... | |
int | frame_priv_data_size |
Size of per-frame hardware accelerator private data. More... | |
int | priv_data_size |
Size of the private data to allocate in AVCodecInternal.hwaccel_priv_data. More... | |
int | caps_internal |
Internal hwaccel capabilities. More... | |
int(* | init )(AVCodecContext *avctx) |
Initialize the hwaccel private data. More... | |
int(* | uninit )(AVCodecContext *avctx) |
Uninitialize the hwaccel private data. More... | |
int(* | frame_params )(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx) |
Fill the given hw_frames context with current codec parameters. More... | |
int(* | update_thread_context )(AVCodecContext *dst, const AVCodecContext *src) |
Copy necessary context variables from a previous thread context to the current one. More... | |
void(* | free_frame_priv )(FFRefStructOpaque hwctx, void *data) |
Callback to free the hwaccel-specific frame data. More... | |
void(* | flush )(AVCodecContext *avctx) |
Callback to flush the hwaccel state. More... | |
Definition at line 34 of file hwaccel_internal.h.
AVHWAccel FFHWAccel::p |
The public AVHWAccel.
See avcodec.h for it.
Definition at line 38 of file hwaccel_internal.h.
Referenced by hwaccel_init().
int(* FFHWAccel::alloc_frame) (AVCodecContext *avctx, AVFrame *frame) |
Allocate a custom buffer.
Definition at line 43 of file hwaccel_internal.h.
Referenced by ff_get_buffer().
int(* FFHWAccel::start_frame) (AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size) |
Called at the beginning of each frame or field picture.
Meaningful frame information (codec specific) is guaranteed to be parsed at this point. This function is mandatory.
Note that buf can be NULL along with buf_size set to 0. Otherwise, this means the whole frame is available at this point.
avctx | the codec context |
buf | the frame data buffer base |
buf_size | the size of the frame in bytes |
Definition at line 59 of file hwaccel_internal.h.
Referenced by decode_frame(), ff_mjpeg_decode_sof(), vc1_decode_frame(), vp78_decode_frame(), and vp9_decode_frame().
int(* FFHWAccel::decode_params) (AVCodecContext *avctx, int type, const uint8_t *buf, uint32_t buf_size) |
Callback for parameter data (SPS/PPS/VPS etc).
Useful for hardware decoders which keep persistent state about the video parameters, and need to receive any changes to update that state.
avctx | the codec context |
type | the nal unit type |
buf | the nal unit data buffer |
buf_size | the size of the nal unit in bytes |
Definition at line 73 of file hwaccel_internal.h.
int(* FFHWAccel::decode_slice) (AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size) |
Callback for each slice.
Meaningful slice information (codec specific) is guaranteed to be parsed at this point. This function is mandatory.
avctx | the codec context |
buf | the slice data buffer base |
buf_size | the size of the slice in bytes |
Definition at line 86 of file hwaccel_internal.h.
Referenced by decode_frame(), vc1_decode_frame(), vp78_decode_frame(), and vp9_decode_frame().
int(* FFHWAccel::end_frame) (AVCodecContext *avctx) |
Called at the end of each frame or field picture.
The whole picture is parsed at this point and can now be sent to the hardware accelerator. This function is mandatory.
avctx | the codec context |
Definition at line 97 of file hwaccel_internal.h.
Referenced by decode_frame(), vc1_decode_frame(), vp78_decode_frame(), and vp9_decode_frame().
int FFHWAccel::frame_priv_data_size |
Size of per-frame hardware accelerator private data.
Private data is allocated with av_mallocz() before AVCodecContext.get_buffer() and deallocated after AVCodecContext.release_buffer().
Definition at line 106 of file hwaccel_internal.h.
Referenced by ff_hwaccel_frame_priv_alloc(), and ff_mjpeg_decode_sof().
int FFHWAccel::priv_data_size |
Size of the private data to allocate in AVCodecInternal.hwaccel_priv_data.
Definition at line 112 of file hwaccel_internal.h.
Referenced by avcodec_get_hw_frames_parameters(), hwaccel_init(), and update_context_from_thread().
int FFHWAccel::caps_internal |
Internal hwaccel capabilities.
Definition at line 117 of file hwaccel_internal.h.
Referenced by ff_thread_finish_setup(), frame_worker_thread(), and hwaccel_serial().
int(* FFHWAccel::init) (AVCodecContext *avctx) |
Initialize the hwaccel private data.
This will be called from ff_get_format(), after hwaccel and hwaccel_context are set and the hwaccel private data in AVCodecInternal is allocated.
Definition at line 126 of file hwaccel_internal.h.
Referenced by hwaccel_init().
int(* FFHWAccel::uninit) (AVCodecContext *avctx) |
Uninitialize the hwaccel private data.
This will be called from get_format() or avcodec_close(), after hwaccel and hwaccel_context are already uninitialized.
Definition at line 134 of file hwaccel_internal.h.
int(* FFHWAccel::frame_params) (AVCodecContext *avctx, AVBufferRef *hw_frames_ctx) |
Fill the given hw_frames context with current codec parameters.
Called from get_format. Refer to avcodec_get_hw_frames_parameters() for details.
This CAN be called before AVHWAccel.init is called, and you must assume that avctx->hwaccel_priv_data is invalid.
Definition at line 144 of file hwaccel_internal.h.
Referenced by avcodec_get_hw_frames_parameters().
int(* FFHWAccel::update_thread_context) (AVCodecContext *dst, const AVCodecContext *src) |
Copy necessary context variables from a previous thread context to the current one.
For thread-safe hwaccels only.
Definition at line 150 of file hwaccel_internal.h.
Referenced by update_context_from_thread().
void(* FFHWAccel::free_frame_priv) (FFRefStructOpaque hwctx, void *data) |
Callback to free the hwaccel-specific frame data.
hwctx | a pointer to an AVHWDeviceContext. |
data | the per-frame hardware accelerator private data to be freed. |
Definition at line 158 of file hwaccel_internal.h.
Referenced by ff_hwaccel_frame_priv_alloc().
void(* FFHWAccel::flush) (AVCodecContext *avctx) |
Callback to flush the hwaccel state.
Definition at line 163 of file hwaccel_internal.h.