VLC for the new Windows 8 User Experience ("Metro")
kickstarter.com
kickstarter.com
This is an excellent question.
Designing a UI above VLC for Metro is quite easy, and we've already done some proof 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 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 and demuxers) represents around 7M LoC of C, C++ and ASM. All of this is very C99 code and inline ASM. Visual Studio cannot eat that in any way. Believe me, we tried. A lot. So we need to compile the VLC for Windows on Linux, using gcc+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 Visual Studio knows which ones. Oh, and the BSD sockets are gone...
So, we need to change and update the toolchain, fix MingW for WinRT, rewrite the code that is using Win32 APIs since 10 years (and in all underlying libraries too...), write a new UI above this, fix the code using HWND for rendering, port the audio and video outputs, work-around the sandbox for DVD playback, probably write a WinSock2 replacement library to build all the cross-platform libraries that expect a BSD-socket-like library, etc...
Add to that the need to modify MingW to output dlls that we can load on ARM (Windows RT) and fix all the same different APIs for WP8.
Of course a lot of the work is not really on VLC, but on being able to compile for WinRT with open source tools, and a lot will be re-usable.
So, yes, we will need quite a few developers, and therefore money.
If you're building the kind of app I was building a few years ago, such as semantic graph editors, where a change in one UI element might have effects that propagate to other UI elements in an uncontrolled way, then, yes, the async comm in Windows 8 (the same problem that exists in Javascript, Flex and Silverlight) requires you to have a systematic approach to how information gets into the app.
(One thing I'd definitely note is that the Windows 8 apps like "Photos" and "Mail" are really a joke when you compare them to the Windows 7 era "Windows Live Essentials", which are really competitive -- Windows Live Essentials can handle mail spools on my crappy 2GB shojou netbook that destroy Thunderbird on a 32GB machine. My experience is that async I/O sets an upper limit on the complexity of what you can do)
VLC will have the option of bending their UI to be something that fits the Metro mold easily, so async I/O and comm should not be such a big deal.
Also, there is a port of sqlite to WinRT.
So there's a new API and the new API is async all the way through. The async aspect gets a lot of attention because it's so pervasive, and can require some adapting. But you're right, the limited API can have a larger impact on a porting effort.
BTW, my point about no database API is in reference to the lack of System.Data (ADO.NET). The assumption is that people are expected to consume data through Web services. It's great that SQLite supports WinRT, though. That definitely fills a big need.
Yes
> In addition, there are no database APIs, for example. So it's really a crap shoot about how much difficulty a given project will take to port.
We will do the database APIs, in fact :)
What makes it worth that money, and that people will pay for it, is that VLC is the hard work of all the _previous_ developers.
So while I'm all for giving people money to make an open source project advance, I feel a little wrong about this very one.
It seems too hard for the human mind to understand that the people who make 90% of the work for free going unrewarded is wrong. Now then again, it certainly fits the way the rest of the world works.
And the jumping between Metro and Desktop environment is just too hectic!
Cheers guys
(BTW, I already contributed to VLC in the past. It's very useful and I think they deserve it.)
http://feepk.net/customizing-vlc-for-mac
If this isn't enough for me, create requests on https://trac.videolan.org/vlc/ so we can see what we can do!