aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--src/main.cpp14
2 files changed, 9 insertions, 6 deletions
diff --git a/README.md b/README.md
index ca2ca58..7ade396 100644
--- a/README.md
+++ b/README.md
@@ -13,6 +13,7 @@ All recording modes record in hevc (h265) in a mp4 format, except live streaming
This program depends on [gpu-screen-recorder](https://git.dec05eba.com/gpu-screen-recorder/) which needs to be installed first.\
Run `./install.sh` as root or if you are running Arch Linux, then you can find gpu screen recorder gtk on aur under the name gpu-screen-recorder-gtk-git (`yay -S gpu-screen-recorder-gtk-git`).\
Dependencies needed when building using `build.sh` or `install.sh`: `gtk3 libx11 libxrandr libpulse`.\
+You can also install gpu screen recorder (the gtk gui version) from flathub: https://flathub.org/apps/details/com.dec05eba.gpu_screen_recorder. This flatpak includes gpu-screen-recorder so no need to install that first.\
Recording monitors requires a gpu with NvFBC support (note: this is not required when recording a single window!). Normally only tesla and quadro gpus support this, but by using [nvidia-patch](https://github.com/keylase/nvidia-patch) or [nvlax](https://github.com/illnyang/nvlax) you can do this on all gpus that support nvenc as well (gpus as old as the nvidia 600 series), provided you are not using outdated gpu drivers.
## Screenshots
diff --git a/src/main.cpp b/src/main.cpp
index 744bbe2..0c7438e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -163,14 +163,14 @@ static void enable_stream_record_button_if_info_filled() {
if(strcmp(selected_window_area, "window") == 0 && select_window_userdata.selected_window == None)
return;
- bool allow_streaming = false;
- for_each_used_audio_input(GTK_LIST_BOX(audio_input_used_list), [&allow_streaming](const AudioRow *audio_row) {
- allow_streaming = true;
+ int num_audio_tracks = 0;
+ for_each_used_audio_input(GTK_LIST_BOX(audio_input_used_list), [&num_audio_tracks](const AudioRow *audio_row) {
+ ++num_audio_tracks;
});
gtk_widget_set_sensitive(GTK_WIDGET(replay_button), true);
gtk_widget_set_sensitive(GTK_WIDGET(record_button), true);
- gtk_widget_set_sensitive(GTK_WIDGET(stream_button), allow_streaming);
+ gtk_widget_set_sensitive(GTK_WIDGET(stream_button), num_audio_tracks <= 1);
}
static GtkWidget* create_used_audio_input_row(const char *id, const char *text) {
@@ -1266,7 +1266,9 @@ static GtkWidget* create_common_settings_page(GtkStack *stack, GtkApplication *a
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);
quality_input_menu = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new());
- gtk_combo_box_text_append(quality_input_menu, "very_high", "Very High");
+ 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, "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);
@@ -1600,7 +1602,7 @@ static void load_config() {
else if(config.main_config.fps > 5000)
config.main_config.fps = 5000;
- if(config.main_config.quality != "very_high" && config.main_config.quality != "ultra")
+ if(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.streaming_config.streaming_service != "twitch" && config.streaming_config.streaming_service != "youtube" && config.streaming_config.streaming_service != "custom")