I'm running xbmc on Debian wheezy on an Asus Aspire Revo 1600. I'm using the nouveau driver, not the proprietary NVidia driver, so until now I've been connecting the headphone audio output to my TV and just using HDMI for video. But recent Linux kernels now support HDMI audio with the nouveau driver, so I decided to try it.
I installed a Linux 3.5 kernel and I can now play audio via HDMI from the command line. For example, this works fine:
$ aplay -D hdmi file.wav
The device this uses is /dev/snd/pcmC0D3p
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevice #0: subdevice #0
But I've been unable to get xbmc to use this device for audio output. I've tried hdmi, hw:0,3, plughw:0,3, and many other combinations. No matter what, xbmc ends up opening /dev/snd/pcmC0D0p
instead (as I verified by using lsof and strace). I also tried setting the default ALSA output to be HDMI using an /etc/asound.conf file. Again, that worked fine from the command line (I could do just "aplay file.wav") but it still didn't work in xbmc.
What I should do next?