MXVK Vulkan Framework 0.33.1
C++20 Vulkan rendering framework for practical 2D and 3D application development with SDL3.
Loading...
Searching...
No Matches
EncodeOptions Struct Reference

User-configurable video encoder quality options. More...

#include <MXWrite/mxwrite.hpp>

Classes

struct  HdrInfo
 HDR output options. More...

Public Attributes

bool block_when_full = false
 Pace producers to encoder throughput instead of dropping frames.
std::string codec = "auto"
 Encoder selection policy or exact FFmpeg encoder name.
int crf = 18
 Constant Rate Factor.
std::string ffmpeg_options
 Additional FFmpeg-style video encoder options.
struct EncodeOptions::HdrInfo hdr
std::string preset = "medium"
 Encoder preset name.
bool realtime = false
 Enable low-latency settings.
std::string tune = ""
 Optional tuning mode.

Detailed Description

User-configurable video encoder quality options.

preset: x264 preset name — ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow. Mapped to NVENC p1..p7. tune: Software tune, or NVENC hq, uhq, ll, ull, or lossless. Empty uses the encoder default (NVENC hq). crf: Constant Rate Factor, 0 (lossless) .. 51 (worst). 18 is visually near-lossless; 23 is default for x264; 28 is typical "small file". For NVENC this is forwarded as cq. codec: "auto" (NVENC if available, else software), "software" (force software), "nvenc" (force resolution-selected NVENC), or any exact video encoder name registered by FFmpeg, such as "libx264", "libx265", "libsvtav1", "h264_qsv", or "hevc_vaapi". NVENC policy requests fall back to the matching software codec. ffmpeg_options: Additional FFmpeg-style video encoder options, for example "-preset p6 -tune lossless -profile:v rext -pix_fmt yuv444p". These options override the corresponding built-in settings. MXWrite uses libavcodec directly, so input/output filenames are not accepted. realtime: when true, applies low-latency defaults (tune=zerolatency for x264, tune=ll + zerolatency=1 for NVENC). Extra options may override them. block_when_full: when true, producer threads block if the encoder queue is full instead of dropping frames.

Definition at line 92 of file mxwrite.hpp.

Member Data Documentation

◆ block_when_full

bool EncodeOptions::block_when_full = false

Pace producers to encoder throughput instead of dropping frames.

Definition at line 99 of file mxwrite.hpp.

◆ codec

std::string EncodeOptions::codec = "auto"

Encoder selection policy or exact FFmpeg encoder name.

Definition at line 96 of file mxwrite.hpp.

◆ crf

int EncodeOptions::crf = 18

Constant Rate Factor.

Definition at line 95 of file mxwrite.hpp.

◆ ffmpeg_options

std::string EncodeOptions::ffmpeg_options

Additional FFmpeg-style video encoder options.

Definition at line 97 of file mxwrite.hpp.

◆ hdr

struct EncodeOptions::HdrInfo EncodeOptions::hdr

◆ preset

std::string EncodeOptions::preset = "medium"

Encoder preset name.

Definition at line 93 of file mxwrite.hpp.

◆ realtime

bool EncodeOptions::realtime = false

Enable low-latency settings.

Definition at line 98 of file mxwrite.hpp.

◆ tune

std::string EncodeOptions::tune = ""

Optional tuning mode.

Definition at line 94 of file mxwrite.hpp.


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