Keyword - VLC

Entries feed - Comments feed

Monday, September 28 2015

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.

Wednesday, September 16 2015

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!

Monday, September 14 2015

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!

Tuesday, September 8 2015

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!

Tuesday, September 1 2015

This week in VideoLAN - 16

16th week of VideoLAN reports

This weekly report of what's happening in the VideoLAN community and VLC development is a bit late, because I'm in India, a bit far from a stable Internet connection :)
However, here it is.

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

Features and changes


On Monday, Rémi rewrote the core part dealing with temporary files, introduced vlc_memfd() and rewrote the timeshifting code related to those files.

François worked on the background rendering of closed captions and subtitles, and improved the default style of subtitles.

Tuesday, the part of core dealing with caching was splitted from the core and moved into 2 modules: cache_read and cache_block. The core updated accordingly and should allow to have different and new caching strategies.
And indeed, Friday, we received a new stream filter module named prefetch.

Wednesday got us support for iOS hardware deinterlacing, at the Video Toolbox decoder level.
Controlling this is done as an option, which means it might not yet work with the libVLC calls.

We also got fixes in our HLS and DASH support to handle correctly absolute paths and also to simplify the manifests/playlists reloading.

The core was also fixed for a long standing bug on URL parsing with parameters.

Friday, we've added a new module, only for developers, named accesstweaks to simulate access failures and limitations (like limited seeking and slow access) to properly code demuxers.

And to finish, we also got bluray improvements, iOS vout cleaning; but also fixes for memory leaks, for Direct3D11 crashes and for MediaCodec transitions.


The WinRT port was quite active this week, with around 70 commits.

The week started with the cleaning of the Direct3D initializations, the DXGI calls and the libraries linked in.

We then fixed some issues about file management, deadlocks when creating the library and thumbnails.

We also removed a memory copy in the access plugin, for all files; that could improve quite a bit the performance and improve the seeking.

On the interface side, the support for chapters was added, to allow change while playing.
Also on the player, the look of the slider was updated to allow more precise seeking, and the volume slider to match the look of the rest of VLC.

Also, the light theme is back. :D

The colors and the symbols for all the actions were updated to be more consistent around the UI. The animations of the transitions were updated and made faster; and the file browser interface was improved, and adapted for Windows Phone.


This week work on VLC for Android was pretty boring, with only 2 fixes for older versions of Android (2.x), updates of translations and the export of libVLC.setUserAgent() in libVLCjni.

The rest of the work was done, in the VLC core, to improve greatly the VLC for Android performance, by using hardware acceleration in a better way.
This code is still on-going and is not merged yet, so it's not visible yet.


And unfortunately, iOS is not much better than Android, since just a minor change on Dropbox login was merged.

Once again, the reason is because of the work on the core, on Video Toolbox and on deinterlacing.

That's all for this week! Have fun!

By the way, don't forget to register now for VDD, this September, in Paris.

Monday, August 24 2015

This week in VideoLAN - 15

15th week of VideoLAN reports

Yet another week, and yet another weekly report of what's happening in the VideoLAN community and VLC development teams!

We're going back to one report per week, as holidays are over.
But, to be honest, this week has not been the busiest, I guess mostly because of holidays.

Features and changes


Yet another week started with MediaCodec fixes, which prevented all MediaCodec decoding on most Samsung devices! Ooops :)

François fixed numerous issues with Closed Captions, in the decoder and the text renderer.
This also fixed some background alignment issues that we've had for years...

Felix merged his 0-copy code for the hardware decoding for iOS. This should get very good performances on iOS.

We had a couple of important fixes for the pulseaudio module, that were backported to 2.2.2; and we're now generating Diffie-Hellman parameters dynamically, instead of hardcoding them.

Finally, we had a MKV subtitles regression, an H.264 extradata parsing issue and a large number of memory leaks, that are now past history.


The Android project was moved to the latest version of the Android SDK, and to the last version of AppCompat and we had a few compatibility issues to fix.

We also updated our buildsystem to gradle 2.6, and updated the build-tools and gradle plugins accordingly.

We eventually fixed the loading for playlists and added an option to not rescan the database, if necessary.

In the end, we released VLC for Android 1.5.2 to the store, as a beta version.


As mentioned above, the most important part for iOS this week is the addition of 0-copy hardware decoding.

We also saw a small bug fixed that could make some files invisible from the media library.

That's not much, but the complete hardware decoding is big enough to explain this :)


WinRT was way more interesting, with a couple of releases.

After the 1.5.0 version for Windows, we published a version named 1.6.0, and then one 1.6.1, fixing numerous issues, notably:

  • fixing subtitles display for SRT and SSA, and external subtitles loading,
  • more stable hardware decoding,
  • reworking the main interface, the mini player, and the file explorer,
  • fixing hundreds of bugs found by testers,
  • and fixing a weird crash on Windows RT, coming from the Windows Runtime.

We also published a beta for Windows Phone, named 1.6.0, introducing hardware decoding (disabled by default), and all the updates from the Windows world.

The code between Windows Phone and Windows is now more than 90% the same code.

Expect 1.6.2 and 1.7.0 quite soon.


The x264 project also received almost 20 commits, this week; mostly to fix build issues with Visual Studio, inclusion in C++ projects, and a few other minor bugs.

- page 1 of 13