|
Sunshine master
Self-hosted game stream host for Moonlight.
|
VAAPI encode path that copies converted frames through system memory. More...
Public Member Functions | |
| int | convert (platf::img_t &img) override |
| Convert a captured VAAPI frame into system-memory encoder input. | |
Public Member Functions inherited from va::va_t | |
| 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. | |
Public Member Functions inherited from platf::avcodec_encode_device_t | |
| 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. | |
Public Member Functions inherited from platf::encode_device_t | |
Additional Inherited Members | |
Public Attributes inherited from va::va_t | |
| 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. | |
Public Attributes inherited from platf::avcodec_encode_device_t | |
| void * | data {} |
| Backend-specific conversion state. | |
| AVFrame * | frame {} |
| FFmpeg frame currently owned by the encode device. | |
Public Attributes inherited from platf::encode_device_t | |
| video::sunshine_colorspace_t | colorspace |
| Colorspace metadata expected by the encoder. | |
VAAPI encode path that copies converted frames through system memory.
|
inlineoverridevirtual |
Convert a captured VAAPI frame into system-memory encoder input.
| img | Image or frame object to read from or populate. |
Reimplemented from platf::avcodec_encode_device_t.