Dont initialize damage tracker if not enabled

This commit is contained in:
dec05eba
2025-09-21 00:35:25 +02:00
parent d23a9576ff
commit a4c227c43e
2 changed files with 13 additions and 9 deletions

View File

@@ -3685,15 +3685,17 @@ int main(int argc, char **argv) {
bool use_damage_tracking = false; bool use_damage_tracking = false;
gsr_damage damage; gsr_damage damage;
memset(&damage, 0, sizeof(damage)); memset(&damage, 0, sizeof(damage));
if(gsr_window_get_display_server(window) == GSR_DISPLAY_SERVER_X11) { if(arg_parser.framerate_mode == GSR_FRAMERATE_MODE_CONTENT) {
gsr_damage_init(&damage, &egl, arg_parser.record_cursor); if(gsr_window_get_display_server(window) == GSR_DISPLAY_SERVER_X11) {
use_damage_tracking = true; gsr_damage_init(&damage, &egl, arg_parser.record_cursor);
} else if(!capture->is_damaged) { use_damage_tracking = true;
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"); } 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) if(is_monitor_capture)
gsr_damage_set_target_monitor(&damage, arg_parser.window); gsr_damage_set_target_monitor(&damage, arg_parser.window);
}
while(running) { while(running) {
while(gsr_window_process_event(window)) { while(gsr_window_process_event(window)) {

View File

@@ -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) { static struct pw_properties* gsr_pipewire_create_null_audio_sink(const char *name) {
char props_str[512]; 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); struct pw_properties *props = pw_properties_new_string(props_str);
if(!props) { if(!props) {
fprintf(stderr, "gsr error: gsr_pipewire_create_null_audio_sink: failed to create virtual sink properties\n"); fprintf(stderr, "gsr error: gsr_pipewire_create_null_audio_sink: failed to create virtual sink properties\n");