From 3a200a4c9f74c93c7fa97d013613db60a3290538 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 10 Jan 2025 23:59:15 +0100 Subject: Workaround teamspeak crashing when recording app audio --- TODO | 5 ++++- kms/client/kms_client.c | 2 +- src/pipewire_audio.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/TODO b/TODO index 5b8d30a..1205683 100644 --- a/TODO +++ b/TODO @@ -215,4 +215,7 @@ Always disable prime run/dri prime and list all monitors to record from from all Use randr to list all monitors and always record and encode with the primary gpu. On Wayland each gpu will have its own list of monitors with framebuffers. Iterate through all cards with drm and list all monitors with associated framebuffers and when choosing a monitor to record - automatically use the associated gpu card. \ No newline at end of file + automatically use the associated gpu card. + +Allow flv av1 if recent ffmpeg version and streaming to youtube (and twitch?) and for custom services. +Use explicit sync in pipewire video code: https://docs.pipewire.org/page_dma_buf.html. diff --git a/kms/client/kms_client.c b/kms/client/kms_client.c index 0e6d1df..018b25e 100644 --- a/kms/client/kms_client.c +++ b/kms/client/kms_client.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/pipewire_audio.c b/src/pipewire_audio.c index cbcbb61..00cd4b4 100644 --- a/src/pipewire_audio.c +++ b/src/pipewire_audio.c @@ -371,7 +371,7 @@ 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 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=\"\" }", 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"); -- cgit v1.2.3