Skip to content

External rendering interfaces

Saketh Sathuvalli edited this page Jan 31, 2023 · 1 revision

Introduction

The MPEG-H decoder has provision for delivering un-rendered signals (channels, objects, and HOA transport channels) along with associated metadata. The provision is created to allow connection of external, non-MPEG-H renderers. These external renderers will be provided with metadata and related audio data. This page describes external renderer interfaces of libmpegh decoder and interpretation of the metadata and un-rendered signals data.

Generation of interfaces using libmpegh

The libmpegh decoder implementation offers external rendering supports and generates interface files for the same. The command line switch -ext_ren:1 when used generates the interface files. An example paramfile command for generating interface files is given below

-ifile:sine_1khz_cicp16.mhas    -ofile:sine_1khz_cicp16_mhas.wav -ext_ren:1

On succesful run, the above command creates two additional files in the output file folder as listed below

  • sine_1khz_cicp16_mhas_ext_ren_pcm.raw - PCM file with un-rendered audio data
  • sine_1khz_cicp16_mhas_ext_ren_oam_md.bs - Bitstream file containing metadata

Formats of the interface files

Metadata file format

The metadata file generated usually contains necessary information used by a renderer to formulate rendering algorithm. The metadata information and bitstream syntax is different for different types of signals(channels, objects, and HOA transport channels). The bitstream syntax for metadata is as per the descriptions provided in section 17.10.3 in the MPEG-H specification document. For the example use case described in the previous section, the file sine_1khz_cicp16_mhas_ext_ren_oam_md.bs contains object audio metadata information.

PCM file format

The PCM file generated contains un-rendered signals(channels, objects and HOA transport channels). The PCM format is signed, 24-bit, little endian. If there are multiple un-rendered signals, the PCM data will be present in interleaved format. For the example use case described in the previous section, the file sine_1khz_cicp16_mhas_ext_ren_pcm.raw contains un-rendered object audio.

Clone this wiki locally