Skip to content

Conversation

@Houston4444
Copy link
Contributor

Hi ! As discussed in #146, here is a short PR that adds an UnknownPort class, which can be created by the _wrap_port_ptr Client method in case the port type is not AUDIO and not MIDI.

I also added the type property to the Port class, because it is inherited by UnknownPort and others.

I investigated this morning with PipeWire (quite boring because I have to test this in a VM, I personally still use JACK), especially to what create the bug with ports of type 'other' (Houston4444/RaySession#269).

'other' ports seems to be in the case of this bug VIDEO ports (qpwgraph see them as VIDEO ports). There are callbacks for their registration/unregistration, but they are not listed with jack_get_ports, even if we specify 'other' as type_pattern. It is probably a PipeWire bug, trying to filter them in the get_ports() method had no effect.

However, it is possible to create a VIDEO port from PipeWire fake JACK, callback appears with "32 bit float RGBA video" type, these ports are listed with jack_get_ports.

…ort is nor AUDIO nor MIDI, also add the 'type' property to Port (inherited by UnknownPort) to get the type str of the port
@mgeier
Copy link
Member

mgeier commented Dec 3, 2025

Thanks for implementing and testing this!

What about the is_unknown argument of get_ports() that we talked about?

Is it not necessary/useful?

@Houston4444
Copy link
Contributor Author

What about the is_unknown argument of get_ports() that we talked about?
Is it not necessary/useful?

Ah, sorry I forgot to mention. The problem is that Unknown ports that can appear in port registration callback with the type 'other' are not listed with get_ports(), even if we specify 'other' as regex filter. So, if we are not able to list them, it takes no sense for a such option. We may consider this as a PipeWire bug, I did not report a ticket.

Something easily addable would be VideoPort. I achieve to add a port with PipeWire VIDEO type, callbacks are sent and it can be listed with get_ports().

@mgeier mgeier merged commit ff5fbc6 into spatialaudio:master Dec 7, 2025
11 of 13 checks passed
@mgeier
Copy link
Member

mgeier commented Dec 7, 2025

Thanks! I think this PR makes sense as is. We can add more functionality in new PRs whenever we need it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants