Planet VideoLAN

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, ...

November 30, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 28

28th week of VideoLAN reports

Another week, another weekly report about VideoLAN and VLC development.

I'm still here. :)

Features and changes


Following last week's work on Freetype font fallback on OS X and iOS, after a few fixes, we removed the QuartzText and the WinGDI text renderers.
The Freetype renderer should always be the best one, now.

We've added a new libVLC event: libvlc_MediaPlayerChapterChanged to detect a change of chapters and we've fixed the libvlc_MediaPlayerTitleChanged event, that was not fired in all cases.

The core handling of objects was changed, to notably have a lock per parent-object and not per instance; this should reduce the lock contention.
Also in the core, the variables callbacks were changed in order to be privatized and some string-related functions were renamed.

Also in the core, an important change was introduced in the flush mechanism for decoders and packetizers, adding a custom pf_flush function.

The HLS support was improved by adding support for inconsistent HLS playlist numbering, fixing live pruning, using targetduration hints for HLS updates and other small fixes.

On the Blu-Ray side, we've fixed interactive titles selection, subtitles that disappeared too quickly, and implemented overlay wiping to fix some HDMV menus selections.

Finally, our plugin now supports NowPlaying events and we've pushed fixes for the Qt interface, for an XSS in the HTTP interface, the new Youtube URLs, and improved our OS/2 support.


On Android, we've polished the 1.7.0 release, fixing the menu's look, some crashes and some alignments in the video player. This version should go live during this week :)

We've worked quite a bit on the ChromeOS version, more news about this, next week :)

However, the biggest work was done for the next release, by adding support for video playlists, something that was requested for years...
The core of the feature is done, the playback is correctly working, and you can play a group or all the elements from a directory.
What is currently missing is an interface to manage those.


On iOS, we've integrated the new subtitles renderer based on Freetype, improved our fonts support and fixed some crashes in the core.

We've also improved the notifications, the information panels, the media library and the SMB browsing.

A lot of features were added to the tvOS port, but once again, this is still only for testers. The release is on its way, as soon as we can push it on the store.

libbluray and other libraries

On libbluray, we've fixed the Android compilation (no BD-J support and untested), fixed small numbering parsing issues, and fixed support for Windows pathes that are in non-ASCII folders.

On libudfread, we've made the same changes for Android compilation.

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

November 30, 2015 09:09 AM

November 23, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 27

27th week of VideoLAN reports

And we're back to normal, so here is the (now usual) report detailing the work in the VideoLAN community, from last week.

Paris Open Source Summit

The VideoLAN team was at the Paris Open Source Summit, in the association village.

Our stand was featuring the Android TV version decoding 4K playback on a Sony TV, a few tablets running various versions of VLC, the Nexus player with VLC playing DVDs on Android TV.

We also had hellium-balloons, lots of candies and free t-shirts.

Paris Open Source Summit

Features and changes


This week, we've started by updating the VideoToolbox decoder for iOS to support 4K decoding on iPhone6S and iPhone6S+.

We've improved the Blu-Ray module to correctly save-and-select the subtitles when activated from the Top Menu, and not from the VLC menu. We also got fixes for the next/previous chapters buttons.
Also, a way to call the pop-up menu was merged in the core.

As it's now customary, our Freetype decoder was improved again: on Windows, it can now support Fonts fallback when the font name or filename are not in English. This is great for asian names, but also for German, where all the font names are translated. (The bug was opened 5 years ago).

The iOS and OS X Freetype font fallback was implemented, at the end of the week. We should now have support for ComplexTextLayout and fonts fallback working on all the major platforms, and the Freetype module should be as nice as the QuartzText renderer, on OS X.

We've also improved the seeking for CD-G files (karaoke), and the fix came from a new contributor!

The adaptive streaming module was also modified to improve the bandwidth detection and tweak the adaptivity algorithm (moving average/vertical horizontal filter with an observation window of 250ms) and merge more code between HLS and Dash.

The last part of the core input seeking/decoding deadlock were merged and fixed. See previous weeks for details. :)

We've also added support for embedded cue-sheets in FLAC.

Finally, we updated PNG library for CVE and the iOS Dialog Provider was also largely rewritten to support tvOS.


We've spent most of the week stabilizing the Android 1.7.0 release.

Notably, we've improved the playlist look, refactored and removed most of the dialogs (using Snackbars), changed the file deletion logs, and fixed the playback service and the notification.

We've also been working on the next big features: video playlists and extensions. Those will be merged later. :)


We've did a lot of fixes in the streaming panel, so it has all the features of the iOS and Android versions.


We've pushed the tvOS beta in Testflight, for the people who registered :)

A lot of features have been merged on the project. A blogpost will follow with the complete features.

November 23, 2015 10:46 AM

November 16, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 26

26th week of VideoLAN reports

This week-end, I really did not feel like writing anything about last week, because... you know... fuck it.





But then, I realized that I shouldn't stop living because some assholes believe the way I live is the wrong one.

So after crying a bit, here is the short (and late) report about last week in the VideoLAN community.

Features and changes


Once again, a week started with fixes about our adaptive streaming support ( :) ), notably the Smooth Streaming part, to support the Language attribute and per-stream Timescale.
Also, the computation of the bandwidth was reworked to supported split-streams (audio and video separated).

During the week, we've also fixed the streams selection (like the language) when changing quality during the adaptivity of the streaming.

We've also improved our chained OggFlac support (#14972 and #10328).

We've continued to fix the seeking, the flushing and pausing regressions in the core, that I spoke about last week.

On the Blu-Ray menu integration side, we've fixed the selection of audio tracks and subtitles tracks from the Blu-Ray menus (and not the usual VLC topbar), and a problem in chapters handling.

Salah fixed an extremely weird bug on our Freetype integration, because of the new font fallback system: #15840).

Finally, we've also worked on the Youtube integration, we've cleaned our audio output and our hardware decoder on Android and fixed a rotation regression.


Since this week, and the next update, VLC on Android will require Android 2.2 (API 8).
I dislike this decision, but the fact that it allows to correctly drop a permission and the fact that the Percent library requires it forced us to do it. If you have a clean way to revert this, please feel free. :)

The audio playlist was rewritten by using the RecyclerView class: this is cleaner, shorter and more Android-like. It will allow us to add more features to this playlist too, (like the duration of each track).

The video list was also updated to use the RecyclerView class. However, this is a bit a smaller change than the playlist.

We've reworked our notification to always show the next and previous buttons: if the playlist is too short, they will restart the current media.

We've added an option in the preferences to remember the brightness level in the video player, if you want.

Geoffrey also did a large refactoring to move the Java code around, so that it makes more sense for the new developers working on our project.

We've also fixed a few crashes reported in the beta program.


Like last week, most of the work was done on Apple TV instead of the iOS application, while we're waiting for the version 2.7.0 to be updated on the store.

Even more than last week, the commits were quite numerous, but I can't speak too much about those features, yet. I hope this will change soon. :)


The work on WinRT was resumed quite a bit, adding new features and fixes to the application:

I hope we can provide a release in the next weeks.

That's all for this week! See you soon!

November 16, 2015 10:46 PM

November 09, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 25

25th week of VideoLAN reports

Here is a new report detailing the work that happened during the last week in the VideoLAN community.

The last weeks have been crazy busy in VLC development, so this week was finally calmer, because we've focused on bug fixing and testing. :)

Features and changes


The week started with the removal of the old Smooth Streaming input, deprecated by the new demux code added last week. As the new one is less hackish and has more code in common with HLS and DASH, this should be a big win.

Then, Thomas added a flush and a drain function for the audio filters in the core, and started using it for the new SoXR resampler. It was merged internally, later during the week, with the video filter flush.

We've added support for the Closed Captions (608) from DirecTV in our H.264 playback packetizer.

libbluray was updated to 0.9.1 to support more BD-J menus.

The core was fixed to correctly preparse directories items, which should fix the Android directories view. A test was added to be sure that this will not be broken again.

Finally, a potential crash was fixed in libvlc_media_release, we've had more fixes in the adaptive streaming code, deadlocks during pause were fixed, and we've had a few fixes about block discontinuities.


On Android, this week, we've been working on the 1.7.0 release, fixing some important bugs and regressions.

We've started the week by fixing the fact that some NowPlaying meta were ignored for webradios.

The SoXR resampler was activated in the Android builds; this should remove most the distortions people were hearing, in the past releases.

We've removed the ArrayAdapter from the Video List, to speed up the view and, at the same time, fixed some navigation issues, introduced by the new sidebar code.

On ChromeOS, we've replaced the Directory browsing to support the native open dialog.

Finally, we've worked on the broacast and control intents and removed the RemoteControlClient class, replaced by the new MediaSessionCompat code.


This week was quite calm on the iOS front, because most of the work was done for the Apple TV port.

I can't detail too much the new features, but there were quite a lot of commits, and some very exciting ones, so that we can have a correct first release soon. :)

More news on that later. :)


After the numerous fixes of last week, we've fixed some issues on still-frames menus, and we've pushed the libbluray 0.9.1 release, on our website.

Please test and report broken Blu-Rays!

That's quite a bit for this week! See you soon!

November 09, 2015 08:31 AM

November 03, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 24

24th week of VideoLAN reports

The last few weeks were extremely busy, so here is the latest weekly report about VLC development, hoping it won't be too disappointing. :)

Features and changes



The week started with a workaround of a very problematic Qt5.5 regression. Qt5.5 is breaking 2 important behaviors of VLC: video and hotkeys.
One is a Qt regression that was introduced in Qt5.5 and one was probably an issue in VLC, but could also be an issue in the X server. We worked-around the latter. The former is still blocked by the Qt developers.

Adaptive streaming

The adaptive streaming module got a lot of changes, notably to better support byte-range requests, and to add timeline seeking. This was a preparation for some smooth streaming support.
And indeed, at the end of the week, the Smooth Streaming support was added to the adaptive module, deprecating the old smooth streaming module. We now have only one logic for HLS, Dash and Smooth.

Related to smooth streaming, our mp4 mux got support for VC-1 and WMAPro muxing; while the mp4 demux got support for WMAPro.
The mp4 demux also got support for some Youtube-specific metadata.

Core and modules

In the input core, the preparsing was moved inside a thread, to avoid getting VLC stucked at exit.

The audio output core was modified in regards to its thread-handling, notably when VLC is paused. This allowed to fix an important Alsa module issue, by reducing the locking scope.

We've added support for SoundCloud private tracks, fixed a Youtube issue when using HTTPS, fixed the vimeo quality (low-res was selected before).

Finally, we've added a new resampler module based on soxr. This module should provide better quality for less CPU than the current resamplers we have.


We also fixed:


A massive work this week was to about the Android permissions.

In the end, we:

This will be in the next release we do, probably 1.7.0.

We also prepared the app for Android 6.0:

This will be activated when we do a release targeting the new SDK (too buggy at the moment).

We also rewrote the sidebar menu, fixed numerous crashes, and fixed some sorting issues in the audio view.


We first worked to finish the iOS 2.7.0 release, to fix a few remaining issues, and update translations.

The tvOS application development is accelerating fast.

We now have correct SMB, UPnP and Plex browsing, and support for the Cloud providers. The playback over HTTP, FTP and HTTPS works fine too.

We've improved the video player and added more animations, and we worked on the speed of the app.


We've had numerous changes on libbluray, notably to fix some Java menu issues on the following Blu-Rays: Cabin in the Woods, The Grand Budapest Hotel, Birdman...

We've improved the Java security model in BDJThreadGroup.

Finally, we've added the class file manipulation functionality from the asm library. This will allow to fix the playback of Penguins of Madagascar.

We've also had fixes on libdvdcss for Android.

That's pretty good for this week! See you soon!

November 03, 2015 05:12 PM

October 26, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 23

23rd week of VideoLAN reports

Yet another week, another new weekly report about the VideoLAN community and the VLC development community.

Features and changes


Protocol Redirections

We've added support for inter-module redirections.
In the past, the HTTP or FTP redirections were only done in the same module. That caused limitations, if we wanted for example to redirect to a different protocol, like HTTP-> FTP or HTTP -> HTTP2.
Now, a redirection will spawn a new module, that can support a different protocol.

OS X notifications

In the past, we've supported only Growl for notifications on OS X.

Since quite a few versions, OS X supports native notifications. So we've added support for those notifications. Growl is still possible as a fallback.
Those notifications are only visible if VLC is in the background, of course.

Evas video output

As you've probably seen, on this blog, lately, we've done a EFL/EMotion backend.

This was the first step, but it was done with a memcpy at every frame, which is BAD and SLOW.

Therefore, we've added a new video output to VLC, based on Evas, the canvas library of EFL. It supports directly YUV, RGB, and TBM (Tizen Buffer Manager).

We also added a new libVLC call, so you can get VLC to draw directly in an Evas Object: libvlc_media_player_set_evas_object.

We will use that for our Tizen port of VLC.

Subtitles font fallback

VLC font rendering engine was never good for non-western languages.

A few month ago, we've added support for harfbuzz to shape CTL correctly.

This week, Salah-Eddin added support for font fallback to our Freetype module, for Linux, Android and Windows.

On the following example, we have Korean, Japanese and Chinese characters:


This is how it used to render for 2.2.x: Without-fallback.png

Cool, no?

Core input

The week actually started with a rework of the demux controls in the core. This makes stream, the access and the access_demux modules more similar and simplifies the code.
Moreover, sometimes the demuxers can seek even if the access cannot (or the other way around); those cases should behave correctly now.

The old caching module was fixed when seeking near the end of the file. This was the cause of the WMA regression on the latest Android versions (1.6.x up to 1.6.4).


The ALSA device selection was fixed so that the "default" choice is always available. And the ALSA device selection menu was fixed too.

As usual, we've added misc changes in the mp4 demuxer, the OS X interface, the playlist demuxer.
Also the nightly builds on Windows were updated to more recent 3rd party libraries, notably codecs.


After last week, we kept on doing small bugfix releases for VLC/Android: we've published 1.6.5, 1.6.6 and during the last week.

The bugfixes are focused on seeking, small crashes and Android TV remote events.

We've added optional buttons to seek in the video player, like in the Beta application, like this: Nexus5_SeekButtons.jpg

We've rewritten the preferences view by using the new Android Preferences view supplied by appcompat 23.1. It should fix a few bugs we had, notably the title color of the preferences. It should also give us a slightly better Android TV preferences dialog.

For the next release, we've rewritten the MediaSession control using the new MediaSessionCompat. This means a new notification, new lock screen integration, better integration with external devices, and probably a good step on the road to Android Auto.

Finally, we've removed a permission for Android TV: AUDIO_RECORD.


This week, we released VLC for iOS 2.6.6, fixing numerous crashes and adding support for SSA styled subtitles.

Besides that, there was nothing very visible on iOS this week, because most of the work was done to support Apple TV, in the same codebase.

This mostly involves splitting some logic from the views and rewriting most of the views.
It also requires modifications of some of the external libraries, notably to support the cloud services.

And of course the usual fixes for UPnP browsing.

We've also had a few small commits in DVBlast, VLC/Tizen and VLC/WinRT.

That's pretty good for this week! See you soon!

October 26, 2015 02:35 PM

October 19, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 22

22nd week of VideoLAN reports

A new week, a new weekly report about the VideoLAN community and where the VLC development is going.

Compared to the very busy previous week, this one might look a bit calm. :D

Features and changes


The week started with fixes in quite a few modules: the new SAPI module, HLS, videotoolbox, TTML, MMAL raspberryPi decoder, OS X interface and several encoders.

As prepared during the previous week, the new SSA renderer for OS X and iOS was plugged.

There were numerous changes to our MP4 demuxer, notably to better support fragments. This was required to support seeking in DASH streams dumped to files.

The Tizen audio output was modified to detect, at runtime (instead of compile time), the API level supported by the platform.

The Disc Total metadata was added to VLC core, VLC Qt interface, and libVLC.
Parsing Disc number/Disc Total metadata in MP4 and MP3 files was also added.

The Soundcloud parser was completely rewritten.

We've added support for the SAT>IP protocol and discovery in our UPnP stack.

Finally, a new module for OS X notifications was added, to support the native notifications, instead of Growl.


This week was a bug-fixing week in Android: we've published 1.6.2, 1.6.3 and 1.6.4 during the week.

All of those releases were focused on fixing small issues like:


On iOS, we've released the VLC/iOS version 2.6.6 in beta. It should fix the biggest crashes, and adds support for SSA-styled subtitles.

On the development branch, we've worked on AutoLayouts, RTL, the sidebar menu.
We've also added support for Touch ID, to unlock the application and synchronization of recently played streams via iCloud.

On tvOS, a bit more work was done to split the interface from the logic. As I already said, the goal is to have one-logic and 2 different interfaces, a bit like we do on Android and Android TV.

We now support UPnP, SAP and SMB in the tvOS application.


On WinRT, we've actually pushed 1.8.2, 1.8.3, 1.8.4 on the store for both Windows Phone and Windows RT.

The main features are:

We've also had commits in DVBlast, libdvdread, libbluray and VLC/Tizen.

That's all for this week! And thanks for all the fish!

October 19, 2015 01:27 PM

October 12, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 21

21st week of VideoLAN reports

For the 21st time, here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

Features and changes


Last week started again with Felix committing, this time to port the CAOpenGLLayer to OS X.

The iOS AudioUnit output gain support for a correct mute implementation, and was moved to a modern Objective-C syntax.

The core gained stream_CustomNew(), to create custom streams; it also gained demux_New() and those 2 functions will be used for adaptive streaming, that need slave streams and demux.

The bluray module gained support for Blu-Ray ISO, through the new UDF implementation.

The HLS module now supports HLS discontinuities, which has been a pain to support for us, so far.
We've also added support for WebVTT and TTML in DASH.

The libass version was updated to 0.13.0 and this should remove the infamous "rebuilding font cache" on OS X and Windows Vista (and later). Anime fans will be happy :)

A Text-to-Speech subtitle renderer was added for Windows, like we did for OS X. It's useful for people with visual deficiencies, that can't read those subtitles very well. It's based on the SAPI 5.1 API.

Finally, we also got fixes for HLS, DASH, cache prefetching, Blu-Rays, OS/2, Closed Captioning sizes, Chromecast, TTML probing and the About view of the OS X interface.


DVBlast, the VideoLAN DVB server, had a 3.0 release.

This release is an important version, that was partially rewritten to use the libev library for the event loop.

It's also the first release supporting OS X.

The new features include PID and SID remapping and support for Deltacast ASI cards.

Download it now!


At the same time, multicat got a 2.1 release.

This release:

Tarballs are available now on the project page.


The Android port was busy to prepare a 1.6.0 and a 1.6.1 releases.

The most visible change of last week was a big interface speed up, in the video and audio lists and the thumbnailer, done by limiting the number of threads and removing some unneeded thread barriers.
We've also added an application-wide threadpool to help managing those threads.

libVLCjni was fixed to support and run correctly on Android 6.0. There is still work left to do for the new permissions model, but that will follow quite soon.

We've had numerous fixes for small regressions mentioned during the 1.4.x and 1.5.x development cycles, notably in MKV/FLV support, screen dimming, various crashes, and incomplete metadata.

The releases 1.6.0 and 1.6.1 were pushed in Beta and in Stage-Rollout on the market.


MobileVLCKit, the libVLC binding for iOS got support again for the VLCAudio class, including mute support.

There has been improvements on the snapshots events and methods.

The port to tvOS has also been worked on, notably by separating more cleanly the interface from the logic in the iOS apps, so we can have a different interface for tvOS.


The WinRT port got changes in the theme, and some colors should now be in your roaming settings.

One of the major crash in the Thumbnailer (start of the application) was fixed: it was due to a race condition when seeking to get the snapshot.

The Windows Indexer API is now used on the Windows 10 Mobile version, to get better search results.
We have more strings translated, and an update of the French translation.
Finally, the gestures are now correctly disabled in locked mode.

The releases 1.8.0 and 1.8.1 were pushed on the store, with all the fixes and features of this week and the previous week.


This week, quite a few changes happened to x264.

The largest changes were ARMv7 and ARMv8 optimizations, done by Martin and Janne, which total around 30 commits on the 40 commits pushed this week on x264.

Anton changed the predictors update and the the row VBV algorithms.

Finally, x264 also has received fixes for PowerPC on FreeBSD, and for the high bit depth lookahead cost compensation algorithm.

That's quite a lot for this week! See you next!

October 12, 2015 09:14 AM

October 05, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 20

20th week of VideoLAN reports

For the 20th time, here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

I'm surprised to have been keeping at it for already 5 months. It's a bit boring to do, and also a bit lonely, but I believe it is necessary so that everyone knows what's going on.

Features and changes


For once, we'll start with libVLC, and the new libVLC backend for EFL/Emotion. You can now use libVLC easily in an EFL or Elementary application!


Last week started with Felix fixing an open bug on the Lua extensions of VLC on OS X.

Then, we received a new audio output for the Tizen Operating System.
So far, it works quite fine on Tizen 2.3 but has extra features on 2.4. The audio/video synchronization is not yet complete, though.

The iOS OpenGL video output was improved to support OpenGL off the main-thread and multiple OpenGL contexts in a sharegroup (multi-thread OpenGL for the n00bs like me in OpenGL).

The libVLC port for tvOS was also improved, notably to correctly disable ARMv7 assembly, that cannot run on the Apple TV.

There were also changes to speed up subtitles sorting and fixes on TTML, WPL, adaptive streaming, and the videotoolbox module.


There was a 0.9.0 libbluray release on Saturday, that mostly added:

It should be integrated in the next major version of VLC.


The week was extremely busy on the WinRT side: we've had more than 140 commits in a week!

The commits were mostly to fix more of the 1.7.0 release issue, but also adding features:

Let's hope 1.8.0 can be out next week!


Not much on Android, this week, just a couple of bugfixes.


Quite a few things happened on the Tizen port, and we have a basic application running well.
More on this in a later post, I believe :)


iOS received a few fixes for:

The tvOS port had a few changes, notably on the bitcode integration. More on this, a bit later, when we have something to show.

That's quite a bit for this week! See you next!

October 05, 2015 10:50 PM

October 04, 2015

Jean-Baptiste Kempf

libbluray 0.9.0

Almost 6 months after libbluray 0.8.0, I'm delighted to announce libbluray 0.9.0!

We published, in the meantime, a version 0.8.1, that was focused on fixing the biggest regressions of 0.8.0.
Between 0.8.0 and 0.9.0, we had around 100 commits.

libbluray 0.9.0 introduces a few cool features:

Have fun testing it!

October 04, 2015 03:17 PM

September 29, 2015

Jean-Baptiste Kempf

new libVLC backend for EFL/Emotion

This is quite short a post about libVLC in EFL (Enlightenment).

Emotion is the multimedia API of the Enlightenment Foundation Libraries (EFL) used in the e17 desktop environment. It is similar to KDE's phonon.

For a long time, the libVLC backend for Emotion was not a full backend, but was considered as a generic player, mainly because of the license, at the time.
The 2 full backends in EFL were based on GStreamer and Xine.

Since last week, there is now a FULL Emotion backend based on libVLC: see libVLC emotion commit.


We will use that backend to port VLC on Tizen :)

Please test it and report bugs :)

September 29, 2015 08:26 AM

September 28, 2015

Jean-Baptiste Kempf

Last weeks in VideoLAN - 19

19th week of VideoLAN reports

Because of the VideoLAN Dev Days that happened last week-end, here is a dual-week report of what has happened in the VideoLAN community and VLC development, during the past 2 weeks. :D

It explains also why there may not be as many commits as we usual have. This report is also shorter because I don't have enough time to detail as much as I'd like.

VDD 2015

The VideoLAN Dev Days 2015 were a huge success, with numerous attendees and quite a few nice conferences.

I'll do a longer post about it, but here is a nice picture during one of our meetings!

Features and changes


We've finally merge the work from outreachy on the TTML subtitles. Largely reworked by Hugo, this makes it supports most of the styles from the TTML specification.
We still need a bit of work to merge multiple styles.

François worked on the subtitles support for DASH and HLS, because we had quite a few issues with subtitles streaming input; be careful, it is not ready yet. :)
He also worked on lazy-loading of the playlists, mp4 seeking.

David found a work-around for AirPlay output that was stuttering, on OS X.

We've had large refactoring on the OS X interface, to continue the cleaning, that you've seen in the past weeks.

Rémi worked on the avcodec direct-rendering support, to always assume edge-emulation; and on simplifications of the hardware decoding setup in this module.

This work introduced 2 calls in the core: decoder_GetPicture() and picture_pool_Wait(). The first can be used instead of decoder_NewPicture() when the decoder manages correctly the format updates. The latter is a variant of picture_pool_Get() that sleeps until a picture is available.
This could be useful for the future asynchronous decoding feature...

Finally, we've had fixes on the Mac OS X advanced preferences, the iOS vout, the Direct3D11 video output, a 2.2.0 WMV regression, videotooolbox crashes.


The iOS port has been quite busy, starting by fixes for iOS 9.

We did a release numbered 2.6.5 of VLC for iOS.

The MediaLibraryKit project was updated for iOS 9 and for tvOS.

We've also had fixes for WatchOS, for iOS 9 searches, for the database indexing, and thumbnails.

We've also disabled the search if the folder is hidden behind a passcode, to avoid embarrassing results. :)


We did a 1.7.0 release for Windows Phone, Windows RT and Windows 8.1/10.

This is major WinRT release, adding the hardware decoding, changing a lot of the internal, and improving the interface to match Windows 10 look.

We've updated the projects to support both a Universal Windows Project and a Windows 8.1 project.

We've fixed a few bugs from this 1.7.0 release, notably crashes.


After the 1.5.90 release, things have been quiet on the Android front.

We've had translations updates, fixes for crashes, fixes for last playlist resuming, playlist&random states on resume and a few other small bugs.

Finally, yours truly fixed a very important bug, where we exported more than 14000 symbols in instead of 200. This will make the binary quite smaller and faster to load.

September 28, 2015 06:05 PM

September 16, 2015

Jean-Baptiste Kempf

The future of codecs is at VideoLAN Dev Days '15

VideoLAN Dev Days 15

Like the last few years, we are organizing the VideoLAN Dev Days, this week-end, in Paris.

The conference is nicely hosted by the French unicorn Criteo and sponsored by Google and Videolabs.

Last year was in Dublin:

New Codecs conferences

This year, we'll have quite a few nice talks, focused on all the new and future of open and open source codecs!

In fact, we will have talks about VP10, Daala, Thor and x265.

Video codec Talks

Alex Converse, from Google, will speak about the future development of VP10.

Timothy Terriberry, from Mozilla, will speak about the ongoing development of Daala, and do an update compared to what he spoke about last year, at VDD14.

Thomas Davies, from Cisco, for his first time at VDD, will speak about the new codec named Thor.

Finally, Deepthi Nandakumar, from MCW, will speak about x265, the new implementation of the H.265 encoder, inspired by x264.

Clearly, the fight between the new generation codecs is just beginning! :D

Other talks

We will have talks about VLC 3.0, the speedup of the VP9 decoder in FFmpeg, a new AAC encoder for FFmpeg and the open source community, and a few other surprise talks!

Come and see us!

September 16, 2015 01:56 PM

September 14, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 18

18th week of VideoLAN reports

Here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

Features and changes


The week started with the addition of a long-asked feature in VLC: hotkeys to increase and decrease the size of the subtitles, without going to preferences or restarting VLC.

We then had several fixes for the Bluray support and mostly BD-J menus, that should now work correctly in VLC.

The skins2 module was fixed for some windows managers like Gnome 3 and Unity that could sometimes keep the taskbar above VLC.

The big mutex that we had for Android decoders and video output was removed by Thomas, after a big fight.

Thomas also modified the core loading of decoders and packetizers: we now always packetize. This is done in preparation of the asynchronous decoding that we'd like to merge inside VLC.

François rewrote some parts of the mp4 demuxer related to seeking to improve fragmented MP4 and adaptive streaming support.

We've also had numerous fixes and improvements for the Direct3D outputs, but also for the OS X code signatures, SFTP input, libVLC playlists, Video Toolbox and subtitles handling.

Oh, and one more thing... we started to prepare VLC for tvOS. :)


This week was mostly a preparation for the next major release.

What we mostly did was fixing bugs, notably in audio playback, in cover art management, chapters display and in the bitmap cache.

We largely modified our Android Thumbnailer to fix regressions and support DVD thumbnails.

We also tweaked a bit the interface for advanced options and started to load asynchronously the images for the video list.

Finally we updated all the translations and pushed a version numbered 1.5.90 on the Play Store, in beta.


On iOS, we prepared and pushed the 2.6.5 release, fixing a couple of regressions, notably the handling of the vlc:// protocol.

The master was updated to match the latest libVLC 3.0.0 which we will base 2.7.0 on.

We also fixed a few bugs for this next version.

Finally, some code to build VLCKit for the new tvOS was merged.
It's very early though, but we have video playback! :)

tvOS simulator screenshot


Last week was a calm week, mostly on the UI side, for WinRT.

We've spent our week fixing regressions and issue in the thumbnailer, in the video output and fixing crashes.

No new feature, for once :)

That's all for this week! See you next! Have fun!

September 14, 2015 03:26 PM

September 08, 2015

Jean-Baptiste Kempf

This week in VideoLAN - 17

17th week of VideoLAN reports

As this now almost an habit, here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

You'll see that this week has been busy on VLC's core and the WinRT port.

Features and changes


The week started by adding the support for the newest versions of libavcodec/libavformat, who deprecate a few API and symbols that we were using. VLC 3.0.0 will be fully compatible with those releases.

access and stream

We then had quite a few modifications in the size reported by the access modules, that allowed to introduce a new helper stream_GetSize() that correctly reports unknown file sizes.
Related to this, the stream_Read() and stream_Peek() functions now warn if one doesn't check the results; and a stream_Tell function was exposed through libvlccore.

The stream filter code was also streamlined to have a proper seek function, instead of a call to the Control() one and stream_Seek() was exposed to modules too.

The STREAM_IS_DIRECTORY Control call was improved, to behave similarly to the GET_SIZE one, and a ACCESS_IS_DIRECTORY was introduced in the same way.

All those changes are here to clean the VLC input and notably the stream filters, that were abused in their design. This is important to ensure that VLC always behaves in the same way, for all inputs, but also to correctly support all weird cases (a zip on a SMB share, containing an MKV with WMV in it).

We also removed the byte offset from seekpoints/chapters. Seeking is now only time-based.

the rest

The block allocation was reworked too: we remove block shrinkage feature and we added a block_TryRealloc() function.

Continuing the work of last weeks, the work on Video Toolbox acceleration for iOS and OS X was finished, mostly by fixing the memory management of frames.

The MediaCodec for Android code was modified to prepare the work on asynchronous decoding, by reworking the support for MPEG-4 video and allow late opening of the module.

The prefetch module was modified to support buffering while the input is paused.

Finally, the calls to the deprecated NSAutoreleasePool function were removed from all the OS X code; we removed the deprecated GnomeVFS module; we fixed issues with videos that have an alpha plane; and, of course, we've improved the HLS and DASH modules.


As already said, a large part of the work for Android was to improve again the decoding speed, which is a focus of us since quite a few weeks.

We fixed numerous issues for the Android TV port, but also in the playlist management, and the video lifecycle. Those issues were hard to track down, but they should be well fixed :)

The code of advanced options during playback was simplified and a corner-case fixed.

Finally, we've started to integrate the new DataBinding API into the application: this code is not merged yet, though. Maybe next week.


As for Android, most of the iOS work was done on the hardware decoders.

However, a bit of work was done on VLCKit to fix memory leaks and to rebase the work on top of the normal VLC code.


Once again, the WinRT port was the more active, with almost 100 commits in a week.

Most of the core changes were to solve deadlocks, notably after using the hardware decoders, and the Thumbnailer.

The interface was updated to fix alignment bugs and issues reported by numerous users.

A large work was done on gestures and keyboard shortcuts to support more of them!

Finally, the audio and subtitles synchronization was implemented to match the desktop and the iOS and Android versions!

A new release should be expected soon!


I was invited to speak at the Techniche conference about VLC, VideoLAN and the rest :)


That's all for this week! See you next! Have fun!

September 08, 2015 09:56 AM