Sunshine0.0.5917
Sunshine 0.0.5917
Self-hosted game stream host for Moonlight.
Loading...
Searching...
No Matches
vulkan_encode.h
Go to the documentation of this file.
1
5#pragma once
6
8
9#include <cstdint>
10#include <map>
11#include <vector>
12
13extern "C" struct AVBufferRef;
14
15namespace vk {
16
25 std::map<std::uint32_t, std::vector<std::uint64_t>> get_supported_capture_modifiers();
26
33 int vulkan_init_avcodec_hardware_input_buffer(platf::avcodec_encode_device_t *encode_device, AVBufferRef **hw_device_buf);
34
42 std::unique_ptr<platf::avcodec_encode_device_t> make_avcodec_encode_device_ram(int width, int height);
43
53 std::unique_ptr<platf::avcodec_encode_device_t> make_avcodec_encode_device_vram(int width, int height, int offset_x, int offset_y);
54
60 bool validate();
61
62} // namespace vk
Declarations for common platform specific utilities.
std::unique_ptr< platf::avcodec_encode_device_t > make_avcodec_encode_device_ram(int, int)
Create a Vulkan encode device for RAM capture.
Definition vulkan_encode.cpp:1435
int vulkan_init_avcodec_hardware_input_buffer(platf::avcodec_encode_device_t *, AVBufferRef **hw_device_buf)
Initialize Vulkan hardware device for FFmpeg encoding.
Definition vulkan_encode.cpp:1411
std::map< std::uint32_t, std::vector< std::uint64_t > > get_supported_capture_modifiers()
Query DRM format modifiers supported by the Vulkan driver for common capture formats.
Definition vulkan_encode.cpp:119
std::unique_ptr< platf::avcodec_encode_device_t > make_avcodec_encode_device_vram(int w, int h, int offset_x, int offset_y)
Create a Vulkan encode device for VRAM capture.
Definition vulkan_encode.cpp:1427
bool validate()
Check if FFmpeg Vulkan Video encoding is available.
Definition vulkan_encode.cpp:1415