Keyword - Tizen

Entries feed - Comments feed

1 February 2016

15 years of VLC and VideoLAN

15 years!

Today marks the 15th anniversary of VLC!


Cone-Video-large.png

GPL

Technically, today is the 15th anniversary of the relicensing of all the VideoLAN software to the GPL license, as agreed by the École Centrale Paris, on February 1st, 2001.

VideoLAN_GPL.jpeg

If you've been to one of my talks, (if you haven't, you should come to one), you know that the project that became VideoLAN and VLC, is almost 5 years older than that, and was called Network 2000.

Moreover, the first commit on the VideoLAN Client project is from August 8th 1999, by Michel Kaempf had 21275 lines of code already, so the VLC software was started earlier in 1999.

However, the most important date for the birth of VLC is when it was allowed to be used outside of the school, and therefore when the project was GPL-ized: February 1st, 2001.

Facts and numbers

Since then, only on VLC, we've had around,

  • 700 contributors,
  • 70000 commits,
  • at least 2 billion downloads,
  • hundreds of millions users!

And all that, mostly with volunteers and without turning into a business!

We have now ports for Windows, GNU/Linux, BSD, OS X, iPhone and iPad, Android, Solaris, Windows Phones, BeOS, OS/2, Android TV, Apple TV, Tizen and ChromeOS.

Future

If you read this blog, you know that we're working hard on VLC 3.0, to unify most of our mobile ports, adding more GPU decoding, better adaptive streaming and ChromeCast integration.

We're still here and working for our users.

Thanks

So, for all our users supporting us, I just want to say: thank you!

Cone-Video-large.png

26 October 2015

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

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:

With-fallback.png

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

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

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!

19 October 2015

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

VLC

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.

Android

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:

  • crashes on broken phones from Wiko and QMobile,
  • fixing wake-lock or screen-dimming on older phones,
  • small crashes in the interface,
  • updating to the last version of appcompat library.

iOS

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.

WinRT

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:

  • you can force the landscape orientation in the settings,
  • you can access now a Stretch Zoom,
  • resizing of numerous widgets depending on the scale and DPI,
  • fixing of some green screen issues,
  • improvements of the crash reports,
  • fixing some crashes :)

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

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

6 October 2015

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

libVLC

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!

VLC

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.

libbluray

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

  • new API to access files from the VFS, useful for embedded subtitles,
  • largely improved support of the BD-J menus and features,
  • and better support for usage in C++ projects.

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

WinRT

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:

  • a new way to log all the information and a feedback system to send us the logs, so we can fix the bugs,
  • prepare the live tiles for the UWP Project,
  • use the operating system accent color, if you want it!
  • right-click menu support for mouse users,
  • zoom features on the video player,
  • add a vlc:// protocol,
  • string cleaning, translations and a French translation!
  • propagate better the light theme,
  • fix biography and database refreshing issues,
  • kill warnings, and use more C# 6 features,
  • prepare transition for Window 10 universal applications.

Let's hope 1.8.0 can be out next week!

Android

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

Tizen

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

iOS received a few fixes for:

  • GDrive support,
  • Spotlight indexing,
  • RTL support,
  • collection view sizes, and transparency issues,
  • and a few other bugs :)

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!

29 September 2015

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.

Notes:

  • 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 :)

29 July 2015

This week in VideoLAN - 12

12th week of VideoLAN reports

The summer goes on, and here I publish another weekly report of what's happening in the VideoLAN community and VLC development teams!

This week was quite cool, and quite busy, with some of the team going to Spain for aKademy!akademy2015.jpg

Features and changes

VLC

The week started by the continuation of the OS X cleaning by Felix, preparing for the next releases of OS X and Xcode, removing the old QTCapture module, switching more code to ARC, splitting the code of the interface in smaller files and improve the code style of the OS X modules.
This important cleaning work went on until Wednesday night.

The Windows code is now calling SetThreadErrorMode() on Windows 7 and is calling a fallback for older versions. This is necessary for proper thread-safety of libVLC.

The helpers vlc_access_NewMRL(), vlc_access_Delete() were introduced in the core, along with inline function helpers like vlc_access_Tell(), vlc_access_Seek(), vlc_access_Eof(), vlc_access_Read() and vlc_access_Block().
All this should make the writing of an access modules easier.

And we got a new concat access module, to concatenate multiple access objects, using those new APIs.

Rémi went on by simplifying the peek() features of the stream filters: we have now a generic stream_Peek() front-end and now pf_peek are now gone from stream filter modules. At the same time, access_GetParentInput() and demux_GetParentInput() got removed from the core.

François added the support for alternative audio/groups in HLS, fixed relative paths in DASH, and finally merged both HLS and DASH modules into one adaptive module; this will make improvements in one format available in the other. He also added support in DASH/HLS for parsing the language, the role and the description of each track.

We deprecated libvlc_media_player_set_agl(), because this is an old Apple technology that noone uses anymore. And we fixed the plugins cache signature issue on OS X.

Finally, Rémi worked on ACCESS_GET_CONTENT_TYPE to remove the access_t.psz_demux variable that was used to force the demuxer from the access module. This was a dangerous design that did not work well with stream filters.

Android

The Android port got a few fixes on the audio output, notably a circular buffer to improve the whole VLC performance, a hack for 4.4.2, and stabilization for Android Lollipop.
In the core, we also added interlacing detection for MediaCodec acceleration.

On the interface side, the important changes were mostly on the Android TV version, notably adding Now Player Tile and fixing reported issues.

iOS

Last week was quite busy on iOS, culminating with a 2.6.3 release.

On the VLCKit SDK, we removed headers that are useless on iOS (MobileVLCKit). We also fixed crashes in the MediaLibraryKit SDK.

Then, more than 20 commits were pushed and 6 tickets closed to fix random crashes of the 2.6.x versions of VLC, including backports from the 2.7 branch.
The 2.6.3 tag was pushed on Friday, ending the week. :) It should be on the store in the next days.

WinRT

After a few calm weeks, the WinRT port got a lot of work this week.

First, we added a SlideShow subproject, to display nice animations in the background.
Then, we fixed the MediaFoundation backend, we fixed some issues with the new SDK and new VisualStudio version and the newer libVLC.

We then updated slightly the desktop design and the icons, in order to simplify the interface and the mini-player, and match the Windows 10 look.

The interface for Windows Phone was also improved for Windows Mobile 10.

Finally, quite a bit of work went into the hardware acceleration for Direct3D11. It's almost fully working for us :)

Tizen

The first code was pushed to the Mike git repository to build libVLC on Tizen.

Community and VDD

As you saw in the introduction, Rémi, Felix and me went to aKademy to speak with our KDE friends. It was in A Coruña.

We also finally announced VDD for this September, in Paris. Register now!

- page 1 of 2