LPCM Audio Sub-Stream ID Range in VOB Containers

This article provides a direct overview of the sub-stream ID range allocated for Linear Pulse Code Modulation (LPCM) audio tracks within DVD VOB containers. It explains how the underlying MPEG-2 Program Stream architecture multiplexes audio data and details the exact hexadecimal identifiers demuxers use to locate and extract uncompressed audio tracks.

The LPCM Sub-Stream ID Range

Inside a VOB (Video Object) container, the sub-stream ID range reserved for Linear PCM (LPCM) audio tracks is 0xA0 to 0xA7 in hexadecimal (160 to 167 in decimal).

This allocation allows a single title in a VOB container to carry up to eight distinct LPCM audio tracks, mapped sequentially:

How VOB Containers Handle Audio Streams

The VOB format is based on the MPEG-2 Program Stream standard. Under this standard, non-MPEG native audio formats—such as LPCM, AC-3 (Dolby Digital), and DTS—cannot use standard MPEG audio stream IDs (0xC00xDF).

Instead, the DVD specification routes these audio formats through Private Stream 1, which uses the standard stream ID 0xBD. To differentiate between the various formats and individual tracks multiplexed within Private Stream 1, DVD authors use a 1-byte sub-stream ID header placed at the beginning of each packet payload.

Context Within Other Sub-Stream Allocations

To avoid conflicts during playback and demuxing, different audio codecs and elements receive isolated sub-stream ID blocks within Private Stream 1 (0xBD):

When a media player or demuxer encounters a packet with stream ID 0xBD, it inspects the first byte of the private data. If the value falls between 0xA0 and 0xA7, the demuxer immediately routes the payload to the uncompressed PCM audio decoder.