Why we need a KickStarter for VLC on Metro

11 December 2012

KickStarter for VLC on Metro

As you might have heard, some developers of the VideoLAN team have started a kickstarter quest to crowdfound a port of VLC on WinRT.

The reason for this kickstarter is that porting VLC to WinRT will be hard and long, if we don’t speed it up.

And yet, quite a few people seem to think the task will be simple, like on neowin or Hacker News.

I’m all for funding 40k pounds for VLC (they deserve it), but 40k under the guise of Metro seems a bit much, no?

I dont know but just creating a metro UI shouldn’t be that hard should it?

The Windows RT app should be trivial to make… As long as they aren’t using Win32 API’s, it should just be a matter of recompiling for RT and correcting whatever few bugs they encounter.

Well, no, this is not too much.

We are not the kind of person asking money for nothing, I think we’ve proven that during all those years.

Let me explain why.

Why we need a KickStarter for VLC on Metro

Designing a UI above VLC, for the “Modern Experience” is quite easy, and we’ve already done a few proofs of concept.

Finding a designer would be simple and 1k$ for the project would be too much already :) It would take a couple of months and we would be done with it.

The issue is to get on the store. And this is hard.

Why is that?

VLC (and its underlying libraries, including codecs, networking access or demuxers) represents around 7 Million Lines of Code in C, C++ and ASM languages. And all of this code is following C99 standard and has inline ASM.

Visual Studio cannot eat that code in any way. Believe me, we tried. A lot. So we need to compile the VLC for Windows on Linux, using gcc and mingw.

Unfortunately, this does not work on WinRT (“Modern UI” or whatever you like to call it). WinRT restricts a lot the Win32 APIs. And only the Windows Store knows which ones are allowed.

For example, the BSD sockets are gone… Yes, this is not a joke.

They work on Linux, Windows, Mac, iOS, Solaris, Android, QNX, WP8, WinCE but not WinRT.

Roadmap

So, we need to:

  • change and update our toolchains,
  • fix MingW for WinRT, in the best way we can,
  • link to the newer Windows runtime,
  • list the problematic APIs,
  • rewrite the code that is using Win32 APIs since 10 years (and in all underlying libraries too…),
  • drop some modules or isolate some code,
  • write new replacement code,
  • write a new interface above all this,
  • design the interface correctly,
  • fix the code using windows HWND,
  • port the audio and video outputs,
  • work-around the sandbox for DVD and BluRay playback,
  • probably write a WinSock2 replacement library to build all the cross-platform libraries that expect a BSD-socket-like library,
  • port to ARM,
  • etc…

Add to that the need to modify MingW to output dlls that we can load on ARM (Windows RT) and do the same project for the different APIs present on WP8.

Conclusion

As you can see, a lot of the work is not really on VLC, but on being able to compile for WinRT with open source tools, since Microsoft tools are not enough. And a lot of work will be work-around the limitations of WinRT.

Of course, a lot of the work will be re-usable to other projects.

So, yes, we will need quite a few developers to do all that. We can do the Android route, and it might take a couple of years to get it there, or we can try to get some money to speed it up…

Jean-Baptiste Kempf

Comments

  1. On 3 May 3030, 4:14 by Jean-Baptiste Kempf

    @dovellonsky work has already begun :)

  2. On 3 May 3030, 2:44 by dovellonsky

    Well, now you have a new challenge, people have trusted you, and you will not disappoint anyone.

    Its Ok Boss ? And Now Let’s WORK !!

  3. On 3 May 3030, 11:48 by Jean-Baptiste Kempf

    @Dovellonsky I think I have shown valid results in the past quite well with all the versions of VLC… I speak about the technical capabilities of a platform, nothing else…

  4. On 3 May 3030, 10:18 by Dovellonsky

    Hi Jean-Baptiste Kempf , you re a Developers or fanboy ?
    Linux fanboy Love open … ok but Windows fan love open and closed software . The developers serious work without babbling too. Rather than gossip show us a valid result

  5. On 25 May 25250, 7:08 by Jean-Baptiste Kempf

    @Answermancer: you are mistaken. I speak about the technical and programming qualities of the platform. And WinRT has a lot of technical issues, because of missing APIs. This has nothing to do with liking or disliking it, as a user.

    Yes, we need funds, because of those many technical limitations, and as they are artificial limitations, you can understand that they are very frustrating for a developer, especially if he is doing this on his free time. And you can understand that spending all my free time to work on one platform only, because the technical decisions of this platform are wrong, is next to impossible. And once again, this is developer PoV, not a user.

  6. On 24 May 24240, 7:53 by Answermancer

    @Jean-Baptiste: I am a backer of the Kickstarter, and I’m not going to change my pledge because I want the app and I’m happy to pay for it, but I too was disappointed by your sentiments in your comment above.

    I’ll chalk it up to language barrier, but calling something a “crappy platform” generally implies that it’s bad and you dislike it, not that it’s difficult as you are now claiming. If you don’t like the platform, fine, but not everyone believes that open source and free are inherently superior, and having it basically thrown in my face that part of the reason you are asking for Kickstarter funds is because you’d rather not work on a platform I’m interested in does not feel particularly good.

  7. On 24 May 24240, 5:24 by Jean-Baptiste Kempf

    @Fine Gentleman: I think you misunderstood me. WinRT is a platform that requires a lot more work than the other ones. Quality of the platform != Quality of development on it.

    Moreover, the Plex people are selling their software, do you really buy their marketing?

  8. On 23 May 23230, 1:34 by Fine Gentleman

    @Jean Baptiste, I was going to support your project on Kickstarter, but when I saw your comment here, saying that WinRT is a crappy platform, I was really disappointed and decided not to support your project. It was unprofessional and immature, and it revealed that you really don’t care much for the project which in turn makes future support from you for the WinRT app less likely. Typically you will leave the app behind really quickly.

    Ask the developers of Plex, they have developed on all the platforms out there, and were really surprised how fast, easy and elegant it was to develop on Windows Phone and WinRT. It’s now their favorite platforms.

    Seems that you will reach your goal anyway, but I don’t have faith in your support. Prove me wrong.

    Also, this message will probably be moderated and deleted, in that case it will only prove what I mean even more.

  9. On 21 May 21210, 5:34 by Jean-Baptiste Kempf

    @Crisis: so far, the iOS terms are not GPL.

  10. On 21 May 21210, 1:08 by Crisis

    “VLC will continue to work fine on free OS (linux, bsd, android…) and non free (windows, osx, ios…)
    We aim to be present everywhere, not only free platforms.”

    ¿IOS? I don’t see it. Giving the source code doesn’t count. Must be on App Store. It will be very sad, for me, if VLC gets on Metro Store and not on App Store.

  11. On 19 May 19190, 3:16 by Jean-Baptiste Kempf

    @dron: because we must do it before people use it…

  12. On 19 May 19190, 3:57 by dron

    Why doing all this work when this new metro interface is just starting? Not much people using it, developing for it can change a lot in the future, and maybe it won’t be popular ever.

    If it helps porting to windows phone maybe it is interesting, but other than that, I think the best you can do with this new microsoft technologies is wait & see.

  13. On 16 May 16160, 3:40 by Kurt K.

    “we can use this occasion to improve VLC even further, which is a victory for all the VLC users”

    I hope that means writing the new UI in QtQuick/QML instead of XAML. That way the newly written touch UI could be used as base for other tablet platforms. Adjustments for other platforms’ HIGs would be fairly trivial.

    If as a result I could use VLC on my future Jolla phone (their Sailfish OS uses a tile-based UI roughly similar to WP8), even as a pure Linux user I’d be tempted to donate some money.

  14. On 11 May 11110, 11:51 by Jean-Baptiste Kempf

    @patrick_g: are you really the patrick_g of linuxfr? Wow, I feel good.

    This is an excellent question.

    As you might have guessed, one of the reasons of the Kickstarter is also that we don’t want to spend all our free-time to support this difficult platform. Free time is for fun stuff, and porting VLC backend to WinRT project is probably not fun, for a lot of the backend work. But if paid, we can use this occasion to improve VLC even further, which is a victory for all the VLC users. Kickstarter would help not spend our free time on WinRT. If the Kickstarter fails, we probably will drop the platform, though.

    One important point, is that if we don’t do it, someone else will do it, and they probably won’t be as open and libre as the VLC community, which is bad for the users.

  15. On 11 May 11110, 11:50 by funman

    Patrick_g VLC will continue to work fine on free OS (linux, bsd, android…) and non free (windows, osx, ios…)

    We aim to be present everywhere, not only free platforms.

  16. On 11 May 11110, 7:59 by patrick_g

    And what about dropping WinRT ?
    It’s sad to see all this work wasted on a proprietary platform…..