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-09-03 13:38:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk (Old) and /work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.2698 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpu-screen-recorder-gtk" Tue Sep 3 13:38:28 2024 rev:2 rq:1198314 version:20240831 Changes: -------- --- /work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk/gpu-screen-recorder-gtk.changes 2024-08-29 15:44:34.072223975 +0200 +++ /work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.2698/gpu-screen-recorder-gtk.changes 2024-09-03 13:38:58.250334296 +0200 @@ -1,0 +2,6 @@ +Sat Aug 31 23:05:51 UTC 2024 - mantari...@pm.me + +- Update to version 20240831: + * Add version to title + +------------------------------------------------------------------- Old: ---- gpu-screen-recorder-gtk-20240820.tar.zst New: ---- gpu-screen-recorder-gtk-20240831.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpu-screen-recorder-gtk.spec ++++++ --- /var/tmp/diff_new_pack.qnquaM/_old 2024-09-03 13:38:58.930362662 +0200 +++ /var/tmp/diff_new_pack.qnquaM/_new 2024-09-03 13:38:58.930362662 +0200 @@ -19,7 +19,7 @@ %bcond_with test %define appid com.dec05eba.gpu_screen_recorder Name: gpu-screen-recorder-gtk -Version: 20240820 +Version: 20240831 Release: 0 Summary: GTK frontend for GPU Screen Recorder License: GPL-3.0-only ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.qnquaM/_old 2024-09-03 13:38:58.974364497 +0200 +++ /var/tmp/diff_new_pack.qnquaM/_new 2024-09-03 13:38:58.978364664 +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">d718c0c551570554a8367a1b372f9f722483e969</param></service></servicedata> + <param name="changesrevision">3904ca0a79cbe9329acc28d79932c85d4f1ac84f</param></service></servicedata> (No newline at EOF) ++++++ gpu-screen-recorder-gtk-20240820.tar.zst -> gpu-screen-recorder-gtk-20240831.tar.zst ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/README.md new/gpu-screen-recorder-gtk-20240831/README.md --- old/gpu-screen-recorder-gtk-20240820/README.md 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/README.md 2024-08-31 00:49:11.000000000 +0200 @@ -10,13 +10,22 @@ More info at [GPU Screen Recorder](https://git.dec05eba.com/gpu-screen-recorder/about/). -## Installation +# Installation This program depends on [GPU Screen Recorder](https://git.dec05eba.com/gpu-screen-recorder/) which needs to be installed first.\ Run `sudo ./install.sh` 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 `install.sh`: `meson gtk3 libx11 ayatana-appindicator3-0.1`.\ 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. -## Screenshots +# Dependencies +GPU Screen Recorder GTK uses meson build system so you need to install `meson` to build GPU Screen Recorder GTK: + +## Build dependencies +These are the dependencies needed to build GPU Screen Recorder GTK: + +* gtk3 +* libx11 +* ayatana-appindicator3-0.1 + +# Screenshots  # Donations diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/com.dec05eba.gpu_screen_recorder.appdata.xml new/gpu-screen-recorder-gtk-20240831/com.dec05eba.gpu_screen_recorder.appdata.xml --- old/gpu-screen-recorder-gtk-20240820/com.dec05eba.gpu_screen_recorder.appdata.xml 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/com.dec05eba.gpu_screen_recorder.appdata.xml 2024-08-31 00:49:11.000000000 +0200 @@ -80,6 +80,22 @@ </screenshots> <releases> + <release version="4.1.6" date="2024-08-30"> + <description> + <ul> + <li>Workaround steam deck driver bug and enable steam deck support again</li> + <li>Improve startup time on certain systems</li> + </ul> + </description> + </release> + <release version="4.1.5" date="2024-08-20"> + <description> + <ul> + <li>Disable support for steam deck at the moment because steam deck drivers are broken</li> + <li>Improve quality again</li> + </ul> + </description> + </release> <release version="4.1.4" date="2024-08-20"> <description> <ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/meson.build new/gpu-screen-recorder-gtk-20240831/meson.build --- old/gpu-screen-recorder-gtk-20240820/meson.build 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/meson.build 2024-08-31 00:49:11.000000000 +0200 @@ -1,4 +1,4 @@ -project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '4.1.4', default_options : ['warning_level=2']) +project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '4.1.6', default_options : ['warning_level=2']) add_project_arguments('-Wshadow', language : ['c', 'cpp']) if get_option('buildtype') == 'debug' @@ -18,6 +18,8 @@ dependency('ayatana-appindicator3-0.1'), ] +add_project_arguments('-DGSR_VERSION="' + meson.project_version() + '"', language: ['c', 'cpp']) + executable('gpu-screen-recorder-gtk', src, dependencies : dep, install : true) prefix = get_option('prefix') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/project.conf new/gpu-screen-recorder-gtk-20240831/project.conf --- old/gpu-screen-recorder-gtk-20240820/project.conf 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/project.conf 2024-08-31 00:49:11.000000000 +0200 @@ -1,7 +1,7 @@ [package] name = "gpu-screen-recorder-gtk" type = "executable" -version = "4.1.4" +version = "4.1.6" platforms = ["posix"] [config] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/src/config.hpp new/gpu-screen-recorder-gtk-20240831/src/config.hpp --- old/gpu-screen-recorder-gtk-20240820/src/config.hpp 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/src/config.hpp 2024-08-31 00:49:11.000000000 +0200 @@ -39,6 +39,7 @@ bool record_cursor = true; bool hide_window_when_recording = false; bool software_encoding_warning_shown = false; + bool steam_deck_warning_shown = false; bool restore_portal_session = true; }; @@ -317,6 +318,7 @@ {"main.record_cursor", {CONFIG_TYPE_BOOL, &config.main_config.record_cursor}}, {"main.hide_window_when_recording", {CONFIG_TYPE_BOOL, &config.main_config.hide_window_when_recording}}, {"main.software_encoding_warning_shown", {CONFIG_TYPE_BOOL, &config.main_config.software_encoding_warning_shown}}, + {"main.steam_deck_warning_shown", {CONFIG_TYPE_BOOL, &config.main_config.steam_deck_warning_shown}}, {"main.restore_portal_session", {CONFIG_TYPE_BOOL, &config.main_config.restore_portal_session}}, {"streaming.service", {CONFIG_TYPE_STRING, &config.streaming_config.streaming_service}}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpu-screen-recorder-gtk-20240820/src/main.cpp new/gpu-screen-recorder-gtk-20240831/src/main.cpp --- old/gpu-screen-recorder-gtk-20240820/src/main.cpp 2024-08-20 01:38:40.000000000 +0200 +++ new/gpu-screen-recorder-gtk-20240831/src/main.cpp 2024-08-31 00:49:11.000000000 +0200 @@ -20,6 +20,10 @@ #include <vector> #include <libayatana-appindicator/app-indicator.h> +#ifndef GSR_VERSION +#define GSR_VERSION "unknown" +#endif + // Start/stop recording also means start/stop streaming and start/stop replay #define SHORTCUT_ID_START_STOP_RECORDING "gpu_screen_recorder_start_stop_recording" #define SHORTCUT_ID_PAUSE_UNPAUSE_RECORDING "gpu_screen_recorder_pause_unpause_recording" @@ -240,6 +244,7 @@ struct SystemInfo { DisplayServer display_server = DisplayServer::UNKNOWN; + bool is_steam_deck = false; }; enum class GpuVendor { @@ -514,14 +519,14 @@ FILE *f = popen("gpu-screen-recorder --list-audio-devices", "r"); if(!f) { - fprintf(stderr, "error: 'gpu-screen-recorder --info' failed\n"); + fprintf(stderr, "error: 'gpu-screen-recorder --list-audio-devices' failed\n"); return inputs; } char output[16384]; ssize_t bytes_read = fread(output, 1, sizeof(output) - 1, f); if(bytes_read < 0 || ferror(f)) { - fprintf(stderr, "error: failed to read 'gpu-screen-recorder --info' output\n"); + fprintf(stderr, "error: failed to read 'gpu-screen-recorder --list-audio-devices' output\n"); pclose(f); return inputs; } @@ -2347,6 +2352,8 @@ _gsr_info->system_info.display_server = DisplayServer::X11; else if(attribute_value == "wayland") _gsr_info->system_info.display_server = DisplayServer::WAYLAND; + } else if(attribute_name == "is_steam_deck") { + _gsr_info->system_info.is_steam_deck = attribute_value == "yes"; } } @@ -2747,11 +2754,11 @@ video_codec_selection_model = GTK_TREE_MODEL(store); gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, "Auto (Recommended)", -1); + gtk_list_store_set(store, &iter, 0, "Auto (Recommended, H264)", -1); gtk_list_store_set(store, &iter, 1, "auto", -1); gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, gsr_info.supported_video_codecs.h264 ? "H264" : "H264 (Not available on your system)", -1); + gtk_list_store_set(store, &iter, 0, gsr_info.supported_video_codecs.h264 ? "H264 (Worst compression, best software compatibility)" : "H264 (Not available on your system)", -1); gtk_list_store_set(store, &iter, 1, "h264", -1); gtk_list_store_append(store, &iter); @@ -2759,7 +2766,7 @@ gtk_list_store_set(store, &iter, 1, "hevc", -1); gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, gsr_info.supported_video_codecs.av1 ? "AV1" : "AV1 (Not available on your system)", -1); + gtk_list_store_set(store, &iter, 0, gsr_info.supported_video_codecs.av1 ? "AV1 (Best compression, worst software compatibility)" : "AV1 (Not available on your system)", -1); gtk_list_store_set(store, &iter, 1, "av1", -1); gtk_list_store_append(store, &iter); @@ -3731,6 +3738,16 @@ gtk_widget_destroy(dialog); config.main_config.software_encoding_warning_shown = true; } + + if(gsr_info.system_info.is_steam_deck && !config.main_config.steam_deck_warning_shown) { + GtkWidget *dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, + "Steam deck has multiple driver bugs, some which have been introduced in the last few months. For example one of them has been reported here: " + "<a href=\"https://github.com/ValveSoftware/SteamOS/issues/1609\">https://github.com/ValveSoftware/SteamOS/issues/1609</a>.\n" + "If you have issues with GPU Screen Recorder on steam deck but not on a desktop computer then report the issue to Valve and/or AMD."); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + config.main_config.steam_deck_warning_shown = true; + } } static void init_shortcuts_callback(bool success, void *userdata) { @@ -3844,7 +3861,7 @@ } } - std::string window_title = "GPU Screen Recorder | Running on "; + std::string window_title = "GPU Screen Recorder v" + std::string(GSR_VERSION) + " | Running on "; window_title += gpu_vendor_to_name(gsr_info.gpu_info.vendor); window = gtk_application_window_new(app);