L-Acoustics / avdecc

A set of open source libraries for controlling AVB entities using the AVDECC (IEEE 1722.1) protocol compliant to Avnu Milan Specifications
GNU Lesser General Public License v3.0
89 stars 22 forks source link

macos 15: Built-in virtual audio entity not showing up #156

Open i-n-g-o opened 1 month ago

i-n-g-o commented 1 month ago

In Hive using the same library versions a "Got Fatal Enumeration Error" for the virtual audio entity is shown.

The entity is present and seems to be sane in apples "Avb Configuration".

Is anything known about this?

christophe-calmejane commented 1 month ago

Hi,

I did make a report few weeks ago to Apple, for an issue in mac's Avb Entity, but didn't get any response. Not sure it's related but I'll definitely take a look as soon as I've update my mac (don't want to rush though, I've seen a lot of other issues).

i-n-g-o commented 1 month ago

Hello,

Great this is already known.

I ran the Discover tool on a mac with Sequoia installed and attached a dump. The only connected device is the mac with virtual audio enabled.

Entity with id: 0xc989f3aa09268001 is the one in question. This log may be interesting:

[Error] [0xc989f3aa09268001] Got Fatal Enumeration Error
Query error on entity 0xc989f3aa09268001: 39

Also I see another entity in "AVB Configuration" which is my local mac: name.local and has id: 0x0030931907f00082. It seems not to be a valid entity, traces of it can be found in the dump.

avdecc-discover.txt

hth.

i-n-g-o commented 1 month ago

Query error 39: StreamInputCounters

In fact the entity has not counters on any input or output stream

christophe-calmejane commented 1 month ago

Well it shouldn't cause an enumeration error, I'll need to take a deeper look, but I need to find a mac I can update. Thanks a lot for the report.

i-n-g-o commented 1 month ago

I digged in a bit and found that the response coming from AudioVideoBridging already has a non-zero status:

<AVB17221AECPAEMGetCountersResponse (0x6000002d5500): messageType:0x01 status:0x0a targetEntityID:0xc989f3aa09268001 controllerEntityID:0x0030931907f00001 sequenceID:0x006b commandType:0x0029 commandSpecificData:{length = 136, bytes = 0x00050001 00000000 00000000 00000000 ... 00000000 00000000 } sourceMAC:00:30:93:19:07:f0>

This happens on the "Media Clock Input Stream" which does not have counters information.

This is strange: the clock input stream does not have counter information if the adapter is plugged in freshly. Only after right-click on the entity -> "Change Sampling Rate" and then right-click "Update ... state" the counter information shows up. Also I just see that when the adapter is freshly plugged this stream does not have a "Stream ID" and no "Stream VLAN ID". Both appear after setting the sampling rate.

If the counter-information is present also the avdecc discovery works as expected. Also it seems it looses this information randomly.

Freshly plugged:

Screenshot 2024-09-25 at 12 38 34

After setting sampling-rate:

Screenshot 2024-09-25 at 12 44 03
christophe-calmejane commented 2 weeks ago

I stumbled upon this issue myself today, and it's in fact more deep than I expected and requires a Radar to be filled at Apple. The entity is actually returning ENTITY_MISBEHAVING error code, that's why the library stops enumeration at this point.