]> git.sesse.net Git - nageru/blobdiff - nageru/flags.h
IWYU-fix nageru/*.h.
[nageru] / nageru / flags.h
index 734e290420bb995652ecfd9910003a7f40c57e82..7704410ec5d7f5feaadae43cd757a24b2a2f93a6 100644 (file)
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include "defs.h"
+#include "shared/shared_defs.h"
 #include "ycbcr_interpretation.h"
 
 struct Flags {
@@ -16,10 +17,10 @@ struct Flags {
        int max_num_cards = MAX_VIDEO_CARDS;
        std::string va_display;
        bool fake_cards_audio = false;
-       bool uncompressed_video_to_http = false;
        bool x264_video_to_http = false;
        bool x264_video_to_disk = false;  // Disables Quick Sync entirely. Implies x264_video_to_http == true.
        bool x264_separate_disk_encode = false;  // Disables Quick Sync entirely. Implies x264_video_to_disk == true.
+       bool av1_video_to_http = false;
        std::vector<std::string> theme_dirs { ".", PREFIX "/share/nageru" };
        std::string recording_dir = ".";
        std::string theme_filename = "theme.lua";
@@ -40,10 +41,13 @@ struct Flags {
        bool x264_speedcontrol_verbose = false;
        int x264_bitrate = -1;  // In kilobit/sec. -1 = not set = DEFAULT_X264_OUTPUT_BIT_RATE.
        float x264_crf = HUGE_VAL;  // From 51 - QP_MAX_SPEC to 51. HUGE_VAL = not set = use x264_bitrate instead.
-       int x264_vbv_max_bitrate = -1;  // In kilobits. 0 = no limit, -1 = same as <x264_bitrate> (CBR).
-       int x264_vbv_buffer_size = -1;  // In kilobits. 0 = one-frame VBV, -1 = same as <x264_bitrate> (one-second VBV).
        std::vector<std::string> x264_extra_param;  // In “key[,value]” format.
 
+       int av1_preset = DEFAULT_AV1_PRESET;
+       int av1_bitrate = DEFAULT_AV1_OUTPUT_BIT_RATE;
+       int av1_fps_num = DEFAULT_AV1_FPS_NUM, av1_fps_den = DEFAULT_AV1_FPS_DEN;
+       std::vector<std::string> av1_extra_param;  // In “key[,value]” format.
+
        std::string x264_separate_disk_preset;  // Empty will be overridden by X264_DEFAULT_PRESET, unless speedcontrol is set.
        std::string x264_separate_disk_tune = X264_DEFAULT_TUNE;
        int x264_separate_disk_bitrate = -1;
@@ -72,16 +76,19 @@ struct Flags {
        bool display_timecode_in_stream = false;
        bool display_timecode_on_stdout = false;
        bool enable_quick_cut_keys = false;
-       bool ten_bit_input = false;
-       bool ten_bit_output = false;  // Implies x264_video_to_disk == true and x264_bit_depth == 10.
+       int bit_depth = 8;  // 8 or 10. 10 implies x264_video_to_disk == true.
        YCbCrInterpretation ycbcr_interpretation[MAX_VIDEO_CARDS];
        bool transcode_video = true;  // Kaeru only.
        bool transcode_audio = true;  // Kaeru only.
        bool enable_audio = true;  // Kaeru only. If false, then transcode_audio is also false.
-       int x264_bit_depth = 8;  // Not user-settable.
        bool use_zerocopy = false;  // Not user-settable.
        bool fullscreen = false;
        std::map<unsigned, unsigned> card_to_mjpeg_stream_export;  // If a card is not in the map, it is not exported.
+       std::string srt_destination_host;
+       std::string srt_destination_port;
+       std::string srt_streamid;
+       std::string srt_passphrase;
+       int srt_output_latency_ms = DEFAULT_SRT_OUTPUT_LATENCY_MS;
 };
 extern Flags global_flags;