Exclude duplicate app from --list-application-audio

This commit is contained in:
dec05eba
2024-11-17 00:43:24 +01:00
parent 0c59349d12
commit bf577eec0b
2 changed files with 18 additions and 1 deletions

4
TODO
View File

@@ -190,4 +190,6 @@ Support transposing (rotating) with vaapi. This isn't supported on many devices
Cleanup pipewire_audio.c (proper error handling and memory cleanup of proxies).
Hide application audio module-null-sink by using sink_properties=media.class="Audio/Sink/Internal".
Hide application audio module-null-sink by using sink_properties=media.class="Audio/Sink/Internal".
Improve software encoding performance.

View File

@@ -398,6 +398,21 @@ void gsr_pipewire_audio_for_each_app(gsr_pipewire_audio *self, gsr_pipewire_audi
if(node->type != GSR_PIPEWIRE_AUDIO_NODE_TYPE_STREAM_OUTPUT)
continue;
bool duplicate_app = false;
for(int j = i - 1; j >= 0; --j) {
const gsr_pipewire_audio_node *prev_node = &self->stream_nodes[j];
if(prev_node->type != GSR_PIPEWIRE_AUDIO_NODE_TYPE_STREAM_OUTPUT)
continue;
if(strcasecmp(node->name, prev_node->name) == 0) {
duplicate_app = true;
break;
}
}
if(duplicate_app)
continue;
if(!callback(node->name, userdata))
break;
}