Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gpu-screen-recorder-gtk for 
openSUSE:Factory checked in at 2024-10-12 13:30:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk (Old)
 and      /work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpu-screen-recorder-gtk"

Sat Oct 12 13:30:34 2024 rev:6 rq:1207361 version:20241012

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk/gpu-screen-recorder-gtk.changes
  2024-09-24 17:32:26.206970639 +0200
+++ 
/work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.19354/gpu-screen-recorder-gtk.changes
       2024-10-12 13:36:12.266351882 +0200
@@ -1,0 +2,8 @@
+Sat Oct 12 00:16:09 UTC 2024 - mantari...@pm.me
+
+- Update to version 20241012:
+  * Constant bitrate is recommended for live streaming
+  * Change default bitrate quality
+  * Use -q instead of -bitrate for constant bitrate quality
+
+-------------------------------------------------------------------

Old:
----
  gpu-screen-recorder-gtk-20240921.tar.zst

New:
----
  gpu-screen-recorder-gtk-20241012.tar.zst

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpu-screen-recorder-gtk.spec ++++++
--- /var/tmp/diff_new_pack.fywws9/_old  2024-10-12 13:36:12.698369821 +0200
+++ /var/tmp/diff_new_pack.fywws9/_new  2024-10-12 13:36:12.702369988 +0200
@@ -19,7 +19,7 @@
 %bcond_with test
 %define appid   com.dec05eba.gpu_screen_recorder
 Name:           gpu-screen-recorder-gtk
-Version:        20240921
+Version:        20241012
 Release:        0
 Summary:        GTK frontend for GPU Screen Recorder
 License:        GPL-3.0-only

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.fywws9/_old  2024-10-12 13:36:12.750371981 +0200
+++ /var/tmp/diff_new_pack.fywws9/_new  2024-10-12 13:36:12.754372147 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://repo.dec05eba.com/gpu-screen-recorder-gtk.git</param>
-              <param 
name="changesrevision">7ee360b0d44956691200791746880bf704c0c0b1</param></service></servicedata>
+              <param 
name="changesrevision">48d34f51a79883f14f2715ade1e2ab998176a863</param></service></servicedata>
 (No newline at EOF)
 

++++++ gpu-screen-recorder-gtk-20240921.tar.zst -> 
gpu-screen-recorder-gtk-20241012.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240921/TODO 
new/gpu-screen-recorder-gtk-20241012/TODO
--- old/gpu-screen-recorder-gtk-20240921/TODO   2024-09-21 22:33:43.000000000 
+0200
+++ new/gpu-screen-recorder-gtk-20241012/TODO   2024-10-12 01:29:52.000000000 
+0200
@@ -4,7 +4,6 @@
 Disable overclocking and show some kind of sign that overclocking is not 
possible (if coolbits not set).
 Button (in the field) to remove hotkey.
 Error if polkit agent is not running (pkexec --help may work but the agent 
might not be running anyways).
-Fix gui crash on stop recording on sway.
 Re-enable wlroots based capture when it's fixed.
 Add translation support (using gettext, which uses .mo files and _ macro). It 
should be easy for non-devs to contribute.
     But how? maybe have a page that links to the english translation files (or 
translation directory) in git and give instructions,
@@ -62,4 +61,4 @@
 
 Use modprobe command. modprobe on system startup in modprobe.d directory is 
only available for udev, other systems need to add it to linux kernel boot 
parameters (is this also needed for nvidia open kernel module driver?).
 
-Save gpu screen recorder status in $XDG_RUNTIME_DIR.
+Save gpu screen recorder status in $XDG_RUNTIME_DIR.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gpu-screen-recorder-gtk-20240921/com.dec05eba.gpu_screen_recorder.appdata.xml
 
new/gpu-screen-recorder-gtk-20241012/com.dec05eba.gpu_screen_recorder.appdata.xml
--- 
old/gpu-screen-recorder-gtk-20240921/com.dec05eba.gpu_screen_recorder.appdata.xml
   2024-09-21 22:33:43.000000000 +0200
+++ 
new/gpu-screen-recorder-gtk-20241012/com.dec05eba.gpu_screen_recorder.appdata.xml
   2024-10-12 01:29:52.000000000 +0200
@@ -80,6 +80,14 @@
     </screenshots>
 
     <releases>
+        <release version="4.2.0" date="2024-10-11">
+            <description>
+                <ul>
+                    <li>Better frame timing for smoother video, especially 
when recording a game that runs at the same fps as the recording or lower.</li>
+                    <li>Add constant bitrate option, for better live streaming 
experience and for lower file size at the cost of quality.</li>
+                </ul>
+            </description>
+        </release>
         <release version="4.1.11" date="2024-09-21">
             <description>
                 <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240921/meson.build 
new/gpu-screen-recorder-gtk-20241012/meson.build
--- old/gpu-screen-recorder-gtk-20240921/meson.build    2024-09-21 
22:33:43.000000000 +0200
+++ new/gpu-screen-recorder-gtk-20241012/meson.build    2024-10-12 
01:29:52.000000000 +0200
@@ -1,4 +1,4 @@
-project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '4.1.11', 
default_options : ['warning_level=2'])
+project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '4.2.0', 
default_options : ['warning_level=2'])
 
 add_project_arguments('-Wshadow', language : ['c', 'cpp'])
 if get_option('buildtype') == 'debug'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240921/project.conf 
new/gpu-screen-recorder-gtk-20241012/project.conf
--- old/gpu-screen-recorder-gtk-20240921/project.conf   2024-09-21 
22:33:43.000000000 +0200
+++ new/gpu-screen-recorder-gtk-20241012/project.conf   2024-10-12 
01:29:52.000000000 +0200
@@ -1,7 +1,7 @@
 [package]
 name = "gpu-screen-recorder-gtk"
 type = "executable"
-version = "4.1.11"
+version = "4.2.0"
 platforms = ["posix"]
 
 [config]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240921/src/config.hpp 
new/gpu-screen-recorder-gtk-20241012/src/config.hpp
--- old/gpu-screen-recorder-gtk-20240921/src/config.hpp 2024-09-21 
22:33:43.000000000 +0200
+++ new/gpu-screen-recorder-gtk-20241012/src/config.hpp 2024-10-12 
01:29:52.000000000 +0200
@@ -24,6 +24,7 @@
     int32_t record_area_width = 0;
     int32_t record_area_height = 0;
     int32_t fps = 60;
+    int32_t video_bitrate = 5000;
     bool merge_audio_tracks = true;
     std::vector<std::string> audio_input;
     std::string color_range;
@@ -305,6 +306,7 @@
         {"main.record_area_width", {CONFIG_TYPE_I32, 
&config.main_config.record_area_width}},
         {"main.record_area_height", {CONFIG_TYPE_I32, 
&config.main_config.record_area_height}},
         {"main.fps", {CONFIG_TYPE_I32, &config.main_config.fps}},
+        {"main.video_bitrate", {CONFIG_TYPE_I32, 
&config.main_config.video_bitrate}},
         {"main.merge_audio_tracks", {CONFIG_TYPE_BOOL, 
&config.main_config.merge_audio_tracks}},
         {"main.audio_input", {CONFIG_TYPE_STRING_ARRAY, 
&config.main_config.audio_input}},
         {"main.color_range", {CONFIG_TYPE_STRING, 
&config.main_config.color_range}},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240921/src/main.cpp 
new/gpu-screen-recorder-gtk-20241012/src/main.cpp
--- old/gpu-screen-recorder-gtk-20240921/src/main.cpp   2024-09-21 
22:33:43.000000000 +0200
+++ new/gpu-screen-recorder-gtk-20241012/src/main.cpp   2024-10-12 
01:29:52.000000000 +0200
@@ -51,6 +51,7 @@
 static PageNavigationUserdata page_navigation_userdata;
 static Cursor crosshair_cursor;
 static GtkSpinButton *fps_entry;
+static GtkSpinButton *video_bitrate_entry;
 static GtkLabel *area_size_label;
 static GtkGrid *area_size_grid;
 static GtkSpinButton *area_width_entry;
@@ -103,6 +104,7 @@
 static GtkGrid *audio_codec_grid;
 static GtkGrid *color_range_grid;
 static GtkGrid *framerate_mode_grid;
+static GtkGrid *video_bitrate_grid;
 static GtkComboBoxText *view_combo_box;
 static GtkGrid *overclock_grid;
 static GtkWidget *overclock_button;
@@ -854,6 +856,7 @@
         config.main_config.record_area_height = 
gtk_spin_button_get_value_as_int(area_height_entry);
     }
     config.main_config.fps = gtk_spin_button_get_value_as_int(fps_entry);
+    config.main_config.video_bitrate = 
gtk_spin_button_get_value_as_int(video_bitrate_entry);
     config.main_config.merge_audio_tracks = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(merge_audio_tracks_button));
 
     config.main_config.audio_input.clear();
@@ -1571,6 +1574,18 @@
     return false;
 }
 
+static void add_quality_command_line_args(std::vector<const char*> &args, 
const char *quality_input_str, const char *video_bitrate_str) {
+    if(strcmp(quality_input_str, "custom") == 0) {
+        args.push_back("-bm");
+        args.push_back("cbr");
+        args.push_back("-q");
+        args.push_back(video_bitrate_str);
+    } else {
+        args.push_back("-q");
+        args.push_back(quality_input_str);
+    }
+}
+
 static gboolean on_start_replay_button_click(GtkButton *button, gpointer 
userdata) {
     GtkApplication *app = (GtkApplication*)userdata;
     const gchar *dir = gtk_button_get_label(replay_file_chooser_button);
@@ -1613,10 +1628,10 @@
 
     save_configs();
 
-    int fps = gtk_spin_button_get_value_as_int(fps_entry);
-    int replay_time = gtk_spin_button_get_value_as_int(replay_time_entry);
-    int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
-    int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
+    const int fps = gtk_spin_button_get_value_as_int(fps_entry);
+    const int replay_time = 
gtk_spin_button_get_value_as_int(replay_time_entry);
+    const int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
+    const int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
 
     char dir_tmp[PATH_MAX];
     strcpy(dir_tmp, dir);
@@ -1647,6 +1662,7 @@
     const gchar* framerate_mode_input_str = 
gtk_combo_box_get_active_id(GTK_COMBO_BOX(framerate_mode_input_menu));
     const bool record_cursor = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(record_cursor_button));
     const bool restore_portal_session = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(restore_portal_session_button));
+    const std::string video_bitrate_str = 
std::to_string(gtk_spin_button_get_value_as_int(video_bitrate_entry));
 
     const char *encoder = "gpu";
     std::string video_codec_input_str = 
video_codec_selection_menu_get_active_id();
@@ -1666,9 +1682,11 @@
     snprintf(area, sizeof(area), "%dx%d", record_width, record_height);
 
     std::vector<const char*> args = {
-        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-q", quality_input_str, "-k", video_codec_input_str.c_str(), "-ac", 
audio_codec_input_str, "-f", fps_str.c_str(), "-cursor", record_cursor ? "yes" 
: "no", "-restore-portal-session", restore_portal_session ? "yes" : "no", 
"-cr", color_range_input_str, "-r", replay_time_str.c_str(), "-encoder", 
encoder, "-o", dir
+        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-k", video_codec_input_str.c_str(), "-ac", audio_codec_input_str, "-f", 
fps_str.c_str(), "-cursor", record_cursor ? "yes" : "no", 
"-restore-portal-session", restore_portal_session ? "yes" : "no", "-cr", 
color_range_input_str, "-r", replay_time_str.c_str(), "-encoder", encoder, 
"-o", dir
     };
 
+    add_quality_command_line_args(args, quality_input_str, 
video_bitrate_str.c_str());
+
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(overclock_button)))
         args.insert(args.end(), { "-oc", "yes" });
 
@@ -1811,9 +1829,9 @@
 
     save_configs();
 
-    int fps = gtk_spin_button_get_value_as_int(fps_entry);
-    int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
-    int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
+    const int fps = gtk_spin_button_get_value_as_int(fps_entry);
+    const int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
+    const int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
 
     bool follow_focused = false;
     std::string window_str = record_area_selection_menu_get_active_id();
@@ -1837,6 +1855,7 @@
     const gchar* framerate_mode_input_str = 
gtk_combo_box_get_active_id(GTK_COMBO_BOX(framerate_mode_input_menu));
     const bool record_cursor = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(record_cursor_button));
     const bool restore_portal_session = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(restore_portal_session_button));
+    const std::string video_bitrate_str = 
std::to_string(gtk_spin_button_get_value_as_int(video_bitrate_entry));
 
     const char *encoder = "gpu";
     std::string video_codec_input_str = 
video_codec_selection_menu_get_active_id();
@@ -1866,9 +1885,11 @@
     snprintf(area, sizeof(area), "%dx%d", record_width, record_height);
 
     std::vector<const char*> args = {
-        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-q", quality_input_str, "-k", video_codec_input_str.c_str(), "-ac", 
audio_codec_input_str, "-f", fps_str.c_str(), "-cursor", record_cursor ? "yes" 
: "no", "-restore-portal-session", restore_portal_session ? "yes" : "no", 
"-cr", color_range_input_str, "-encoder", encoder, "-o", 
record_file_current_filename.c_str()
+        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-k", video_codec_input_str.c_str(), "-ac", audio_codec_input_str, "-f", 
fps_str.c_str(), "-cursor", record_cursor ? "yes" : "no", 
"-restore-portal-session", restore_portal_session ? "yes" : "no", "-cr", 
color_range_input_str, "-encoder", encoder, "-o", 
record_file_current_filename.c_str()
     };
 
+    add_quality_command_line_args(args, quality_input_str, 
video_bitrate_str.c_str());
+
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(overclock_button)))
         args.insert(args.end(), { "-oc", "yes" });
 
@@ -1966,9 +1987,9 @@
 
     save_configs();
 
-    int fps = gtk_spin_button_get_value_as_int(fps_entry);
-    int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
-    int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
+    const int fps = gtk_spin_button_get_value_as_int(fps_entry);
+    const int record_width = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : gtk_spin_button_get_value_as_int(area_width_entry);
+    const int record_height = gsr_info.system_info.display_server == 
DisplayServer::WAYLAND ? 0 : 
gtk_spin_button_get_value_as_int(area_height_entry);
 
     bool follow_focused = false;
     std::string window_str = record_area_selection_menu_get_active_id();
@@ -2021,6 +2042,7 @@
     const gchar* framerate_mode_input_str = 
gtk_combo_box_get_active_id(GTK_COMBO_BOX(framerate_mode_input_menu));
     const bool record_cursor = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(record_cursor_button));
     const bool restore_portal_session = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(restore_portal_session_button));
+    const std::string video_bitrate_str = 
std::to_string(gtk_spin_button_get_value_as_int(video_bitrate_entry));
 
     const char *encoder = "gpu";
     std::string video_codec_input_str = 
video_codec_selection_menu_get_active_id();
@@ -2040,9 +2062,11 @@
     snprintf(area, sizeof(area), "%dx%d", record_width, record_height);
 
     std::vector<const char*> args = {
-        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-q", quality_input_str, "-k", video_codec_input_str.c_str(), "-ac", 
audio_codec_input_str, "-f", fps_str.c_str(), "-cursor", record_cursor ? "yes" 
: "no", "-restore-portal-session", restore_portal_session ? "yes" : "no", 
"-cr", color_range_input_str, "-encoder", encoder, "-o", stream_url.c_str()
+        "gpu-screen-recorder", "-w", window_str.c_str(), "-c", container_str, 
"-k", video_codec_input_str.c_str(), "-ac", audio_codec_input_str, "-f", 
fps_str.c_str(), "-cursor", record_cursor ? "yes" : "no", 
"-restore-portal-session", restore_portal_session ? "yes" : "no", "-cr", 
color_range_input_str, "-encoder", encoder, "-o", stream_url.c_str()
     };
 
+    add_quality_command_line_args(args, quality_input_str, 
video_bitrate_str.c_str());
+
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(overclock_button)))
         args.insert(args.end(), { "-oc", "yes" });
 
@@ -2152,6 +2176,13 @@
     
gtk_widget_set_visible(GTK_WIDGET(show_recording_saved_notification_button), 
advanced_view);
 }
 
+static void quality_combo_box_change_callback(GtkComboBox *widget, gpointer 
userdata) {
+    (void)userdata;
+    const gchar *selected_view = gtk_combo_box_get_active_id(widget);
+    const bool custom_selected = strcmp(selected_view, "custom") == 0;
+    gtk_widget_set_visible(GTK_WIDGET(video_bitrate_grid), custom_selected);
+}
+
 static void stream_service_item_change_callback(GtkComboBox *widget, gpointer 
userdata) {
     (void)userdata;
 
@@ -2763,17 +2794,27 @@
     gtk_grid_attach(color_range_grid, GTK_WIDGET(color_range_input_menu), 1, 
0, 1, 1);
     gtk_combo_box_set_active(GTK_COMBO_BOX(color_range_input_menu), 0);
 
-    GtkGrid *quality_grid = GTK_GRID(gtk_grid_new());
-    gtk_grid_attach(grid, GTK_WIDGET(quality_grid), 0, grid_row++, 2, 1);
-    gtk_grid_attach(quality_grid, gtk_label_new("Video quality: "), 0, 0, 1, 
1);
+    GtkGrid *video_quality_grid = GTK_GRID(gtk_grid_new());
+    gtk_grid_attach(grid, GTK_WIDGET(video_quality_grid), 0, grid_row++, 2, 1);
+    gtk_grid_attach(video_quality_grid, gtk_label_new("Video quality: "), 0, 
0, 1, 1);
     quality_input_menu = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new());
+    gtk_combo_box_text_append(quality_input_menu, "custom", "Custom (Constant 
bitrate, recommended for live streaming)");
     gtk_combo_box_text_append(quality_input_menu, "medium", "Medium");
-    gtk_combo_box_text_append(quality_input_menu, "high", "High (Recommended 
for live streaming)");
+    gtk_combo_box_text_append(quality_input_menu, "high", "High");
     gtk_combo_box_text_append(quality_input_menu, "very_high", "Very High 
(Recommended)");
     gtk_combo_box_text_append(quality_input_menu, "ultra", "Ultra");
     gtk_widget_set_hexpand(GTK_WIDGET(quality_input_menu), true);
-    gtk_grid_attach(quality_grid, GTK_WIDGET(quality_input_menu), 1, 0, 1, 1);
+    gtk_grid_attach(video_quality_grid, GTK_WIDGET(quality_input_menu), 1, 0, 
1, 1);
     gtk_combo_box_set_active(GTK_COMBO_BOX(quality_input_menu), 0);
+    g_signal_connect(quality_input_menu, "changed", 
G_CALLBACK(quality_combo_box_change_callback), quality_input_menu);
+
+    video_bitrate_grid = GTK_GRID(gtk_grid_new());
+    gtk_grid_attach(grid, GTK_WIDGET(video_bitrate_grid), 0, grid_row++, 2, 1);
+    gtk_grid_attach(video_bitrate_grid, gtk_label_new("Video bitrate (kbps): 
"), 0, 0, 1, 1);
+    video_bitrate_entry = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1.0, 
1000000.0, 1.0));
+    gtk_spin_button_set_value(video_bitrate_entry, 5000.0);
+    gtk_widget_set_hexpand(GTK_WIDGET(video_bitrate_entry), true);
+    gtk_grid_attach(video_bitrate_grid, GTK_WIDGET(video_bitrate_entry), 1, 0, 
1, 1);
 
     video_codec_grid = GTK_GRID(gtk_grid_new());
     gtk_grid_attach(grid, GTK_WIDGET(video_codec_grid), 0, grid_row++, 2, 1);
@@ -3672,7 +3713,7 @@
     if(config.main_config.color_range != "limited" && 
config.main_config.color_range != "full")
         config.main_config.color_range = "limited";
 
-    if(config.main_config.quality != "medium" && config.main_config.quality != 
"high" && config.main_config.quality != "very_high" && 
config.main_config.quality != "ultra")
+    if(config.main_config.quality != "custom" && config.main_config.quality != 
"medium" && config.main_config.quality != "high" && config.main_config.quality 
!= "very_high" && config.main_config.quality != "ultra")
         config.main_config.quality = "very_high";
 
     if(config.main_config.audio_codec != "opus" && 
config.main_config.audio_codec != "aac")
@@ -3701,6 +3742,7 @@
         gtk_spin_button_set_value(area_height_entry, 
config.main_config.record_area_height);
     }
     gtk_spin_button_set_value(fps_entry, config.main_config.fps);
+    gtk_spin_button_set_value(video_bitrate_entry, 
config.main_config.video_bitrate);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(merge_audio_tracks_button), 
config.main_config.merge_audio_tracks);
 
     for(const std::string &audio_input : config.main_config.audio_input) {
@@ -3740,6 +3782,7 @@
     gtk_combo_box_set_active_id(GTK_COMBO_BOX(view_combo_box), 
config.main_config.advanced_view ? "advanced" : "simple");
 
     view_combo_box_change_callback(GTK_COMBO_BOX(view_combo_box), 
view_combo_box);
+    quality_combo_box_change_callback(GTK_COMBO_BOX(quality_input_menu), 
quality_input_menu);
     if(gsr_info.system_info.display_server != DisplayServer::WAYLAND) {
         if(!config_empty) {
             for(int i = 0; i < num_hotkeys; ++i) {

Reply via email to