Keyword - VideoLAN

Entries feed - Comments feed

Monday, June 22 2015

This week in VideoLAN - 7

Yet another week in VideoLAN world

A new week, a new weekly report about what has happened in the VideoLAN community and VLC development teams, during the last week.

Features and changes

VLC and libVLC

Interestingly, this week was quite calmer than the previous weeks.

The Direct3D11 code was modified, simplified and fixed to match the allowed WinRT APIs. The hardware decoding was also improved, to be faster to load and compile in more situations.

2 annoying bugs were fixed for hardware decoding on the RaspberryPI, that could happen for some files in some specific formats.

The Mac OS X VLC binary was heavy reworked, in order to fix a mainloop issue that caused race conditions on the start of VLC, between the interface and the video output.

Quite a bit of work went on on the adaptive streaming common code, notably to fix DTS issues.

We also fixed a crash with Skins2, cleaned the new chapters/titles API, fixed filedescriptor leaks and an iOS dialog issue.


This week, iOS was quite a bit more busy.

First, we added support for SMB shares on VLC for iOS. This also includes parsing changes to VLCKit to support network shares.

The UPnP and FTP interface code was modified to be able to support UPnP shares. This was done by doing a shared class for all network browsing, that is also including PLEX client interface.

The chapters and title libVLC API was exposed to VLCKit and is now used in the application too. The next major release will use libVLC 3.0.0; therefore VLCKit gained all the new media properties libvlc received for 3.0.

The password storing is now using the system toolchain, and the bookmarks were rewritten.

Finally a new build of 2.6.0 was pushed on the Store, to fix an iOS 6.1 interface issue. We hope it will be approved soon.


On Android, we started by using some of the new classes from Android Design Support Library to reduce our code and match the Material Design as much as possible.

We added autodetection of the USB keys, both on the Android and Android TV applications.

We now save the position and time in the last playlist played, for audio playback.

We also fixed some issues for the Amazon Fire TV, added the option for background playback on Android and improved the 3rd party Intents.

Finally an important rework of the libVLC Video Surfaces and playback service was done, but was not yet merged. This will clean a lot the core code for VLC on Android, and should allow better 3rd party applications.


After libVLC, and VLCKit, libVLCpp got the new chapters and title libVLC API exposed. This API will only work if you have libVLC 3.0.0.

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

Monday, June 15 2015

This week in VideoLAN - 6

Yet another week in VideoLAN world

Continuing what I did for the last few weeks, and to please my friend Kostya; this post will tell you the interesting things that happened in the VideoLAN community and VLC development teams, for the last week.

Features and changes

VLC and libVLC

The week started with a few bug fixes, notably to improve the seek over HTTP, in the mp4 demuxer, the audiotrack Android output and the iOS video output.

2 important new API were added to libVLC to correctly get information about chapters and titles, useful for DVD control: libvlc_media_player_get_full_title_descriptions and libvlc_media_player_get_full_chapter_descriptions.

On Wednesday, an extensive patchset was merged by François, modifying the adaptive logic from the DASH module, in order to rewrite the HLS demuxer using the same core logic.
The new HLS module should be easier to maintain, and will benefits from the improvements of the DASH module.

The skins2 module received numerous fixes for UTF-8 strings and Unicode filenames.

In the core, when looking for a codec, the lookup used to be a linear search, and this was just rewritten as a binary search.

Finally, we also got some OS/2 threading changes, Direct3D9 speed improvements for subtitles, more smooth streaming codec support, a new Xcode project to build VLC, improvements on our Doxygen documentation and better support for CC in mp4.


This week, the version 2.6.0 of VLC for iOS was tagged and pushed on the store for review.
This version:

  • supports the Apple Watch,
  • adds a mini-player to control playback when browsing movies or audio,
  • adds better playlists support,
  • improves the interface and thumbnails,
  • fixes numerous issues and crashes.

The version 2.7.0 was started, directly after. It will drop support for iOS6 versions, and the work to support SMB networking was started this week.


The refactoring work of the last weeks was continued. The audio playback background service was rewritten, with the objective of merging it with the video playback, in order to support video playlists.

The requested permissions were also simplified, and some were removed for the recent Android versions.

The VLC control widget is now resizable, we support more remote controls buttons (in both TV and normal modes), and we detect USB plugging/unplugging to refresh the library.

Finally, more code cleanups and MRL fixes in the library were merged.


The WinRT port has seen mostly designs rework this week.

The MiniPlayer is now smaller and translucent, the application is faster to start, the palette were refreshed, and the code structure of the Background audio was completely re-done.


The work on libdvbpsi 2.0.0 was started, and it started by dropping the support for WinCE.

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

Monday, June 1 2015

This week in VideoLAN - 4

A new week in VideoLAN world

Continuing what I did the last three weeks, here is a new post summing up what happened, this past week, in the VideoLAN community and VLC development teams.


For once, I'll speak about the VideoLAN team before speaking about VLC.

This week-end, we had the Q2 meeting of the VideoLAN non-profit organization. We met in Hamburg, hosted by Google.

We spoke about VLC development, VLC new features, VLC mobile ports, libVLC, libav and the non-profit life, including the next VideoLAN Dev Days.

Here is a photo of the group: WP_20150530_14_35_31_Pro.jpg

Features and changes


The week started with a classic fight we have with COM threading on Windows, for the Qt interface.

Then, the Direct3D11 video output, that we plan to use for Windows 10, WinRT and Windows Phone, got subpictures blending support. This should get sharper subtitles for WinRT and Windows Phone, and less CPU used. Some related work on DxVA acceleration was done too.

The buildsystem was then broken (and fixed) by yours truly, to use C++11 atomics; this is the ongoing change to have a more modern toolchain for VLC.

A really cool new feature was added to the OS X interface: the keyboard backlight will dim during playback! This might not work totally if you are on automatic mode. So far, we can't do that on other platforms.

Finally, a long-standing issue, where you could not get the AVI duration over HTTP or FTP protocols, was fixed. This should notably help, in the UPnP cases over HTTP :)

... and many other small fixes.


This week on Android was a refactoring week. Thomas and I did more than 100 commits on refactoring and cleaning the foundation of our VLC for Android application.

The major changes are, of course, not really visible, but are mostly focused on refactoring the libVLCjni code to match better libvlc, libvlcpp and get rid of the kludges that accumulated on the Android application. Some of those commits are quite extensive, but they should not break too much the application.

We also fixed a couple of issues and added the access to Media Information in the browsing view for videos.


A contrario from the previous weeks, iOS development has been extremely busy, with more than 100 commits too. The work was focused on the 2.6.0 release, and fixing a large number of tickets.

The most important fixes went into the library, GDrive, the equalizer, the playback view (including cropping), UPnP and thumbnails.

The mini-player was also extended quite a bit and the ARMv7s slice was re-activated.

The 2.6.0 release is now almost ready.


There were less commit in the interface, this week. However, quite a bit of work on the hardware decoding was done, and is pending merges!

More news about that next week.


We've seen quite a few fixes in libvlcpp, libaacs, VLCKit and the web plugins, but nothing newsworthy :)

See you, next week!

Of course, I have probably forgotten some minor things, but that should be most of it!

Have fun, and see you next week!

Sunday, May 10 2015

This week in VideoLAN - 1

This week in ...

It's can be sometimes quite difficult to follow what's going on inside the VideoLAN community and VLC development, without reading numerous mailing lists. Therefore, I'm going to start to write a post every week doing a short summary of the interesting news.

The issue, of course, lies in the fact that some weeks will be more interesting than others. :)

Those kind of posts might also become a long list of unrelated things... If so, I'm sorry in advance, but I'll do my best to just speak about the most important :)

Features and changes


Last week-end, we merged the text shaping patch using the Harfbuzz library for our freetype module. This will solve the issues with some Arabic and South-East Asia languages, where the glyph were not merged correctly.

The first version of the TTML decoder was merged and was activated last week.

readdir was implemented in the FTP access, this will allow browsing of the FTP servers, that are announced in a service discovery.

$o is now usable to get the total number of tracks metadata, in the str_format_meta, to modify your VLC Window title.

libvpx was updated to 1.4.0 for the next releases.

The brightness/chroma adjustment filter was ported to support 9bits and 10bits chromas.

The default compression value for the PNG encoder was lowered to create faster snapshots (and backported to 2.2.2).

The height of the audio bar of the audiobargraph modules is now customizable.

Crashes were fixed in the TS, MP4, image and playlists demuxers.

And quite a few improvements were done in the MP4 and DASH modules.

Voice and Gestures control

I've also been coding some voice and gestures control for VLC, using RealSense SDK on Windows.

Try it!


VLC for Android mostly had a bugfixing week.

The directory browser got improved a bit, in order to merge it with the folder preferences.

The AudioService has been moved from URI to MediaWrapper, which will allow to pass media options for playback (and should bring support for more format).

Some Samsung CPU are banned from Hardware decoding (Samsung Galaxy Core, Samsung Galaxy Ace 4), because they are too buggy.

The mini audio player was restored in most audio browsing activities. This was a regression due to the move to AppCompat 21.

A Play action was added to folders, and the Play as audio action was fixed.

And finally, we did a lot of code cleanup after running Coverity analysis.


Not much was done on VLC for iOS this week, beside bugfixes. The reason is that Felix, Caro and Tobias are all working on a branch, that should be merged soon. We'll speak about it when it's merged in the main line.

What I can say is that the next release of VLC for iOS should be named 2.6.0.


A contrario, the WinRT port has been quite busy.

We're preparing a 1.4.0 release for WinRT (Metro) that should fix most of the important regressions we had (subtitles, DLNA) and should also fix the missing metadatas. For that, we've updated the libVLC core, patched taglib library, and reworked the whole media creation in the code.

The winrt access module now is way more clean and accepts both URLs and WinRT Tokens.

We still have one big bug to fix, so let's hope that we can release next week :)

libbluray, libdvd*

After numerous BD-J fixes last week, this week was a stabilization week for libbluray, so nothing exiting here.

libaacs, on the contrary, got quite a bit of cleanup, and notably the split of system-dependent code to different files. Quite a few potential crashes were fixed.

libbdplus got common code merged from libbluray and libaacs.

Web plugins

The rework with libvlcpp is coming to the end.

This week, a few bugs and regressions were fixed, especially on return types. And compilation with MSVC should be fixed.


This week, we've been discussing updates on our development bounties list we have. We're discussing new ones, and increasing the prices of some other. We'll discuss that at our next meeting, at the end of the month.

We've been discussing also the possibility of moving our servers outside of France, because of the new spying laws.

We've also given commit access to Tobias, to the iOS port and libraries. May he fix all our remaining bugs.

And that's all for this week!

Sunday, May 3 2015

Control VLC with your voice and gestures


In VLC, we have hundreds of modules to do many crazy things, including karaoke or puzzle filter!

Today, I coded 2 nice features, using Intel® RealSense™ technology: one is a voice control plugin for VLC, and the other is a gestures control plugin for VLC.

With the voice control plugin, you can ask VLC to play, pause, stop, just with voice commands, like in 2001: a space Odyssey.

With the gestures one, you can move your hands before the 3D camera, a la minority report.



You can find the Windows binary for VLC 2.2.1 (should work in all 2.2.x versions) here:

You need to install them in the plugins/control folder in your VLC installation (usually in C:\Program Files (x86)\VideoLAN\VLC) and restart VLC.

You need to have RealSense runtime installed too, if you don't have it.

Finally, you need to activate them in the preferences. (advanced -> Interface -> Control Interfaces).



Of course, I provide, the source of the plugin here, so you can hack on it, and recompile it.

To build it, you need the latest version of the RealSense SDK, with a version above 4, and you need to point to the right headers. Here is another patch to help you build it, if you need.



The voice module should understand the following control:

  • "Play"
  • "Pause"
  • "Stop"
  • "Next"
  • "Previous"
  • "Volume Up"
  • "Volume Down"


The gestures recognized should be:

  • waving to stop
  • swiping to go to the next video
  • "V sign" to go to the previous video
  • tap in front of the camera to toggle play/pause
  • "Thumb Up" to increase the volume
  • "Thumb Down" to decrease the volume
  • "Full Hand Pinch" to mute the sound''

Have fun!

Tuesday, January 27 2015

Blu-Ray libraries releases

Blu-Ray libraries

Today, we release a new version of all our Blu-Ray libraries:

  • libbluray 0.7.0
  • libaacs 0.8.0
  • libbdplus 0.1.2

Those releases feature minor features improvements, and numerous bug fixes.

The biggest changes lie on the BD-J support, Java 8 support, fonts management and the raw access to devices and filesystem.

Our BD-J support should now be mostly working for most disks.

The filesystem changes is preparing the development of ISO support in those libraries.

Finally, a lot of code for portability has been merged between those libraries!


You can download those on the right pages:

Have fun!

- page 1 of 13