[FreeBSD/OSS] Better passthrough support for SPDIF
#1
Hi.

I use OSS4 port on FreeBSD. As the spdif seemed not to work with freebsd native drivers.

Passthrough worked well in XBMC 12.2. It broke on 13.0.

After some investigation, it seems the isue is that OSS give only one device ( /dev/dsp0 ) for both PCM and SDPIF out.
Checks added (on ActiveAE, I think) did not like that and Passthrough codec fails to open the devices (it thinks it does not support AC3/DTS format).

Moreover the type of the device is determined based on it's name. So no SPDIF device appears and I can't select it as passthrough device.

A quick and dirty hack on AESinkOSS.cpp made it work perfectly with my config.

I would like to submit a patch for better Enumeration, but before, I'd like to know what would be better in that case :
- Enumerate 2 devices : one with type AE_DEVTYPE_PCM, and the other AE_DEVTYPE_IEC958 ...
-> There, my tests shows that I either must give them different names ( oss provide multiple links in /dev) or push AE_FMT_AC3 and AE_FMT_DTS to both or passthrough will fail.
- Enumerate only one AE_DEVTYPE_IEC958 ...

Note that in theory, RAW (spdif) support could be detected with oss api.
Reply

Logout Mark Read Team Forum Stats Members Help
[FreeBSD/OSS] Better passthrough support for SPDIF1