libdvdnav / libdvdread 7 & libdvdcss 1.5 release: DVD-Audio & more

24 November 2025

libdvdnav / libdvdread 7 & libdvdcss 1.5 release: DVD-Audio & more

A few days ago, I released libdvdnav 7.0.0, libdvdread 7.0.0 and libdvdcss 1.5.0, the latest versions of the open-source libraries powering DVD playback and navigation as part of VideoLAN.

These releases mark an important milestone for the open DVD stack: we now have full DVD-Audio support, spanning parsing, navigation, and decryption.
Alongside that, we completed a major build-system modernization by moving to Meson, and improved stability across platforms.

These releases are also important, since I did not cut a release of those libraries in more than 4 years.
And we need to have regular releases of all our libraries for security and OS updates. This is a bit similar to what I did about bluray libraries this summer.

DVD-Audio support from top to bottom

DVD-Audio has always been a peculiar corner of the DVD world, mostly because of its very limited adoption: only a few hundreds of DVD-Audio titles were ever released.
Its structure differs significantly from DVD-Video, and many discs rely on CPXM, a protection mechanism unrelated to CSS. Until now, support for these discs was incomplete or simply unavailable in open-source playback stacks.

With these releases, DVD-Audio is finally supported natively from start to finish.

CPXM decryption

The first piece lands in libdvdcss 1.5.0, which introduces CPXM decryption, the protection scheme used by many DVD-Audio discs, alongside our existing CSS decryption support.

The new dvdcpxm_* API (read, readv, seek, …) integrates directly with libdvdread, enabling seamless access to encrypted DVD-Audio sectors.

Maybe we should change the name of the libdvdcss library at some point? :D

Parsing

On the low-level side, libdvdread 7.0.0 adds the parsing of DVD-Audio metadata, including the AMGI, SAMG, and ATS IFO structures.
It also introduces new APIs dedicated to opening and reading DVD-Audio content, letting applications handle these discs without relying on DVD-Video fallbacks and allowing players to support both formats cleanly.

Together, these improvements bring the foundation for proper playback of DVD-Audio discs and hybrids to the open-source ecosystem.

What is new in these releases

libdvdread 7.0.0

libdvdread 7.0:

  • Full DVD-Audio parsing (AMGI, SAMG, ATS)
  • Integration with dvdcpxm for CPXM-protected discs
  • Visibility cleanups to reduce the exported surface
  • Improved portability across UWP and other platforms
  • Migration to Meson and removal of autotools

libdvdnav 7.0.0

libdvdnav 7.0:

  • New APIs for stream listing, stream activation, SPU toggling, volume ID and region mask retrieval
  • Exposing the dvdnav_jump_to_sector_by_time() API
  • Numerous crash fixes and better handling of unusual discs
  • Migration to Meson and removal of autotools

libdvdcss 1.5.0

libdvdcss 1.5:

  • DVD-Audio CPXM decryption via the new dvdcpxm API
  • New header and functions dedicated to CPXM operations
  • Better cross-platform and Windows 64-bit support
  • Migration to Meson and removal of autotools

Compatibility, packaging and building

These releases introduce major version bumps for both libdvdread and libdvdnav, and all three libraries now require Meson exclusively.

We did change the API and slightly adjusted the ABI, so packagers should verify that nothing breaks for downstream users.
Please also check that the Meson changes are correctly working, especially on less common platforms.

Finally, make sure to build libdvdcss with dvdcpxm enabled and send us feedback on how it works for you.

What is next?

As this is the first release with DVD-Audio support, we still need to integrate more features of the format, notably still images or hybrid discs. And we need wide-scale testing.

And of course, we need to finish the VLC integration.

We also want to continue closing the remaining bugs in these DVD libraries, because DVD is not dead!

Patches welcome, as usual. :D

Thanks

Thanks to everyone who contributed fixes, tested discs, and helped modernize these libraries, notably the GSoC students and the people who worked on libdvdcpxm.
Your work made this long-awaited support possible.

Jean-Baptiste Kempf