Kodi Community Forum
[PATCH] LaunchPlayer - External Video Player Launcher (to launch third-party players) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: [PATCH] LaunchPlayer - External Video Player Launcher (to launch third-party players) (/showthread.php?tid=40136)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27


- stiggy - 2008-12-10

I updated the development ticket as konfoo originally asked me to with my request, but it didn't seem like it was appreciated so i will bring the discussion back here.

Since I made my original request, it seems like the inclusion of file extensions has gone from a "planned feature" to a not-gonna-happen.

The response that i got in the ticket was that "There is no reason why you can't have a batch file do the job you want --
look at the extension and then fire the player you want."

As my original request stated, i would like "the internal player [to] still be called unless a match was found on the extension of the media file that was selected to play. For example, send all "VOB" extension files to an external player; otherwise use the internal player." Most extensions play wonderfully inside of XBMC and i have no need or desire to bypass the internal decoder.

Is it possible externally to call back into XBMC and have the internal XBMC player render a file?

Unless i am missing something, without extension support in the code calling the external player, the external player/batch file/processor will ALWAYS be called. Am I wrong in this?

If I am not wrong, then i think there is a reason to consider supporting an extension list from a functionality perspective. I can't speak for others here but i am not looking for involved functionality, just the ability to whitelist extensions to be sent to the external player/batch file/processor. From there, i totally agree the external program can have whatever logic is needed.


- WiSo - 2008-12-10

@konfoo: To support UNICODE you have to convert XBMC filenames from utf8toW and use the UNICODE windows functions like CreateFileW.
The strings returned need to be converted back (WtoUtf8).


- bnaert - 2008-12-10

I've finally got everything working, the only problem i have left is when MPC closes, XBMC just launches it again, and never stops launching it until i kill the process.

It doesn't do this if the movie ends on it's own and the player closes. Only when i force MPC to close.

Edit - Nevermind it seems to have stopped, i have no idea what i did though.


- smtdd - 2008-12-11

D:\中文.mov ,D:\中文(chinese).mov , can not support

But. D:\(chinese).mov ,can support



==============.log file======================


08:05:11 T:1616 M:107069440 NOTICE: Mapping drive Z to C:\Documents and Settings\Administrator\Application Data\XBMC\cache
08:05:11 T:1616 M:107044864 NOTICE: Mapping drive T to C:\Documents and Settings\Administrator\Application Data\XBMC\userdata
08:05:11 T:1616 M:107044864 NOTICE: Mapping drive Q to C:\Program Files\XBMC
08:05:11 T:1616 M:107044864 NOTICE: Mapping drive U to C:\Program Files\XBMC
08:05:11 T:1616 M:106954752 NOTICE: -----------------------------------------------------------------------
08:05:11 T:1616 M:106942464 NOTICE: Starting XBMC, Platform: Windows XP Professional Service Pack 3 build 2600. Built on Dec 8 2008 (compiler 1500)
08:05:11 T:1616 M:106942464 NOTICE: Intel® Pentium® 4 CPU 2.80GHz
08:05:11 T:1616 M:106942464 NOTICE: Desktop Resolution: 1024x768 32Bit at 75Hz
08:05:11 T:1616 M:106942464 NOTICE: Q is mapped to: C:\Program Files\XBMC
08:05:11 T:1616 M:106942464 NOTICE: The executable running is: C:\Program Files\XBMC\XBMC.exe
08:05:11 T:1616 M:106942464 NOTICE: Log File is located: C:\Documents and Settings\Administrator\Application Data\XBMC\xbmc.log
08:05:11 T:1616 M:106942464 NOTICE: -----------------------------------------------------------------------
08:05:11 T:1616 M:106926080 NOTICE: Setup SDL
08:05:11 T:1616 M:105414656 NOTICE: load settings...
08:05:11 T:1616 M:105406464 NOTICE: Mapping drive P to C:\Documents and Settings\Administrator\Application Data\XBMC\userdata
08:05:11 T:1616 M:105402368 NOTICE: loading C:\Documents and Settings\Administrator\Application Data\XBMC\userdata\guisettings.xml
08:05:11 T:1616 M:105005056 NOTICE: Getting hardware information now...
08:05:11 T:1616 M:105005056 NOTICE: Checking resolution 10
08:05:11 T:1616 M:105005056 NOTICE: Setting autoresolution mode 12
08:05:11 T:1616 M:104968192 NOTICE: Loaded advancedsettings.xml from C:\Documents and Settings\Administrator\Application Data\XBMC\userdata\advancedsettings.xml
08:05:11 T:1616 M:104964096 NOTICE: ExternalPlayer Filename: C:\Program Files\Final Codecs\myplayer.exe
08:05:11 T:1616 M:104964096 NOTICE: ExternalPlayer Tweaks: Forceontop (false), Hideconsole (true), Hidecursor (false)
08:05:11 T:1616 M:104951808 NOTICE: Getting hardware information now...
08:05:11 T:1616 M:104951808 NOTICE: Checking resolution 10
08:05:11 T:1616 M:104951808 NOTICE: Setting autoresolution mode 12
08:05:11 T:1616 M:104951808 NOTICE: Default Video Player: externalplayer
08:05:11 T:1616 M:104951808 NOTICE: Default Audio Player: paplayer
08:05:11 T:1616 M:105082880 NOTICE: C:\Documents and Settings\Administrator\Application Data\XBMC\userdata\sources.xml
08:05:11 T:1616 M: 98811904 NOTICE: start dvd mediatype detection
08:05:11 T:1616 M: 98791424 NOTICE: initializing playlistplayer
08:05:11 T:1616 M: 98787328 NOTICE: DONE initializing playlistplayer
08:05:11 T:1616 M: 98779136 NOTICE: load default skin:[PM3.HD]
08:05:12 T:1616 M: 93925376 NOTICE: initialize done
08:05:12 T:1616 M: 93925376 NOTICE: Running the application...
08:05:12 T:1616 M: 93478912 NOTICE: ES: Starting event server
08:05:12 T:2704 M: 92680192 NOTICE: ES: Starting UDP Event server on 127.0.0.1:9777
08:05:12 T:2704 M: 92676096 NOTICE: UDP: Listening on port 9777
08:05:22 T:1616 M: 64643072 NOTICE: CEXTPlayer:OpenFile: D:\中文(chinese).mov
08:05:22 T:2884 M: 64724992 NOTICE: CEXTPlayer:Filename: C:\Program Files\Final Codecs\myplayer.exe
08:05:22 T:2884 M: 64720896 NOTICE: CEXTPlayer:Args: /fullscreen
08:05:22 T:2884 M: 64720896 NOTICE: CEXTPlayerBig Grinefault Player: externalplayer
08:05:22 T:2884 M: 64720896 NOTICE: CEXTPlayerTonguerocess: Start
08:05:22 T:2884 M: 64720896 NOTICE: CEXTPlayer:ExecuteApp: C:\Program Files\Final Codecs\myplayer.exe C:\Program Files\Final Codecs\myplayer.exe /fullscreen "D:\中文(chinese).mov"
08:05:23 T:2884 M: 64167936 NOTICE: CEXTPlayer:WAIT_OBJECT_0
08:05:23 T:2884 M: 64184320 NOTICE: CEXTPlayer:Stop
08:05:47 T:1616 M: 45789184 NOTICE: Storing total System Uptime
08:05:47 T:1616 M: 45789184 NOTICE: Saving settings
08:05:47 T:1616 M: 45723648 NOTICE: stop all
08:05:47 T:1616 M: 45723648 NOTICE: ES: Stopping event server
08:05:47 T:2704 M: 45793280 NOTICE: ES: UDP Event server stopped
08:05:47 T:1616 M: 45821952 NOTICE: stop dvd detect media
08:05:47 T:1616 M: 45850624 NOTICE: stop sap announcement listener
08:05:47 T:1616 M: 45846528 NOTICE: clean cached files!
08:05:47 T:1616 M: 45846528 NOTICE: unload skin
08:05:47 T:1616 M: 70656000 NOTICE: stop python
08:05:47 T:1616 M: 70656000 NOTICE: stopped


- smtdd - 2008-12-11

konfoo Wrote:Please turn on debugmode in XBMC, open a file to play with external player, and post your xbmc.log on e.g. pastebin.com. (Hopefully this reverse translates correctly) Wink


POST TO pastebin.com.


http://pastebin.com/m2f31940c

Can you see it?

Blush


- nugentgl - 2008-12-11

bnaert Wrote:I've finally got everything working, the only problem i have left is when MPC closes, XBMC just launches it again, and never stops launching it until i kill the process.

It doesn't do this if the movie ends on it's own and the player closes. Only when i force MPC to close.

Edit - Nevermind it seems to have stopped, i have no idea what i did though.

Mine is doing the same thing except XBMC will never stop re-opening the movie until I manually stop the movie then exit. An easy workaround is programming one button to stop MPC playback and then exit MPC.


- digital21cn - 2008-12-11

spiff Wrote:log wont really show you anything.

the issue is this (not confirmed but i'm quite sure); we use utf-8 to represent everything internally in xbmc, those apps want msft ansi formatted strings. unicode in windows is really quite the pita. looking at the commits that (tried to) fix the international-char-in-username stuff might be an idea

Agree. I guess xbmc was developed using unicode, because it supports Chinese very well. But as for this plugin, it may not the case.


- spiff - 2008-12-11

yeah, utf-8 "==" unicode (the equality in quotes as there are several unicode standards..)


- konfoo - 2008-12-11

spiff Wrote:log wont really show you anything.

the issue is this (not confirmed but i'm quite sure); we use utf-8 to represent everything internally in xbmc, those apps want msft ansi formatted strings. unicode in windows is really quite the pita. looking at the commits that (tried to) fix the international-char-in-username stuff might be an idea

Yes I am aware of unicode issues - but given the amount of posts in this thread along the lines of 'launchplayer is broken for reason X' that turn out to be reason Y, it never hurts to get one regardless...


- konfoo - 2008-12-11

bnaert Wrote:I've finally got everything working, the only problem i have left is when MPC closes, XBMC just launches it again, and never stops launching it until i kill the process.

It doesn't do this if the movie ends on it's own and the player closes. Only when i force MPC to close.

Edit - Nevermind it seems to have stopped, i have no idea what i did though.

Your remote control handler may also be sending multiple keypresses for a button hit. But regardless you should just map stop or close to alt-x or whatever the graceful exit is, vs simply alt-f4'ing it.


- konfoo - 2008-12-11

stiggy Wrote:I updated the development ticket as konfoo originally asked me to with my request, but it didn't seem like it was appreciated so i will bring the discussion back here.

Since I made my original request, it seems like the inclusion of file extensions has gone from a "planned feature" to a not-gonna-happen.

The response that i got in the ticket was that "There is no reason why you can't have a batch file do the job you want --
look at the extension and then fire the player you want."

As my original request stated, i would like "the internal player [to] still be called unless a match was found on the extension of the media file that was selected to play. For example, send all "VOB" extension files to an external player; otherwise use the internal player." Most extensions play wonderfully inside of XBMC and i have no need or desire to bypass the internal decoder.

Is it possible externally to call back into XBMC and have the internal XBMC player render a file?

Unless i am missing something, without extension support in the code calling the external player, the external player/batch file/processor will ALWAYS be called. Am I wrong in this?

If I am not wrong, then i think there is a reason to consider supporting an extension list from a functionality perspective. I can't speak for others here but i am not looking for involved functionality, just the ability to whitelist extensions to be sent to the external player/batch file/processor. From there, i totally agree the external program can have whatever logic is needed.

You are spelling out a request to fire off a player based on the file extension. This has nothing to do with the external player code or ticket. No code modification to the external player would make this possible unless you want the extensions parsed in the external player code which doesn't make any sense. Feel free to open another ticket with this request.


- spiff - 2008-12-11

yeh, sorry konfoo, didnt mean to rob you of your log Smile


- konfoo - 2008-12-11

spiff Wrote:yeh, sorry konfoo, didnt mean to rob you of your log Smile

Lol. It's my log and I'll do what I want with it! Wink


- us1111 - 2008-12-11

Quote:I cannot find this in the thread, but... Is it also possible to automate to only start the external player with certain filetypes and use the internal for the rest?

Like *.avi, internal and *.mkv external?

ashlar Wrote:No, it's not possible.

I'm sure it's possible, only not implemented as I see from the post from stiggy... That's a shame.. Now I have to choose between DVD ISO's/VIDEO_TS with the internal player or HD material with the external player...


- BinaryTB - 2008-12-12

My default externalplayer (zoom player in this case) launches nicely when running video files via XBMC (mkv, avi, etc), but when selecting ISO files, it still uses the internal dvd player as default (Play Using... shows it as default, externalplayer is the second option). Any way to make externalplayer default for everything?