From c36390895f574516a4fa4a829c41182323819891 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 4 Oct 2022 00:34:07 +0200 Subject: Add info about flatpak version, add medium and high quality, remove audio input restriction on streaming --- README.md | 1 + src/main.cpp | 14 ++++++++------ 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") -- cgit v1.2.3