Welcome on Planet VideoLAN. This page gathers the blogs and feeds of VideoLAN's developers and contributors. As such, it doesn't necessarly represent the opinion of all the developers, the VideoLAN project, ...
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...
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:
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.
Today, we did a small release of the stable version of VLC media player: 2.1.5.
It is just a maintenance release, before VLC 2.2.0 is ready.
The highlights are:
Hopefully, this is the last one before 2.2.0 is out!
You can grab your version on our website!
If you're like me, you probably have a large number of DVDs at your place.
Of course, the DVD format is outdated, but it has a few advantages:
It's also great when you travel, in car, trains or planes.
Therefore, we've added support for DVD ISOs (encrypted or not) and DVD menus interactivity in the latest VLC for Android version (0.9.7.1).
As we support full DVD ISOs, you don't need to rip the DVD, remove the protection or do any transcoding: you just need to do an image of the DVD. This is totally legal in most countries, notably in Europe, since this is for your own usage (or your family).
Here are a few screenshots of VLC on Android with a DVD.
Finally, the great thing is that this works quite well also on older Android machines, like on this Motorola Defy. It's a Cortex A-8 800Mhz, running Android 2.2, and was out 4 years ago!
We have seen, in the last weeks, the release of:
So, the three libraries of the stack have been updated with a few important features.
For libbluray, this update is a major update.
This release is the first release where the BD-J (the Java interactivity layer) is actually usable.
The Java code was tested on Linux, Windows and MacOS, and it should work with J2ME and J2SE and with both the OpenJDK and Sun/Oracle's JDK projects.
It's quite big, since it adds more 200 commits, mostly in the Java code base (the diff is more than 15kLoC).
In addition to BD-J, it fixes numerous issues on Win32, improves cross-compilation and allows to compile without libxml.
In addition, here are 2 photos of VLC on a rPI, with a USB BD-drive, using VLC 2.2.0 hardware acceleration for decoding.
Note: this is not my setup.
Few months back I started working on a new project for the VideoLAN organization called Mirrorbits. Fast-forward, now in July 2014 it is finally online and open-sourced on Github!
Mirrorbits is a geographic download redirector written in Go. Let me rephrase that, it’s an application server that finds the best mirror to redirect a given user based on its location, pretty much like a CDN but using a pure software stack. For example, to distribute VLC we have to rely on a bunch of mirrors (around 70) located around the world and to make you able to download VLC faster we use mirrorbits to find the most suitable mirror for you. That means finding a mirror close to you, that is up and which has the file you requested. At first glance it can seem to be a pretty easy task to achieve but in reality there’s a lot of things to take care of. Take a look at the main features to find out all the things it can do.
The software is still in a early stage but is already used in production since April of this year, handling an average of 1 million downloads each day without a single hiccup and with a very low footprint. The system does not require a lot of attention and can run for months without human intervention since most of the usual tasks are fully automated. If a mirror goes down it will temporary be disabled until it recovers, all the scans of the mirrors (via rsync / ftp) are done in the background, …
Unlike other redirectors that only support the standard HTTP redirect, mirrorbits also has a JSON query API to be able to generate your own customized download page for showing alternate mirrors or a sponsor logo along with a countdown. On the control side it has a simple but yet powerful CLI to do the general maintenance.
Usage: mirrorbits [OPTIONS] COMMAND [arg...] A smart download redirector. Commands: add Add a new mirror disable Disable a mirror edit Edit a mirror enable Enable a mirror export Export the mirror database list List all mirrors refresh Refresh the local repository reload Reload configuration remove Remove a mirror scan (Re-)Scan a mirror stats Show download stats upgrade Seamless binary upgrade version Print version informations
Feel free to use mirrorbits for your own purpose but keep in mind that it’s still a very young project. And since I did not have the time to write a documentation yet you can contact me directly by email to get personal support.