![]() |
Sunshine latest
Self-hosted game stream host for Moonlight.
|
Definitions for VA-API hardware accelerated capture. More...
#include <fcntl.h>#include <format>#include <sstream>#include <string>#include <libavcodec/avcodec.h>#include <libavutil/pixdesc.h>#include <va/va.h>#include <va/va_drm.h>#include "graphics.h"#include "misc.h"#include "src/config.h"#include "src/logging.h"#include "src/platform/common.h"#include "src/utility.h"#include "src/video.h"Classes | |
| struct | va::AVVAAPIDeviceContext |
| struct | va::DRMPRIMESurfaceDescriptor |
| class | va::va_ram_t |
| class | va::va_t |
| class | va::va_vram_t |
| struct | va::VAAPIDevicePriv |
Typedefs | |
| typedef struct va::AVVAAPIDeviceContext | va::AVVAAPIDeviceContext |
| using | va::display_t = util::safe_ptr_v2<void, VAStatus, vaTerminate> |
| typedef struct va::VAAPIDevicePriv | va::VAAPIDevicePriv |
| using | va::VADisplay = void * |
| using | va::VAGenericID = unsigned int |
| using | va::VAStatus = int |
| using | va::VASurfaceID = VAGenericID |
Functions | |
| std::unique_ptr< platf::avcodec_encode_device_t > | va::make_avcodec_encode_device (int width, int height, bool vram) |
| std::unique_ptr< platf::avcodec_encode_device_t > | va::make_avcodec_encode_device (int width, int height, file_t &&card, int offset_x, int offset_y, bool vram) |
| std::unique_ptr< platf::avcodec_encode_device_t > | va::make_avcodec_encode_device (int width, int height, int offset_x, int offset_y, bool vram) |
| int | va::vaapi_init_avcodec_hardware_input_buffer (platf::avcodec_encode_device_t *encode_device, AVBufferRef **hw_device_buf) |
| bool | va::validate (int fd) |
| VAStatus | vaSyncBuffer (VADisplay dpy, VABufferID buf_id, uint64_t timeout_ns) |
Variables | |
| constexpr auto | va::EXPORT_SURFACE_SEPARATE_LAYERS = 0x0004 |
| constexpr auto | va::EXPORT_SURFACE_WRITE_ONLY = 0x0002 |
| constexpr auto | va::SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 = 0x40000000 |
Definitions for VA-API hardware accelerated capture.
| typedef struct va::AVVAAPIDeviceContext va::AVVAAPIDeviceContext |
VAAPI connection details.
Allocated as AVHWDeviceContext.hwctx
| typedef struct va::VAAPIDevicePriv va::VAAPIDevicePriv |
This is a private structure of FFmpeg, I need this to manually create a VAAPI hardware context
xdisplay will not be used internally by FFmpeg
| std::unique_ptr< platf::avcodec_encode_device_t > va::make_avcodec_encode_device | ( | int | width, |
| int | height, | ||
| bool | vram ) |
Width --> Width of the image Height --> Height of the image offset_x --> Horizontal offset of the image in the texture offset_y --> Vertical offset of the image in the texture file_t card --> The file descriptor of the render device used for encoding