From a4c227c43ea57aa65e10a186935930a6033fa429 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 21 Sep 2025 00:35:25 +0200 Subject: [PATCH] Dont initialize damage tracker if not enabled --- src/main.cpp | 18 ++++++++++-------- src/pipewire_audio.c | 4 +++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8a99b4b..84559f6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3685,15 +3685,17 @@ int main(int argc, char **argv) { bool use_damage_tracking = false; gsr_damage damage; memset(&damage, 0, sizeof(damage)); - if(gsr_window_get_display_server(window) == GSR_DISPLAY_SERVER_X11) { - gsr_damage_init(&damage, &egl, arg_parser.record_cursor); - use_damage_tracking = true; - } else if(!capture->is_damaged) { - fprintf(stderr, "gsr warning: \"-fm content\" has no effect on Wayland when recording a monitor. Either record a monitor on X11 or capture with desktop portal instead (-w portal)\n"); - } + if(arg_parser.framerate_mode == GSR_FRAMERATE_MODE_CONTENT) { + if(gsr_window_get_display_server(window) == GSR_DISPLAY_SERVER_X11) { + gsr_damage_init(&damage, &egl, arg_parser.record_cursor); + use_damage_tracking = true; + } else if(!capture->is_damaged) { + fprintf(stderr, "gsr warning: \"-fm content\" has no effect on Wayland when recording a monitor. Either record a monitor on X11 or capture with desktop portal instead (-w portal)\n"); + } - if(is_monitor_capture) - gsr_damage_set_target_monitor(&damage, arg_parser.window); + if(is_monitor_capture) + gsr_damage_set_target_monitor(&damage, arg_parser.window); + } while(running) { while(gsr_window_process_event(window)) { diff --git a/src/pipewire_audio.c b/src/pipewire_audio.c index 6938f67..80e3208 100644 --- a/src/pipewire_audio.c +++ b/src/pipewire_audio.c @@ -693,7 +693,9 @@ void gsr_pipewire_audio_deinit(gsr_pipewire_audio *self) { static struct pw_properties* gsr_pipewire_create_null_audio_sink(const char *name) { char props_str[512]; - snprintf(props_str, sizeof(props_str), "{ factory.name=support.null-audio-sink node.name=\"%s\" media.class=Audio/Sink object.linger=false audio.position=[FL FR] monitor.channel-volumes=true monitor.passthrough=true adjust_time=0 node.description=gsr-app-sink slaves=\"\" }", name); + snprintf(props_str, sizeof(props_str), + "{ factory.name=support.null-audio-sink node.name=\"%s\" media.class=Audio/Sink object.linger=false audio.position=[FL FR]" + " monitor.channel-volumes=true monitor.passthrough=true adjust_time=0 node.description=gsr-app-sink slaves=\"\" priority.driver=1 priority.session=1 }", name); struct pw_properties *props = pw_properties_new_string(props_str); if(!props) { fprintf(stderr, "gsr error: gsr_pipewire_create_null_audio_sink: failed to create virtual sink properties\n");