PDA

View Full Version : [RELEASE] XbmcExternalPlayerController Application for Windows


tiben20
2009-06-20, 12:02
XbmcExternalPlayerController
For Windows only!

Explication on how it works:
This application is a preconfigured package of multiple open source video players.
When xbmc launch the external player the application will locate your keymap.xml and
parse every key you got from the <global> and <FullscreenVideo> node in the keymap and will
hook them to the player. This version only have the keyboard function working. But im planing
on adding the joystick and remotes key too.

In this version only those keys are working for this version
-play
-pause
-stop
-volumedown
-volumeup
-mute
-stepforward
-stepback
-smallstepback
-smallstepforward
-bigstepforward
-bigstepback
Only Media Player Classic - Homecinema is integrated in the package
Im planning on adding
Media Player Classic - Homecinema http://forum.doom9.org/showthread.php?t=123537
mplayer http://www.mplayerhq.hu/design7/news.html
vlc http://www.videolan.org
and maybe smplayer if i get a lot of request for adding it into the package.

Instructions:
You need to set modify your advancedsettings.xml. If you dont know what is this file goto http://xbmc.org/wiki/?title=Advancedsettings.xml
you have an example of how the file should looks like in the Instructions directory.
Everything else is handled by the application. Its locating the keymap.xml on his own.

Download Link:

XbmcExternalPlayerController Rev.1 (http://www.zshare.net/download/6161745587959756/)

External links to everything i used to build this:
http://forum.doom9.org/showthread.php?t=123537
http://www.mplayerhq.hu/design7/news.html
http://www.videolan.org
ManagedWinapi http://mwinapi.sourceforge.net/

BoLzI
2009-06-24, 19:40
Hi,

i used to try your program but when he starts to load the externalplayer .net framework gets an error and aborts.

Here is the (germany) errorlog:


Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei XbmcExternalPlayerController.KeyMap.loadWindow()
bei XbmcExternalPlayerController.frmStarter.loadKeyMap (String keymappath)
bei XbmcExternalPlayerController.frmStarter.frmStarter _Load(Object sender, EventArgs e)
bei System.EventHandler.Invoke(Object sender, EventArgs e)
bei System.Windows.Forms.Form.OnLoad(EventArgs e)
bei System.Windows.Forms.Form.OnCreateControl()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.WmShowWindow(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
bei System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
bei System.Windows.Forms.Form.WmShowWindow(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3082 (QFE.050727-3000).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
XbmcExternalPlayerController
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Programme/XBMC/XbmcExternalPlayerController/XbmcExternalPlayerController.exe.
----------------------------------------
Microsoft.VisualBasic
Assembly-Version: 8.0.0.0.
Win32-Version: 8.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Runtime.Remoting
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
System.Xml
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3082 (QFE.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3082 (QFE.050727-3000).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

csmcdem
2009-07-03, 09:14
tiben20 can you upload the version for tmt3 and virtual clone drive?

Haggy
2009-07-03, 11:24
Moved to windows - as it is windows only

tiben20
2009-07-03, 13:40
@BoLzI:Are you trying to use it when xbmc is running.This application is only made for the use of xbmc external player.

@csmcdem:For tmt3 That would be a big peace of code since i have no clue how i could match the keymaping for tmt3. And i was planning to only make this for free external players.

and to let everybody know im currently building the mplayer branch of this application
http://img16.imageshack.us/img16/7497/playeryip.th.jpg (http://img16.imageshack.us/i/playeryip.jpg/) you actually cant see the video pictures becasue its a print screen but you see the design of the osd. Which for now is working great only need to fix some fix with seeking when you click on the progress bar. And some behavior with mplayer stdout. It appears that you dont have the same decimal . for every country some use , and some others use a dot.!

mfsav2
2009-07-03, 15:54
May I suggest you consider GOMPlayer is by far the best player I've seen in terms of video quality and format support.

BoLzI
2009-07-03, 18:14
I run XBMC and when i want to watch a movie my external Player (MPC_HC) should get started and then the error log is shown.

Livin
2009-07-03, 21:30
May I suggest you consider GOMPlayer is by far the best player I've seen in terms of video quality and format support.

... not likely a true statement

Considering every player that uses 3rd party codecs, unless they screw up something and they degrade the video, will look exactly the same since they should not be touching the video output at all.

csmcdem
2009-07-04, 00:40
@csmcdem:For tmt3 That would be a big peace of code since i have no clue how i could match the keymaping for tmt3. And i was planning to only make this for free external players.


i was talking about the one you gave to jondr13 at this post:
http://xbmc.org/forum/showthread.php?p=348546#post348546

it's no longer on mediafire
thanks

tiben20
2009-07-04, 00:43
@Livin: I started with mpc-hc because you have the dxva renderer with this one which if you have the video card to handle it a really good media player
@csmcdem:oh i see ill make some work on it when i have the time. I didnt know some people were interested in updates of this application

Livin
2009-07-04, 00:49
tiben20,
you probably meant that @ to mfsav2 - I use mpc-hc myself daily.

QUESTION: are you planning to make this a patch for XBMC and submit to SVN?

I hope you do... this would be a great addition as native code that could have 'plug-ins' to handle 3rd party players.

I think you are on a great track here!

tiben20
2009-07-04, 01:49
@Livin Its just a .net application which use the xbmc external player.
I was thinking about making some modification to the externalplayer of xbmc to make possible the use of WM_COPYDATA. This would make possible to parse information from the .net external player extension too xbmc. This would be a nice piece of code to make this possible. Ill give it a try and see if i got the skills to make this possible!

tiben20
2009-07-04, 03:46
csmcdem your talking about this one ?
http://www.mediafire.com/?tdliimg2mjm

Livin
2009-07-04, 05:22
I tried your app but cannot get it to work...

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at XbmcExternalPlayerController.KeyMap.loadWindow()
at XbmcExternalPlayerController.frmStarter.loadKeyMap (String keymappath)
at XbmcExternalPlayerController.frmStarter.frmStarter _Load(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///c:/WINDOWS.0/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
XbmcExternalPlayerController
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files/XBMC-EPC/XbmcExternalPlayerController.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///C:/WINDOWS.0/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

csmcdem
2009-07-04, 22:37
csmcdem your talking about this one ?
http://www.mediafire.com/?tdliimg2mjm

yep, the link in that post doesn't work, but this does. thanks for a working one

tiben20
2009-07-05, 00:52
Livin the error is related to the loading of your keymap.xml. Their a modification in it which my application cant handle. Can you send me by pm the code of your keymap.xml so i can test it and fix the behavior in my application

Livin
2009-07-05, 01:32
Livin the error is related to the loading of your keymap.xml. Their a modification in it which my application cant handle. Can you send me by pm the code of your keymap.xml so i can test it and fix the behavior in my application

I have not mod'd my keymap.xml

Click Here for the XML (http://members.cox.net/livin/Keymap.xml)

Livin
2009-08-05, 00:19
any update to this app?

tiben20
2009-08-05, 23:02
sorry i stopped developping the application. Im actually working on the xbmc directx port.

WiSo
2009-08-05, 23:07
sorry i stopped developping the application. Im actually working on the xbmc directx port.

Please get in touch with Eli or jmarshall as soon as you have some code to share before it might go in the wrong direction.

tiben20
2009-08-08, 08:33
Hey wiso you ever tryed to compile ffmpeg with --enable-avisynth and try a to launch the .avs script from xbmc

DirectShowSource("yourfile.avi",fps=30,audio=true,video=true)

This is weird i got the sound working but not the video
With ffplay the avs script work perfectly.

rflores2323
2009-08-08, 17:02
does this work with the current build of xbmc???

tiben20
2009-08-09, 01:52
Not yet its fails when its calling av_codecopen for the rawvideo coming from avisynth

WiSo
2009-08-09, 01:58
Hey wiso you ever tryed to compile ffmpeg with --enable-avisynth and try a to launch the .avs script from xbmc


Nope. Even though I'm developing for windows I'm not an expert there :;):