Windows 98 AC3 Audio Streaming Support

Microsoft Windows 98 introduced native architectural upgrades that allowed personal computers to process and stream AC-3 (Dolby Digital) multi-channel audio for the first time. By transitioning from the legacy VxD driver model to the Windows Driver Model (WDM), integrating Kernel Streaming, and leveraging the DirectShow multimedia framework, Windows 98 enabled both software decoding and raw digital pass-through of compressed multi-channel audio streams to external hardware receivers.

The Windows Driver Model and Kernel Streaming

Prior to Windows 98, Windows audio relied on 16-bit and 32-bit VxD (Virtual Device Driver) architectures, which were ill-suited for real-time digital multi-channel bitstreams. Windows 98 resolved this by implementing the Windows Driver Model (WDM), which introduced Kernel Streaming (ks.sys).

Kernel Streaming allowed audio data to bypass standard user-mode latency bottlenecks, routing audio streams directly to hardware drivers with minimal CPU intervention. For AC-3 streams, this architecture introduced dedicated audio pins capable of recognizing compressed, non-PCM data formats (KSDATAFORMAT_SUBTYPE_AC3), ensuring that the operating system treated the multi-channel bitstream as structured data rather than raw linear audio samples.

Bypassing the Kernel Mixer (KMixer)

A critical hurdle in streaming AC-3 was the Windows Kernel Mixer (kmixer.sys). The KMixer was designed to intercept multiple audio streams, resample them, and mix them down into a single uncompressed stereo PCM stream.

Because AC-3 is a compressed digital bitstream, passing it through KMixer's standard resampling algorithms would corrupt the data, turning the surround sound signal into severe acoustic noise. Windows 98 addressed this by introducing non-PCM audio pin properties in WDM audio drivers. When an application requested an AC-3 pass-through stream:

  1. The driver exposed a non-PCM, S/PDIF-compatible pin.
  2. The operating system established an exclusive connection that bypassed KMixer entirely.
  3. The raw, bit-perfect AC-3 payload was directed straight to the sound card’s digital interface.

S/PDIF Pass-Through via IEC 61937

Windows 98 enabled S/PDIF (Sony/Philips Digital Interface) digital pass-through by packaging AC-3 frames inside the IEC 61937 protocol standard. Under this specification, compressed AC-3 data bursts were disguised as 16-bit stereo PCM data running at 48 kHz.

Sound cards with digital optical or coaxial outputs (such as the early Creative Sound Blaster Live! series using updated WDM drivers) received these encapsulated bursts directly. The sound card forwarded the raw stream over S/PDIF to an external A/V receiver or standalone Dolby Digital decoder, which performed the final six-channel digital-to-analog conversion and spatial separation.

DirectShow and DVD Playback

At the application level, Microsoft deployed DirectShow (bundled with DirectX 6 and subsequent updates) to manage the parsing, splitting, and rendering of AC-3 streams.

When playing a DVD or media file containing AC-3 audio, the DirectShow filter graph parsed the container using splitters such as the DVD Navigator filter. The split audio pin would then route the stream in one of two directions based on hardware capabilities:

  • Digital Pass-Through: The compressed stream was routed directly to the DirectSound/Kernel Streaming renderer mapped to an S/PDIF port.
  • Software Decoding: If no digital receiver was present, third-party software decoders (such as those bundled with WinDVD or PowerDVD) downmixed the 5.1-channel AC-3 stream into stereo PCM, passing the mixed audio to KMixer for standard analog output through standard PC speakers.