From 9f8db9c84a69e8271085ea71382bbb7d1977aaf2 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 13 Feb 2024 23:40:54 +0100 Subject: Suggest installing mesa-extra if codecs missing --- com.dec05eba.gpu_screen_recorder.appdata.xml | 3 +-- src/main.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/com.dec05eba.gpu_screen_recorder.appdata.xml b/com.dec05eba.gpu_screen_recorder.appdata.xml index 7e41f1f..7ce13e0 100644 --- a/com.dec05eba.gpu_screen_recorder.appdata.xml +++ b/com.dec05eba.gpu_screen_recorder.appdata.xml @@ -43,8 +43,7 @@ and pkexec needs to be installed on the system and a polkit agent needs to be running.

- Some distros such as manjaro and fedora disable hardware accelerated H264/HEVC which means GPU Screen Recorder wont work on AMD/Intel and you have to either switch to another distro or install mesa - from source (or install mesa-git for example). On fedora based distros you can follow this: Hardware Accelerated Codec section. + If H264/HEVC video encoding is not available on your AMD/Intel system that you know supports those codecs then you may need to install mesa-extra freedesktop runtime by running this command: flatpak install --system org.freedesktop.Platform.GL.default//23.08-extra

Recording a single window is also only possible on X11. Hotkeys are not supported on wayland either (wayland doesn't really support this). Use X11 if you want a proper desktop experience in general. diff --git a/src/main.cpp b/src/main.cpp index d54adf9..144ba53 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3130,14 +3130,20 @@ static void load_config(const gpu_info &gpu_inf) { if(!supported_video_codecs.h264 && !supported_video_codecs.hevc && gpu_inf.vendor != GPU_VENDOR_NVIDIA && config.main_config.codec != "av1") { if(supported_video_codecs.av1) { GtkWidget *dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, - "Your distro has disabled support for H264 and HEVC video codecs. Switched video codec to AV1. If you wish to use H264/HEVC video codecs then follow your distros guide to install a non-crippled mesa (with H264 and HEVC support) or switch to a less user hostile distro or recompile mesa from source. For example on fedora you may need to follow this: Hardware Accelerated Codec."); + "Switched video codec to AV1 since H264/HEVC video encoding is either missing or disabled on your system. If your know that your system supports H264/HEVC video encoding then " + "try installing mesa-extra freedesktop runtime by running this command:\n" + "flatpak install --system org.freedesktop.Platform.GL.default//23.08-extra\n" + "and then restarting GPU Screen Recorder. If that doesn't work then you may have to install another mesa package for your distro."); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); config.main_config.codec = "av1"; gtk_combo_box_set_active_id(GTK_COMBO_BOX(video_codec_input_menu), config.main_config.codec.c_str()); } else { GtkWidget *dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, - "Either your GPU doesn't support H264/HEVC video codecs or your distro has disabled support for those video codecs. If you wish to use H264/HEVC video codecs then follow your distros guide to install a non-crippled mesa (with H264 and HEVC support) or switch to a less user hostile distro or recompile mesa from source, if you know that your GPU supports H264/HEVC. For example on fedora you may need to follow this: Hardware Accelerated Codec."); + "H264/HEVC video encoding is either missing or disabled on your system. If your know that your system supports H264/HEVC video encoding then " + "try installing mesa-extra freedesktop runtime by running this command:\n" + "flatpak install --system org.freedesktop.Platform.GL.default//23.08-extra\n" + "and then restarting GPU Screen Recorder. If that doesn't work then you may have to install another mesa package for your distro."); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); g_application_quit(G_APPLICATION(select_window_userdata.app)); -- cgit v1.2.3