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:

  • new API to access files from the VFS: bd_get_meta_file() and bd_read_file(), this is useful for embedded subtitles,
  • better support for usage in C++ projects
  • largely improved support of the BD-J menus and features
  • fixed Xlet font-caching (with security checking)
  • caching of BD-J bdjo objects
  • numerous fixes for crashes and small issues

Have fun testing it!

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.


  • It requires libVLC 3.0.0
  • It supports the major part of the Emotion API, including some that the other backends don't support,
  • It misses visualization support because there is no libVLC API for this yet,
  • It misses mouse events support because there is no libVLC API for this yet,
  • It misses some events, notably to change the DVD angles and some other we did not understand,
  • It's not yet the fastest, because it would require a new video output in VLC.

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

Please test it and report bugs :)

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.

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!

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!

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!

page 1 of 46