]> git.sesse.net Git - nageru/blobdiff - nageru/flags.h
Support AV1 streaming over HTTP, via SVT-AV1.
[nageru] / nageru / flags.h
index bbe84c254e17c73f6977e983134ffe04f39c1176..96a4160f80515c4a2c815f0084f60f08d5b21f50 100644 (file)
@@ -19,6 +19,8 @@ struct Flags {
        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";
@@ -42,6 +44,18 @@ struct Flags {
        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;
+       float x264_separate_disk_crf = HUGE_VAL;
+       std::vector<std::string> x264_separate_disk_extra_param;  // In “key[,value]” format.
+
        std::string v4l_output_device;  // Empty if none.
        bool enable_alsa_output = true;
        std::map<int, int> default_stream_mapping;
@@ -56,6 +70,7 @@ struct Flags {
        int output_card = -1;
        double output_buffer_frames = 6.0;
        double output_slop_frames = 0.5;
+       bool output_card_is_master = true;
        int max_input_queue_frames = 6;
        int http_port = DEFAULT_HTTPD_PORT;
        int srt_port = DEFAULT_SRT_PORT;  // -1 for none.
@@ -66,6 +81,7 @@ struct Flags {
        bool ten_bit_input = false;
        bool ten_bit_output = false;  // Implies x264_video_to_disk == true and x264_bit_depth == 10.
        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.