diff options
| author | dec05eba <dec05eba@protonmail.com> | 2026-08-01 21:14:46 +0200 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2026-08-01 21:14:46 +0200 |
| commit | e8fca67df16025598f6ca7bcc31cfdcfb79feb7d (patch) | |
| tree | 4e20ecf3f93b5800ef40a1f48aa94c696a075587 /include/recorder/settings.h | |
| parent | 2b47b9926966b6e81ffda188193eb80653c6f14f (diff) | |
Move audio/video codec setup from main.cpp into C modules
Adds gsr_recorder_settings, a library-friendly settings struct embedded in
args_parser, so the new modules don't depend on the argument parser.
The codec functions return errors instead of exiting.
Diffstat (limited to 'include/recorder/settings.h')
| -rw-r--r-- | include/recorder/settings.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/include/recorder/settings.h b/include/recorder/settings.h new file mode 100644 index 0000000..8bb7f77 --- /dev/null +++ b/include/recorder/settings.h @@ -0,0 +1,63 @@ +#ifndef GSR_RECORDER_SETTINGS_H +#define GSR_RECORDER_SETTINGS_H + +#include <stdbool.h> +#include <stdint.h> +#include "../defs.h" +#include "../vec2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + gsr_video_encoder_hardware video_encoder; + gsr_pixel_format pixel_format; + gsr_framerate_mode framerate_mode; + gsr_color_range color_range; + gsr_tune tune; + gsr_video_codec video_codec; + gsr_audio_codec audio_codec; + gsr_bitrate_mode bitrate_mode; + gsr_video_quality video_quality; + gsr_replay_storage replay_storage; + + const char *capture_source; + const char *container_format; + const char *filename; + const char *replay_recording_directory; + const char *portal_session_token_filepath; + const char *recording_saved_script; + const char *ffmpeg_opts; + const char *ffmpeg_video_opts; + const char *ffmpeg_audio_opts; + bool verbose; + bool gl_debug; + bool fallback_cpu_encoding; + bool low_power; + bool exclude_metadata; + bool record_cursor; + bool date_folders; + bool restore_portal_session; + bool restart_replay_on_save; + bool write_first_frame_ts; + bool is_replaying; + bool is_livestream; + bool is_output_piped; + bool low_latency_recording; + bool very_old_gpu; + int64_t video_bitrate; + int64_t audio_bitrate; + int64_t fps; + int64_t replay_buffer_size_secs; + double keyint; + vec2i output_resolution; + vec2i region_size; + vec2i region_position; +} gsr_recorder_settings; + +#ifdef __cplusplus +} +#endif + +#endif /* GSR_RECORDER_SETTINGS_H */ |
