Keyword - Apple

Entries feed - Comments feed

19 September 2019

VLC for iOS 3.2: a new hope

A new release: 3.2!

VLC for iOS is our port of VLC on the iDevices and has been around for quite some time, and is quite popular.

However, lately, the application development had a bit slowed-down and the interface was outdated. So, we decided to do a massive refresh on the code and on the interface.

Here comes VLC for iOS 3.2!


This release gives the first part of the interface refresh, focusing notably on the audio and video collection views.

iOS video collection

The audio view features a full audio media library, similar to the Android version of VLC, sorting by Artists, Albums, Genres and so on.

iOS audio collection

As you can see, this is more fitting for modern version of iOS. In addition, you can see that the main menu has moved to a bottom tabbar, instead of the side menu.

The playlists have their own entry on the tab, with network (NAS, URLs, Cloud) and settings.


Whether you prefer the dark or the light path of the force, we added both modes to VLC:

iOS video collection in dark mode

iOS video collection in dark mode


There are still a lot of changes to be done in the interface, notably for the network section and the video player.
But we couldn't wait to have everything fixed in a single version. Therefore, those views will be refreshed in the version 3.3.

Also, missing features will be added, depending on the user reports.

Under the hood

We focus on the interface, but in this release, a lot of the work was not visible, and was done to improve the code and simplify the future evolutions of the application.

First, as the name indicates, this release is based on libVLC 3, like the current desktop version.
It is not based yet on VLC 4.0, the development version of VLC, as VLC 4.0 is not ready yet.

However, a very large number of bugs have been fixed specifically for the iOS port of VLC, in the VLC 3.0 branch


The biggest change in the codebase is the move to Swift for all the new code added to the project, in addition to some migration from Obj-C to Swift for some internal classes.

You should look at the changes on the gitlab project.


The media management for this version of VLC has moved to the medialibrary project, written in C++, common to Android and iOS, and soon the desktop version of VLC.
This new library replaces the medialibrarykit project.

As it is written in C++, a wrapper for the medialibrary was created, in Obj-C, to be able to use it in our application.

Test it

Because of the large amount of changes, there are probably numerous bugs in this release, so please test and report, so we can fix it quickly!

22 November 2012

Windows Store and the GPL

FOSS and AppStore

As more and more software distribution are going through so-called App Stores, the question about the compatibility of their terms and conditions with the open source licenses, notably the GPL, often arise.

Personally I don't like those, but I can understand why they are popular and will continue to be popular.

So far, the Android store is open source friendly, and Apple one is not yet open source friendly.

But there is a new one in town, so I will look at the new Windows Store, that will ship WinRT Metro and Windows Phone 8 applications.

I will look at the 3 main liberties (copy, modify, redistribute) and the unrestricted usage liberty.

Legal analysis

Part 1: Store terms of use for users

The referent document can be found here.

The first reaction that those terms of use are way better than the ones from the competition. I don't really like Windows 8 but this is very well executed.

In section named What are my rights for apps I get from the Windows Store?

All apps made available through the Windows Store are licensed, not sold, to you.

This is quite normal for software.

In most cases, that license includes the right to install and use your app on up to five Windows 8 enabled devices simultaneously. If you try to install an app on more than five devices, it may be deactivated automatically from one of these devices, so that no more than five instances are activated at any one time.

5 device limitation, for most cases. This needs clarification for what other cases are. (see the bottom of this mail)

In limited circumstances, such as when a publisher designates the app as eligible for use on only a certain type of device, apps might not install on other types of devices.

Publishers can be assholes or have not ported to ARM or whatever stupidity we add later on, on our devices.

We provide the name of the app provider licensing each app, which may be Microsoft or a third-party app provider."

Microsoft will always tell you the name of who actually licenses the application.

All apps are licensed to you under the Standard App License Terms at the end of these Terms of Use, unless the provider of an app provides you with access to separate terms or agreements in the app listing page, in which case those terms will apply.

Either there is a correct license, or we force our broken terms.

Those terms might also include a privacy policy. The app publisher is the seller and licensor of the app.

Microsoft is not the seller or licensor, they act as a store.

When a third party is the app provider, Microsoft is an agent of the third party that provides the app to you, but we aren’t a party to the license between you and the app provider, and our privacy statement doesn’t apply to treatment of information you might exchange with the app provider when using the app. In such cases, Microsoft isn’t responsible for the app or its content, your use of the app, any warranties or claims relating to the app, or customer support for the app.

Microsoft is not responsible for 3rd party apps, and does not apply neither its terms of conditions nor privacy policy, if there is a license.

But your relationship with Microsoft and your use of the Windows Store will still be governed by Software License Terms for your Windows operating system and these Terms of Use. Because Microsoft processes the app purchase or, in some cases, the in-app purchase transaction as the agent of the seller, you might see Microsoft listed as the seller on sales records.

But even if it is the case, the Microsoft Store software and Microsoft software are govern by Microsoft SLT.

The rest of the terms is not about apps, and then there is their SLT which is clearly not open source, because of the section 3 that forbids the 3 main liberties.

Part 2: Application Developer Agreement

The referent document can be found here.

The important part is named: 3) g. License to Customer for Windows Store apps.

You, not Microsoft, will license the right to install and use each app to customers. You may provide a license agreement to the customer for your app.

Same as above, restated as a developer point of view.

That license agreement or other terms that govern a customer’s use of your app (including any privacy policy), or a link to them, must be delivered to Microsoft for publication via the product description materials you provide to Microsoft.

You must share the license to MS,

If you do not provide such materials, then the Standard Application License Terms, attached as Exhibit A, will apply between you and customers of your app.

or the SLT will apply, automatically.

If you provide your own license agreement, your license must, at a minimum,

Your license must allow, at minimum (so more can be allowed):

(a) permit the customer to download and run the app on up to five Windows 8 enabled devices that are associated with that customer’s Microsoft account, without payment of any additional fees to you (from either Microsoft or customer),

At least 5 devices.

(b) include "disclaimer of warranty" and "limitation on and exclusion of remedies and damages" sections that are at least as protective as Exhibit A


Usual "NO WARRANTY" section.

(c) disclaim any support services from Microsoft and the customer’s device manufacturer and network operator (if applicable).

Be clear on support services and who is in charge of the support.

Your license terms must also not conflict with the Standard Application License Terms, in any way, except if you include FOSS, your license terms may conflict with the limitations set forth in Section 3 of those Terms, but only to the extent required by the FOSS that you use. "FOSS" means any software licensed under an Open Source Initiative Approved License.

Your license should be compatible with the SLT, except if you include FOSS, in which case you can violate the part of the SLT that disallow reverse engineering, decompile.

Here is the part of the SLT that you can explicitly violate:

work around any technical limitations in the application;

reverse engineer, decompile or disassemble the application, except and only to the extent that applicable law expressly permits, despite this limitation;

make more copies of the application than specified in this agreement or allowed by applicable law, despite this limitation;

publish or otherwise make the application available for others to copy; or rent, lease or lend the application.


Technically, a contrario from what Microsoft is trying to explain people, WinRT applications are Win32 applications, that have artificial limitations imposed by the Windows Store submission process.

They are usually linked to MSVCR110 for standard calls, which is a major component of the operating system on which the executable runs. Those applications don't ship anything else than the usual executables and a few .xml crap.

tl;dr: Summary

Your usages are not limited; except you cannot use the application on more than 5 devices, unless the license clearly says you can use it on more devices. That might need an extra clarification, to check if you can have unlimited devices.

You can reverse engineer, decompile, disassemble the application, make more copies of the application, publish, distribute, rent, lease or lend, as long as you are FOSS.

Therefore, I think it is quite safe, now, to publish a FOSS application on the Windows Store.

18 October 2012

VLC media player 2.0.4 and VLC for Android 0.0.6

VLC 2.0.4

So, yet another release for VLC is around the corner. Why should you care?

Well, first, it shows that the VLC project is still quite alive and that we care about our users, even if we are focusing on 2.1.0.

Then, a bit of stabilization of the 2.0.x branch cannot be bad. :)

For a summary of the most important features, you have:

  • Support for Opus codec, including multi-channel and icecast streams,
  • Support for MSS1 and MSS2 codecs through DMO on Windows and Linux (this can still be hard to use until 2.1.0).
  • Support for Youtube Live Streams,
  • Support for BluRays correctly on OSX,
  • Karaoke control on OSX interface.

For important fixes, we have also:

  • Youtube, Vimeo, Koreus and Soundcloud are back,
  • Ogg duration should be fixed in most cases,
  • HLS, Dash, HTTPS, MKV and Ogg playback fixes,
  • Wallpaper is back on Windows 7 and 8,
  • Huge improvements in the OSX interface,
  • Lots of fixes in the Qt interface,
  • Windows 8 look is now correct,
  • Crashes in subtitles, hardware acceleration fixed,
  • Web interface improvements,
  • Audio devices selections fixes and synchronizations,
  • Security issues.

And of course, translations!

VLC for Android Beta 6

At the same time, you might have seen that we have done quite a few VLC for Android releases:

After 0.0.3 and 0.0.4, 2 weeks ago, 0.0.5 and 0.0.6 have been released in the last week.

So, what are the cool things in?

More devices

One of the big issues we have been facing was to support the maximum of devices with only one package.

The first thing was the port of VLC on Android to Intel x86 chips.

Then, we had to work on NEON autodetection, in order to support all Tegra2 tablets and phones directly. A bit hard to do, but, now, our ARMv7 packages work on both NEON and devices without NEON.

Finally, we've done quite a few fixes for devices like the Nexus 7, that allocate the memory in a different way than other devices...

More Android support

We have also been working quite hard to fix our behaviour on all android versions, from 2.1 to 4.1.

Android 2.1 is really slow and buggy, but we need to support it while adding the coolest features from 4.0 and 4.1.

A lot of fixes for compatibility went in, notably in 0.0.4 and 0.0.5.

New interface

As you can see in the following screenshot, we have also been working in having a better User Interface and User eXperience on both tablets and phones.

VLC 0.0.6 on Android

VLC 0.0.6 on Android - Audio

This is long and difficult, and we move step-by-step, but we are going in the right direction.


In terms of video performance, VLC is still in beta, in debug mode, and therefore slower than it should be.

We are also improving there, but it is not easy, especially with the very limited numbers of devices we have on our hands. We have still quite a few ideas to improve.

In terms of the UI, we are decreasing the CPU and the memory used for snapshots and audio cover arts, so that the UI is smoother. You can see that in 0.0.6 and will see it more in 0.0.7.

Our background audio service is now completely asleep when not used, and is awaken on phone calls, as needed.

Still in beta

Yet, as you might know about it, this is still not perfect, and needs some work, so this is still a beta!

6 February 2012

VLC 2.0 pour MacOS X


La nouvelle version de VLC, nommée TwoFlower ou 2.0, apporte de nombreuses améliorations et modifications spécifiques à MacOS X. Ce petit article permet de passer en revue ces améliorations, qui sont souvent peu décrites dans les articles plus généralistes.

Ces dernières années, le développement de VLC sous OSX a été un peu chaotique et incertain, avec un vrai questionnement sur le futur du projet. Néanmoins, sur l'année passée, Félix, aidé par plusieurs autres développeurs externes, par le reste de l'équipe de VLC et par un jeune designer, a pris le taureau par les cornes. Il est évident que de nombreux bugs resteront sur les premières moutures, mais les versions devraient se suivre rapidement pour réparer vos bugs les plus gênants.

Nouvelle Interface

La modification la plus visible de Twoflower est la nouvelle interface. Cette interface remplace l'ancienne interface, qui datait des premières versions de OSX.

Tout d'abord, cette interface se présente en une seule fenêtre, pour mieux coller au look actuel des applis OS X. Ensuite, elle existe en deux couleurs: une version noire, qui ressemble au look QuickTime X, et une version grise, comme pour Lion. De plus, sous Lion, elle permet de choisir entre le plein écran natif Lion ou le plein écran classique de VLC.

La plupart des fenêtres utiles lors de la visualisation des vidéos, notamment les filtres audio et vidéo, ont migré vers le style gris transparent HUD. De nombreuses autres fenêtres ont évolués, mais sans bouleversement.


La nouvelle interface supporte les extensions lua de VLC pour créer des nouvelles fenêtres et fonctionnalités, comme l'intégration IMDB, Wikipedia, OpenSubtitles et autres. Ce support a été fait tardivement dans le développement, donc une période de stabilisation sera probablement nécessaire.


Jusqu'ici, sous Mac, VLC ne pouvait lire que la webcam intégrée. À partir de VLC 2.0, un support générique des périphériques QTKit a été ajouté pour l'audio (QTSound) et pour la vidéo (QTCapture). Cela devrait permettre de visionner et de rediffuser les webcams externes USB et FireWire, les microphones ainsi que les cartes DVB et SDI compatibles.

Au niveau du support Blu-Ray, VLC 2.0 permet de lire des disques et des dossiers non chiffrés de façon limitée, sous Linux et Windows. Une fois que certains bugs seront résolus, cela devrait être aussi le cas sous MacOS X, mais probablement seulement sous Snow Leopard et Lion. Pour les Blu-Rays chiffrés, la bibliothèque libaacs, n'est pas encore porté sous MacOS X. Avis aux amateurs!


La version MacOS X de VLC 2.0 bénéficiera du même support amélioré des codecs, des formats et des filtres vidéos que les versions des autres plate-formes. La partie la plus intéressante concerne le décodage multi-threadé des codecs majeurs pour profiter des machines modernes multi-cores. De nouveaux codecs sont supportés, comme le ProRes, l'AVC/Intra, les codecs 10bits et certaines nouvelles variantes WMV. Le support des formats de fichiers existants a aussi nettement été amélioré, notamment pour le MKV et le MOV.

Le décodage GPU sous OSX, aka VDADecoder, n'est pas de la partie dans cette version, pour des raisons de priorité de développement. Sébastien, développeur VLC, a porté le code dans FFmpeg, mais la partie VLC n'est pas encore prête. On espère que cela arrivera dans une version mineure suivante.

Sortie vidéo

La sortie vidéo, en OpenGL a subit quelques modifications, simplifications et améliorations. Dorénavant, les sous-titres sont rendus à la taille de la fenêtre de sortie, quel que soit la source et directement fusionnés avec la vidéos en OpenGL. Cela améliore la qualité et la netteté des sous-titres. De plus, l'utilisation de fragment shaders pour faire les conversions d'espace de couleurs, même lorsque la source est en 10bits, devrait améliorer les performances.

Support OS X et PowerPC

Cette version 2.0 est compatible Leopard, Snow Leopard et Lion. La version intel 64 bits est la version prioritaire pour Snow Leopard et Lion, car elle seule a le support natif du plein écran sous Lion. La version intel 32 bits fonctionne quant à elle aussi sous Leopard. Il existe toujours une version powerpc pour Leopard, mais qui n'est testée que sous G5, faute de matériel. Cette version powerpc supporte aussi le multi-threading pour le décodage des formats HD, pour ne pas jeter tout de suite les derniers Mac Pro G5 ;) Il est cependant possible que la prochaine version majeure (2013?) ne supporte plus cette architecture.

Le futur

Plusieurs pistes de travail sont en cours: finir l'interface et la peaufiner pour palier aux manques qui seront forcément présents dans les premières versions, travailler sur le support Blu-Ray qui reste trop basique, intégrer le code pour le décodage GPU et changer la licence de VLCKit vers la LGPL afin de permettre de construire des applications non-GPL au-dessus du moteur de VLC.

Nota Bene: Cet article a été écrit par mes soins et donné gracieusement à MacBidouille et Mac4ever.

28 August 2009

Snow Leopard is out! And why you will not have VLC 64bits right now...

Apple OS X 10.6 is out

If you have missed the news, then you are not on the same techy blogs than I am.

So, Apple new operating system Mac OS X.6, named Snow Leopard is out, and it improves a lot the speed, and ports most of its application to 64bits, but doesn’t introduce any important new feature. Learn more about it !

VLC and 64bits

Do you really need 64bits for a video application? I seriously doubt it. But well, you might want/need it in the future.


VLC 64bits runs on 64bits linux since a long time, and I use it a lot. No majors problems since Linux is cleverly engineered.


VLC runs on Windows 64 as a Win32 application, but we haven’t finished the port to Win64, especially because of external libraries issues. It will come eventually.

Mac OS X

Since the WWDC ‘08, we know we have to remove all Carbon code, and we have mostly done it.


VLC 64bits runs on 32bits Leopard without issues.

Snow Leopard

As one of our OSX developers says: I’ve you had asked me a month ago, I had said that everything is cool and VLC64 will be released the same day as Snow Leopard.


It doesn’t work now, because of a change in the Cocoa runtime. VLC stopped working in the last two seeds (the GM and the one prior to it).

Launching VLC results in crashes in a low level function called _NSBundleCreate, which is triggered by a whole bunch of Cocoa and IOKit methods. Basically every method of these frameworks results in a crash on Snow Leopard. This is strange, as exactly the same code runs nicely in 64bit on Leopard and prior seeds of Snow Leopard.

The problem is that VLC is not an ordinary NSApplication, but a plain C app, that loads a Cocoa plugin, which instantiates NSApp itself. Therefore, you cannot reproduce the crashes in normal Cocoa apps.


Apple, once again, breaks everything with a new OS, as it happens often, or when a new version of Xcode gets out. Last version of Xcode forced us to drop X.4 if we wanted to go 64bits and compatible with Snow Leopard. Seriously, I don’t get it.

I have applications that are running on the Win7 64bit setup that are Win98 games!

Anyway, to not finish on a bad note, Snow Leopard looks gorgeous!

7 June 2008

VideoLAN at WWDC 08

Just a small post about VideoLAN presence at WWDC in San Francisco this year.

Felix and I will be there all week long. If you want to meet, contact us.

- page 1 of 2