VAAPI encode device that imports captured frames into VA surfaces.
More...
|
| void | apply_colorspace () override |
| | Apply the configured colorspace metadata to the active frame.
|
| |
| VAProfile | get_va_profile (AVCodecContext *ctx) |
| | Determines the matching VA profile for the codec configuration.
|
| |
| int | init (int in_width, int in_height, file_t &&render_device) |
| | Initialize VAAPI display, EGL, and conversion resources.
|
| |
| void | init_codec_options (AVCodecContext *ctx, AVDictionary **options) override |
| | Initialize codec options.
|
| |
| bool | is_va_profile_supported (VAProfile profile) |
| | Determines if a given VA profile is supported.
|
| |
| VAEntrypoint | select_va_entrypoint (VAProfile profile) |
| | Finds a supported VA entrypoint for the given VA profile.
|
| |
| int | set_frame (AVFrame *frame, AVBufferRef *hw_frames_ctx_buf) override |
| | Attach frame resources used by the next conversion or encode operation.
|
| |
| int | convert (platf::img_t &img) override |
| | Convert a captured image into the encoder input representation.
|
| |
| virtual void | init_hwframes (AVHWFramesContext *frames) |
| | Initialize the hwframes context.
|
| |
| virtual int | prepare_to_derive_context (int hw_device_type) |
| | Prepare to derive a context.
|
| |
|
|
egl::ctx_t | ctx |
| | EGL context used for VA-API frame conversion.
|
| |
|
egl::display_t | display |
| | EGL display created from the DRM render node.
|
| |
|
file_t | file |
| | DRM render-node file descriptor used by VAAPI and EGL.
|
| |
|
gbm::gbm_t | gbm |
| | GBM device used for buffer allocation.
|
| |
|
int | height |
| | Frame or display height in pixels.
|
| |
|
frame_t | hwframe |
| | FFmpeg hardware frame backed by a VAAPI surface.
|
| |
|
egl::nv12_t | nv12 |
| | EGL/OpenGL resources used for NV12 output frames.
|
| |
|
egl::sws_t | sws |
| | EGL/OpenGL conversion pipeline for VA-API frames.
|
| |
|
va::display_t::pointer | va_display |
| | VA display used to allocate and destroy surfaces.
|
| |
|
int | width |
| | Frame or display width in pixels.
|
| |
|
void * | data {} |
| | Backend-specific conversion state.
|
| |
|
AVFrame * | frame {} |
| | FFmpeg frame currently owned by the encode device.
|
| |
|
video::sunshine_colorspace_t | colorspace |
| | Colorspace metadata expected by the encoder.
|
| |
VAAPI encode device that imports captured frames into VA surfaces.
◆ apply_colorspace()
| void va::va_t::apply_colorspace |
( |
| ) |
|
|
inlineoverridevirtual |
◆ get_va_profile()
| VAProfile va::va_t::get_va_profile |
( |
AVCodecContext * | ctx | ) |
|
|
inline |
Determines the matching VA profile for the codec configuration.
- Parameters
-
| ctx | The FFmpeg codec context. |
- Returns
- The matching VA profile or
VAProfileNone on failure.
◆ init()
| int va::va_t::init |
( |
int | in_width, |
|
|
int | in_height, |
|
|
file_t && | render_device ) |
|
inline |
Initialize VAAPI display, EGL, and conversion resources.
- Parameters
-
| in_width | In width. |
| in_height | In height. |
| render_device | Render device. |
- Returns
- 0 on success; nonzero or negative platform status on failure.
◆ init_codec_options()
| void va::va_t::init_codec_options |
( |
AVCodecContext * | ctx, |
|
|
AVDictionary ** | options ) |
|
inlineoverridevirtual |
Initialize codec options.
- Parameters
-
| ctx | Native context object used by the operation or callback. |
| options | Request options or socket options to apply. |
Reimplemented from platf::avcodec_encode_device_t.
◆ is_va_profile_supported()
| bool va::va_t::is_va_profile_supported |
( |
VAProfile | profile | ) |
|
|
inline |
Determines if a given VA profile is supported.
- Parameters
-
| profile | The profile to match. |
- Returns
- Boolean value indicating if the profile is supported.
◆ select_va_entrypoint()
| VAEntrypoint va::va_t::select_va_entrypoint |
( |
VAProfile | profile | ) |
|
|
inline |
Finds a supported VA entrypoint for the given VA profile.
- Parameters
-
| profile | The profile to match. |
- Returns
- A valid encoding entrypoint or 0 on failure.
◆ set_frame()
| int va::va_t::set_frame |
( |
AVFrame * | frame, |
|
|
AVBufferRef * | hw_frames_ctx_buf ) |
|
inlineoverridevirtual |
Attach frame resources used by the next conversion or encode operation.
- Parameters
-
| frame | Video or graphics frame being processed. |
| hw_frames_ctx_buf | Hardware frames context buffer. |
- Returns
- Status from updating frame.
Reimplemented from platf::avcodec_encode_device_t.
The documentation for this class was generated from the following file: