Yet another week in VideoLAN world

Yet another week, yet another weekly report about what has happened in the VideoLAN community and VLC development teams, during the last week.

As the previous week was very busy and that most Europe got a heat wave this week, this week looks almost calm. :)

Features and changes

VLC and libVLC

The week was started by Felix updating the VDA acceleration, after the work of the previous week on VideoToolbox. The code was cleaned, made more robust and defaulted to I420.

The Win32 core and Wasapi module were modified to use native TLS index support. The OS X threads were also fixed for a timeouting issue.

The iOS video output was made more resilient to failures that could happen on initialization.

GotoMeeting G2M3 and G2M4 decoding were added and mapped to the libavcodec module.

Wednesday, Rémi added a large piece of code in the core to introduce a per-thread sleep interruption framework. To make it short, solves the issue of our inputs that have blocking I/O and could lead to timeouts or deadlock, in case of network errors, for example.
This added interruptible poll(), read(), write() to the core API and helpers for send(), recv() and related functions.
This also lead to the removal of vlc_object_waitpipe() and the infamous vlc_object_alive() functions.

At the end of the week, support for iOS 6.x and OS X 10.6 was removed from the tree.

We've pushed fixes for the latency control of the Android AudioTrack audio output module, before Android 4.4.


The release 2.6.0 of VLC for iOS was finally deployed on the store.
This release brings notably:

  • Apple Watch support,
  • Mini-player for browsing while playing,
  • Support for video looping,
  • Better support for Plex servers,
  • Better thumbnailing,
  • Lots of fixes.

The version 2.6.1, fixing more bugs, was done, tagged and pushed for approval 2 days later :)

The rest of the work, focused on 2.7.0, was not pushed yet on the main tree.


The cleaning of the core of the Android application was continued.

After the big cleanup of libVLC's JNI binding, the majority of the work was on the Playback Service.
Instead of having a video player and an Audio Service, we merged everything to go inside a unique playback service. This should give us video playlists, loops, repeats and mixed video/audio playlists. This also mean cleaner code.

This also means that we can drop the permission PHONE_STATE for recent versions of Android. This was asked over and over from all the users.

We removed, again, some extern and static symbols to help use of the libVLC library.

We've rewritten chapters and title support for the application.

Also, a custom file picker was added for subtitle selection, in case your Android does not provide it.

Finally, we pushed all our changes to a version 1.4.99, on the beta channel.


On the WinRT side of things, we've had build fixes mostly and more testing on the Direct3D11 support.

The rest of the changes are being tested for now and are not merged yet. We're working on it!

HKOscon Conference

François went to Hong-Kong, to represent us at the HKOscon and speak about VLC!

You can see a picture here!

That's all for this week! See you next one!