IEC61937 13 HDMI playback on Linux OS - Fraunhofer-IIS/iec61937-13 GitHub Wiki
The scope of this page is to show how to play an IEC61937-13 data bursts file on Linux OS in HDMI passthrough mode to a connected HDMI sink device supporting the MPEG-H decoding.
Requirements
- aplay command-line tool
- if not installed on your Linux OS, aplay can be usually found as part of the alsa-utils package
- Nvidia graphic card with HDMI output
- please note that the following instructions may also work with other graphic cards than Nvidia
- MPEG-H capable HDMI sink devices
- please find the available devices supporting MPEG-H here
Test PCM playback
Before playing an IEC61937-13 data bursts file in HDMI passthrough mode verify the PCM playback.
First find the right device to be used:
$ aplay -L
The output could look like:
...
surround71:CARD=PCH,DEV=0
HDA Intel PCH, ALC1220 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
HDA Intel PCH, ALC1220 Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, HDMI 1
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 2
HDMI Audio Output
...
In our case we use hdmi:CARD=NVidia,DEV=1 device to verify that the PCM playback to a connected HDMI sink device works:
$ aplay -D hdmi:CARD=NVidia,DEV=1 some_2ch_48000Hz_test_file.wav
If the connected HDMI sink device can produce audio output then the selected device is correct. If there is no audio output, please select another device prefixed with hdmi: and try again.
Depending on the used sound system configuration on your Linux OS the desired audio output device maybe be blocked by a system process. Try to reconfigure your sound system to use a different audio output device to make the desired audio output device available for our IEC61937-13 playback test.
IEC61937-13 passthrough playback
After we found the right audio output device, we can play an IEC61937-13 data burst file (e.g. generated with IEC61937-13 encoder program):
$ aplay -D hdmi:CARD=NVidia,DEV=1,AES=06 -f S16_LE -c2 -r192000 out.raw
Note the AES=06 parameter. This parameter configures the ALSA output to run in bitstream mode.
-f S16_LE defines the byte order format of the out.raw file. In our case it's little endian.
-c2 -r192000 defines the used IEC61937-13 sampling rate factor in the out.raw file. In our case it's 4x. If you want to play the IEC61937-13 data bursts file generated in 16x sampling rate mode, you will need to use -c8 -r192000 instead.