Add option to change video resolution

This commit is contained in:
dec05eba
2024-10-27 01:52:22 +02:00
parent 1d2fc77cfc
commit cfcee1a5d8
7 changed files with 133 additions and 4 deletions

View File

@@ -16,9 +16,12 @@ namespace gsr {
std::string record_area_option = "screen";
int32_t record_area_width = 0;
int32_t record_area_height = 0;
int32_t video_width = 0;
int32_t video_height = 0;
int32_t fps = 60;
int32_t video_bitrate = 5000;
bool merge_audio_tracks = true;
bool change_video_resolution = false;
std::vector<std::string> audio_tracks;
std::string color_range = "limited";
std::string video_quality = "very_high";

View File

@@ -6,6 +6,8 @@
#include <mglpp/graphics/Text.hpp>
#include <mglpp/graphics/Sprite.hpp>
#include <functional>
namespace gsr {
class CheckBox : public Widget {
public:
@@ -20,6 +22,8 @@ namespace gsr {
void set_checked(bool checked, bool animated = false);
bool is_checked() const;
std::function<void(bool checked)> on_changed;
private:
void apply_animation();
mgl::vec2f get_checkbox_size();

View File

@@ -39,8 +39,13 @@ namespace gsr {
std::unique_ptr<Entry> create_area_height_entry();
std::unique_ptr<List> create_area_size();
std::unique_ptr<List> create_area_size_section();
std::unique_ptr<Entry> create_video_width_entry();
std::unique_ptr<Entry> create_video_height_entry();
std::unique_ptr<List> create_video_resolution();
std::unique_ptr<List> create_video_resolution_section();
std::unique_ptr<CheckBox> create_restore_portal_session_checkbox();
std::unique_ptr<List> create_restore_portal_session_section();
std::unique_ptr<Widget> create_change_video_resolution_section();
std::unique_ptr<Widget> create_capture_target(const GsrInfo &gsr_info);
std::unique_ptr<ComboBox> create_audio_track_selection_checkbox();
std::unique_ptr<Button> create_remove_audio_track_button(List *audio_device_list_ptr);
@@ -107,6 +112,7 @@ namespace gsr {
List *settings_list_ptr = nullptr;
List *select_window_list_ptr = nullptr;
List *area_size_list_ptr = nullptr;
List *video_resolution_list_ptr = nullptr;
List *restore_portal_session_list_ptr = nullptr;
List *color_range_list_ptr = nullptr;
Widget *video_codec_ptr = nullptr;
@@ -115,11 +121,14 @@ namespace gsr {
ComboBox *record_area_box_ptr = nullptr;
Entry *area_width_entry_ptr = nullptr;
Entry *area_height_entry_ptr = nullptr;
Entry *video_width_entry_ptr = nullptr;
Entry *video_height_entry_ptr = nullptr;
Entry *framerate_entry_ptr = nullptr;
Entry *video_bitrate_entry_ptr = nullptr;
List *video_bitrate_list_ptr = nullptr;
List *audio_devices_list_ptr = nullptr;
CheckBox *merge_audio_tracks_checkbox_ptr = nullptr;
CheckBox *change_video_resolution_checkbox_ptr = nullptr;
ComboBox *color_range_box_ptr = nullptr;
ComboBox *video_quality_box_ptr = nullptr;
ComboBox *video_codec_box_ptr = nullptr;