Dvdread and Dvdnav
libdvdread and libdvdnav have had a history of poor maintenance and numerous forks (and merges), with numerous lapse of time without active maintainers.
As a result, those libraries were in a sorry state, crashing a lot (crashing VLC more than libavcodec or filling up distribution BTS), while the DVD protections were getting stronger than ever...
Last year, after some work on libbluray, I decided to take over the maintenance of those DVD libraries. And here are the first releases of the new libdvdread, libdvdnav, coupled with a libdvdcss one...
Ogle -> Xine
libdvdread and libdvdnav started with the Ogle DVD player, in 1999.
Ogle split libdvdread from their player and released versions 0.8.0, 0.9.0, and 0.9.1 in 2001 and early 2002.
The code from Ogle was also imported and forked into the Xine project to create a xine plugin, named xine_dvdnav.
The code from Xine was split into a new library: libdvdnav, in March 2002. The CVS repository was hosted in a Sourceforge project and had an actual 1.0.0 release in May 2002. The project was quite active until October 2002, and then again in March-May 2003.
In April 2003, libdvdread was merged into libdvdnav, to simplify the integration for playback applications.
It then had regular updates, until June 2004, and then a few commits that arrived in 2005, then nothing.
In 2005, a project to create libdvdnav2 was created, but never took off...
In April 2007, the MPlayer folks took over the project and forked it on the MPlayer infrastructure. They moved to C99, merged many MPlayer patches, cleaned up a bit the API and rewrote a buildsytem (sic!), and merged the OS X support.
The version numbers were upgraded to 4.1.1 from libdvdnav 0.1.10 and libdvdread 0.9.7.
In November 2007, the new maintainers started to split libdvdread from libdvdnav, in 2 different libraries. The actual splitting work was done from April to August 2008.
After December 2008, the project was almost dead .
At the end of 2009, but mostly in 2010, a bit of work was done by yours truly and the Handbrake guys, and, by almost by surprise, at the end of 2011 a release was done.
Then most of the work happened on the fork from Erik Hovland on Github.
At FOSDEM 2013, after a long discussion with VideoLAN developers, we decided to retake the repositories on VideoLAN infrastructure.
We simplified the buildsystem, thanks to Flameeyes and merged our VLC patches.
I spend then a long time merging the code from Erik and a few other forks, and in early 2014, rewrite the complete CVS/SVN history in order to account correctly to authors and move to Git:
Features and releases
One of the major problems we had with DVDs, was the introduction of the ARccOS protection system, in 2007, that started to be widespread in 2008.
Similar protections were added to DVDs to block libdvdread based players, notably DVDs with bogus titles, bogus chapters or with out-of-order valid titles.
Many of those protections (and some more) were crashing VLC, and are now fixed.
We also fixed and updated the support for various OSes, including Android, QNX and OS/2, cleaned the buildsystem and merged patches from downstream.
Those releases should not break the API, nor the ABI.
You can now find:
on the VideoLAN servers.