23rd week of VideoLAN reports
Yet another week, another new weekly report about the VideoLAN community and the VLC development community.
Features and changes
VLC
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:
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).
Miscellaneous
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.
Android
After last week, we kept on doing small bugfix releases for VLC/Android: we’ve published 1.6.5, 1.6.6 and 1.6.6.1 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:
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.
iOS
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!