Sunshine latest
Self-hosted game stream host for Moonlight.
va::va_t Class Reference
Inheritance diagram for va::va_t:
[legend]
Collaboration diagram for va::va_t:
[legend]

Public Member Functions

void apply_colorspace () override
 
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)
 
void init_codec_options (AVCodecContext *ctx, AVDictionary **options) override
 Provides a hook for allow platform-specific code to adjust 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
 Set the frame to be encoded.
 
- Public Member Functions inherited from platf::avcodec_encode_device_t
int convert (platf::img_t &img) override
 
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 Attributes

egl::ctx_t ctx
 
egl::display_t display
 
file_t file
 
gbm::gbm_t gbm
 
int height
 
frame_t hwframe
 
egl::nv12_t nv12
 
egl::sws_t sws
 
va::display_t::pointer va_display
 
int width
 
- Public Attributes inherited from platf::avcodec_encode_device_t
void * data {}
 
AVFrame * frame {}
 
- Public Attributes inherited from platf::encode_device_t
video::sunshine_colorspace_t colorspace
 

Member Function Documentation

◆ apply_colorspace()

void va::va_t::apply_colorspace ( )
inlineoverridevirtual

Reimplemented from platf::avcodec_encode_device_t.

◆ get_va_profile()

VAProfile va::va_t::get_va_profile ( AVCodecContext * ctx)
inline

Determines the matching VA profile for the codec configuration.

Parameters
ctxThe FFmpeg codec context.
Returns
The matching VA profile or VAProfileNone on failure.

◆ init_codec_options()

void va::va_t::init_codec_options ( AVCodecContext * ctx,
AVDictionary ** options )
inlineoverridevirtual

Provides a hook for allow platform-specific code to adjust codec options.

Note
Implementations may set or modify codec options prior to codec initialization.

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
profileThe 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
profileThe 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 )
inlineoverridevirtual

Set the frame to be encoded.

Note
Implementations must take ownership of 'frame'.

Reimplemented from platf::avcodec_encode_device_t.


The documentation for this class was generated from the following file: