README 3.97 KB
Newer Older
Thomas Nigro's avatar
Thomas Nigro committed
1
This project is about the port of VLC to the WinRT platform.
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2 3 4 5 6 7 8 9

The goal is to target Windows 8/8.1 Modern environment, on x86 and ARM (Windows RT).
But also Windows Phone 8/8.1 and other devices running the WinRT platform.

Most of the media code engine is licensed under LGPL, like libVLC.
The application is dual-licensed under GPLv2/MPL and the license might change later,
if need be.

10 11 12
How to compile VLC for WinRT:
-----------------------------

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
13
You need:
14 15
* Visual Studio 2013 update 4
* Windows 8.1
16

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
17 18 19 20
If you are only on Windows, skip the step 0)

0) Cross-compile libvlc for WinRT
---------------------------------
21 22 23 24 25 26
You need:
* A very, very, very recent Linux
* build-essentials and all related build tools (make, autotools, git, etc...)
* Prodigious patience and tenacity :)

Build and install mingw-w64 SVN rev 5568 or higher (for libwinstorecompat).
27 28 29 30 31
Be sure to pass --disable-shared when configuring GCC.

Why? Statically linking to
libgcc.a will ensure that all unused methods get stripped. It will drastically
reduce the number of forbidden calls.
32 33

Run ./compile.sh and generate vlc.7z
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
34 35 36 37 38 39

1) Extract libVLC
-----------------

If you skipped step 0), take the nightly build vlc.7z

40 41 42
Extract the libVLC contents from vlc.7z to vlc/vlc-<platform>/<configuration>
<platform> is either ARM or x86
<configuration>  is Debug or Release
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
43

44 45 46 47 48 49 50 51
1a) Install Multilingual App Toolkit
------------------------------------

In order to open the solution, you must first install the Visual Studio Multilingual App Toolkit.
If you don't, the solution will fail to load.

You can download it at https://dev.windows.com/en-us/develop/multilingual-app-toolkit

52
2) Build and package the front-end
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
53 54 55
----------------------------------
Open the VLC_WinRT solution in app/VLC_WINRT.sln 

56
3a) Get a developer signature from your account
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
57 58 59
--------------------------------------------------
If you don't have a dev account, see the next paragraph

60
3b) Local signature
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
61 62
-------------------
Package.appxmanifest, and generate a self-signed cert
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

Project → Store → Create App Packages...
Select target "Debug (Win32)"
Build the package.

Now we have to import the self-signed cert into the local computer:

Open MMC
File → Add/Remove Snap In...
Certificates → Add
Select "Computer account"
Select "Local computer" (already selected), press Finish
OK to close "Add/Remove Snap-ins" dialog
Certificates (Local Computer) → Trusted Root Certification Authorities → Certificates
Right click, All Tasks... → Import...
Next
Select your "VLC_WINRT_1.0.0.0_x86_Debug.cer"
Next
Finish

83 84
4) Install libvlcpp
-------------------
Hugo Beauzée-Luyssen's avatar
Hugo Beauzée-Luyssen committed
85
Clone libvlcpp from git://git.videolan.org/vlc-bindings/libvlcpp.git
86 87 88 89
into the wrapper/ directory


5) Build
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
90 91
--------
Click on Build Solution. 
92

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
93
Click on Deploy Solution
94

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
95
Profit. \o/
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113

4b) Alternately, if you wish to manually install:
-------------------------------------------------
Useful in case of network drive, for instance.

Start → Programs → Microsoft Visual Studio 2012 → Visual Studio Tools → Debuggable Package Manager

Install VCRT dependency:
Add-AppxPackage Dependencies/x86/*
( or Add-AppxPackage Dependencies/x86/Microsoft.VCLibs.x86.Debug.11.00.appx if you feel like it )

Deploy VLC appx:
Add-AppxPackage VLC_WINRT_1.0.0.0_x86_Debug.appx

Enable debug mode for the app:
(note: use Get-AppxPackage to look up the full name of the app)
Enable-AppxDebug  9519ba58-7ad6-4c4e-97ed-bfc2135a0d19_1.0.0.0_x86__2c7ztm58ext6g
# Debugging has been enabled for 9519ba58-7ad6-4c4e-97ed-bfc2135a0d19_1.0.0.0_x86__2c7ztm58ext6g.
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
114
 
115
5) Extra: Helpful snippets and tools
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
116
------------------------------------
117 118 119 120 121 122
Use http://technet.microsoft.com/en-us/sysinternals/bb896647 DebugView to view the debug logs
And Procmon ( http://technet.microsoft.com/en-ca/sysinternals/bb896645.aspx ) helps to see and debug events (like loading DLLs/modules/etc)

Quick one-liners to remove ugly mode changes and ugly CR-LF line endings.
git status -s | grep "^ M " | awk '{ print $2; }' | xargs chmod 644
git status -s | grep "^ M " | awk '{ print $2; }' | xargs dos2unix
Thomas Nigro's avatar
Thomas Nigro committed
123 124