RabbieBurns Posted June 10, 2013 Posted June 10, 2013 another update Like for the last update, I've spent too much time working on VLC than writing updates and communicating, and I'm sorry again. We are still working a lot of time, with almost a couple of persons spending most of their time on the WinRT port of VLC media player. The biggest issue is that we have not managed to pass the store validation yet, because the VLC backend is not ready yet. I'll explain in this blog post where we are. VLC backend on WinRT Reminder: So, the core of VLC and most of the modules, named libVLC, are the target to adapt to run on WinRT. The UI will integrate this core to show the videos. As I previously explained, the build process of VLC is not integrated with Windows Tools, notably Visual Studio, because VLC uses Unix Tools to run on all platforms. This is one of the reasons why VLC media player works on Windows, Linux, BSD, Solaris, iOS, Android, OS/2 and so many other operating systems. The main objective of the KickStarter was the compliance of this core to the WinRT Store Application limitations. We're almost there, but not quite. The issues we were facing with the compliance were mainly 2 things: Extra Security, Forbidden APIs. The security enforcements (SafeSEH, packagedlibraries) where quickly done (and backported to the main VLC port). The forbidden symbols were a bit more complex. Forbidden calls When we started the project, we had over 600 unique symbols (Windows API calls) used in VLC, for a total of over 15000. We are now at 16 left. And 32 more if we activate the networking code. This is cool, but not enough, since we must be at 0 to enter the store. I'll explain now how we did it. Simple symbols replacements Some symbols were easy to replace, when you knew that you are targeting only Windows 8, because they had some similar methods. So, for each symbol, we provided a replacement with a newer API. This was quite long, but easy to do You can see the result of our work here: mingw-w64 code. Removal of code and Unicode The second part was to remove some code in VLC that was not meant to be used in WinRT mode; this was mostly the code for the Console, the multimedia timers and some NT services. This improved the port of VLC media player for Windows, not only the one on WinRT. We also removed some code from libVLC to move it to VLC, when it made sense. This is a good move for libVLC, in general. Finally, we moved all the code of VLC and the dependencies (8 millions LoC) to UNICODE and Wide Chars. Once again, a task not too difficult, but a bit boring and long. Most of that part was done mid-March. Then we hit a wall. MSVCRT The wall is called MSVCRT, aka Microsoft C Runtime, the equivalent of the libc, the C standard library, Every version of Visual Studio and Windows comes with a new version, with version numbers from 2.0 to 11.0. It is often a dependency headache for big projects. Most open source projects use the old version named msvcrt.dll, the version 6.0. But on WinRT, one MUST use MSVCRT 11.0 in order to pass the validation. This meant that we had to modify our compiler and toolchain to be able to link with this version. This took us weeks of work, reading documentation, testing, asking Microsoft, doing it step by step and finally arriving to the result. First, we had some mismatch between Debug and Release versions of the libraries when trying the validation. But as we were doing it manually, it was quite hard to understand what was going on, and the documentation was very scarce. And then, running the application with MSVCRT 110 was just crashing without meaningful messages or usable debug reports or crashes. When we asked Microsoft, some engineers told us that this could not possibly succeed, since the validation would not allow application compiled with 3rd party compilers to link with MSVCRT110. We did not want to believe them, since this would have killed the project. And, they were wrong. We did it, but this took us way more time than anything we had anticipated. The final work was shared and integrated in our toolchain, Mingw-W64. All other open source applications will benefit from that, from now on. COM RoAPI So, the final piece is composed of symbols that only have replacements using the WinRT APIs. Those WinRT APIs are a bit like extensions of Windows COM APIs. They work in a similar way, and are usable with methods similar to CoCreateInstance, named RoActivateInstance. However, they are not the same. People using Visual Studio, use a language named C++/CX that has a bit of magic to hide all the details. But, of course, we need Visual Studio to use C++/CX. And we have GCC, targeting C code Again, accessing those APIs directly from C code compiled with GCC should not be possible (according to some engineers), but we have been trying that path for quite a bit of time. 2 weeks ago, we had a good success: we were able to call a simple functions from a sample code, using RoActivateInstance. So, the hardest part was done. What we are doing now is just rewriting the Microsoft WinRT headers and adapting the toolchain to munch those and call those symbols. We're working full time on that part! Conclusion: tl;dr It's been a hard time working on this port, with many more technical issues than expected. Therefore, we've been slower than expected. We've done things that people (even from Microsoft) advised us against, and so far we've passed all the issues. So a great outcome is arriving! We have a bit of work still to go on rewriting the headers to call the new WinRT APIs, and kill the remaining 16 symbols. We're working full time to fix those! VLC for the new Windows 8 User Experience ("Metro") by VideoLAN » Follow-up report about the WinRT port — Kickstarter
Arthur Posted October 8, 2013 Author Posted October 8, 2013 VLC for Windows 8 passes Microsoft's certification but without its audio output « Neowin It's been almost a year since the VideoLAN team raised enough money via Kickstarter (close to $76,000) to work on a Windows 8 app for its very popular VLC video player. Since then, we have reported that the development of the app has taken much longer than first predicted, mainly because the team has had to stamp down what are known as "forbidden calls" in the program. Today, VideoLAN President Jean-Baptiste Kempf sent Neowin an exclusive update on their progress and it looks like we are very close to an actual release. Kempf sent over a link that showed that the VLC app had passed Microsoft's Windows App Certification Kit test, which the page shows was accomplished on September 23rd. That's the good news. The bad news? As Kempf told us, "In order to achieve that, we had to disable the audio output, but we are working on that, for the next couple of weeks." Hopefully the audio output will be enabled quickly and Kempf assured us that more news on the VLC Windows 8 front will be announced "soon". It has certainly been a long wait for those people who donated money to the Kickstarter campaign so that the all volunteer team at VideoLAN could complete the Windows 8 app. We really do wish them the best of luck as they get close to the finish line.
Arthur Posted January 30, 2014 Author Posted January 30, 2014 VLC for Windows 8 to be submitted to the store this week « WPCentral The wait has certainly been an enduring one, but we're almost there folks. The VLC team has updated the Kickstarter blog with an entry detailing some work carried out on the port to WinRT platforms. The team believes they'll be in the position to submit the app once again to the Windows Store this week, so we should see VLC on Windows 8 in due course. Screenshots
Arthur Posted March 8, 2014 Author Posted March 8, 2014 VLC will be released on Monday. VLC app for Windows 8 planned for release Monday 10th March « Neowin 2
Arthur Posted March 12, 2014 Author Posted March 12, 2014 (edited) Finally! Download: http://apps.microsoft.com/windows/en-us/app/vlc-for-windows-8/c527ff2d-b5d0-45b6-bfc3-92fb7357ef72 Project Update #19: First achievement unlocked! Oh boy, this has been a long and bumpy ride! Today, the first Beta of VLC for WinRT is getting deployed on the store. As many of you know, the road to come to this point has been long... Very long. I've been driving or helping some ports of VLC on mobile, but this port has been the hardest, by an order of magnitude. I'll speak a bit more about the lateness of this port, another time. Today, I'll introduce a bit to this application. Features This application, version 0.2.0, is a BETA stage of the port of libVLC on WinRT. WinRT is the runtime of Windows 8/8.1 Metro/Modern UI, Windows Phone 8 and Xbox One. As this is a beta, some features are still not perfectly stable, but we are working on that. We thought we should share it with the users, so that people could test and help us. This application: works on Windows 8.0 and 8.1: too many people are still on 8.0, so we had to use that. This decreases the stability of the application, though… is compiled for Intel x86 CPUs: Windows RT version will follow as soon as we are able to compile it. ARM version will also apply to Windows Phone. plays all video and audio formats of VLC, including MKV, Ogg and MOV files or FLAC and MPC; supports the same codecs as the VLC application for desktop, from MPEG-1 to H.265, through WMV3 and VC-1; supports multiple-audio tracks selection; supports embedded subtitles; supports Background Audio playback; features a easy-to-navigate but complete UI, notably for audio browsing; supports Live Tiles! supports removable storage and DLNA servers. However, there are a few limitations: This app is currently slow, and is slower than VLC for desktop for video decoding and has no hardware acceleration; Subtitles support is not very good yet, and notably it only supports embedded subtitles; this is our major point of focus for now. Audio does not seem to work in all configurations; Playlists and streams are not supported in the UI (they are present in the core) It's clearly not as stable as it should be. We are working on all those points, but notably on subtitles and audio quality and stability. Since we now have a release, it will be easier to do releases quite often, as soon as we can. We also have longer terms goal to work on, and we'll share them when we know more We hope you like this application, and if you don't, we'll fix that soon It's available for download here. Jean-Baptiste for the VLC for WinRT team Edited March 12, 2014 by Arthur 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now