|
| int | convert (platf::img_t &img) override |
| | Convert a captured VAAPI frame into system-memory encoder input.
|
| void | apply_colorspace () override |
| | Apply the configured colorspace metadata to the active frame.
|
| VAProfile | get_va_profile (AVCodecContext *codec_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 *codec_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 *new_frame, AVBufferRef *hw_frames_ctx_buf) override |
| | Attach frame resources used by the next conversion or encode operation.
|
| 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.
|
|
|
using | init_hw_device_fn_t = int (*)(avcodec_encode_device_t *encode_device, AVBufferRef **hw_device_buf) |
| | Callback signature for backend-specific FFmpeg hardware device initialization.
|
|
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.
|
|
ID3D11Device * | d3d11_device = nullptr |
| | Native D3D11 device borrowed while the encode device is alive.
|
|
AVFrame * | frame {} |
| | FFmpeg frame currently owned by the encode device.
|
|
bool | hardware = false |
| | Whether this device supplies hardware frames instead of software conversion.
|
|
init_hw_device_fn_t | init_hw_device = nullptr |
| | Optional backend-specific hardware device initializer.
|
|
video::sunshine_colorspace_t | colorspace |
| | Colorspace metadata expected by the encoder.
|
VAAPI encode path that copies converted frames through system memory.