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

+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Development (/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


- Smirnov - 2008-11-30 21:19

Definitely need a way to launch this only for some extensions (better yet put a regex expression on the full file path!) -- I only need to use this to play HD MKV files myself (since I'm using CoreAVC there) and everything else plays fine by the built-in XBMC player.

It's already been requested on the ticket, so I can safely not post there.


- sumofatguy - 2008-11-30 22:57

Smirnov Wrote:Definitely need a way to launch this only for some extensions (better yet put a regex expression on the full file path!) -- I only need to use this to play HD MKV files myself (since I'm using CoreAVC there) and everything else plays fine by the built-in XBMC player.

It's already been requested on the ticket, so I can safely not post there.

Yes that is what I posted in the tickets. I also asked for the ability to recognize tags in the filename if possible, since many mkv's may have bluray in the filename. I didn't know which one would be easier... As well, a tag in the filename would allow you to tag only certain mkv's for mpc playback, and lower bitrate 720p ones to play in xbmc


- Smirnov - 2008-11-30 23:05

Recognizing just by file name should be trivial, hopefully that's added first (and then maybe tags)?


- greenteagod - 2008-12-01 08:30

I'm having the same issue as PantsOnFire

I even tried downloading MPC from a source other than CCCP to see if that was causing any issue. It's still not setting the launchplayer to default even though the indicated instructions make it appear that would be the case, and when run by right clicking XBMC freezes entirely.

Code:
<advancedsettings>
<launchplayer>
<defaultplayer>true</defaultplayer>
<filename>C:\apps\mpc\mplayerc.exe</filename>
<args>/fullscreen</args>
</launchplayer>
</advancedsettings>



- konfoo - 2008-12-02 03:44

PantsOnFire Wrote:02:55:10 T:3012 M:447504384 NOTICE: CLAUPlayer:OpenFile: K:\VIDEO\FILM\Alien Vs Predator Requiem.avi
02:55:10 T:3184 M:447496192 NOTICE: CLAUPlayer:Filename:
02:55:10 T:3184 M:447492096 NOTICE: CLAUPlayer:Args:
02:55:10 T:3184 M:447492096 NOTICE: CLAUPlayer:Process: Start
02:55:10 T:3184 M:447475712 NOTICE: CLAUPlayer:ExecuteApp: "K:\VIDEO\FILM\Alien Vs Predator Requiem.avi"
02:55:10 T:3184 M:447475712 NOTICE: CLAUPlayer:ExecuteAppFailure: 0

Note where it says filename: and args: with no parameters -- your application.xml is probably in the wrong place on the filesystem (under vista it needs to be in your roaming section -- see the wiki) or the parameters are incorrect.


- konfoo - 2008-12-02 03:54

Smirnov Wrote:Definitely need a way to launch this only for some extensions (better yet put a regex expression on the full file path!) -- I only need to use this to play HD MKV files myself (since I'm using CoreAVC there) and everything else plays fine by the built-in XBMC player.

It's already been requested on the ticket, so I can safely not post there.

Here's the problem with supporting regex and file extensions and multiple players for each of these -- you open a pandoras box of feature creep which ultimately leads to a cluster fuck of 'features' where most don't work well and maybe one or two people actually use them. The code becomes bloated an noone cleans it up because they have no idea as to the active userbase relying on the features.

Launchplayer is a stub to launch an external player. Nothing more nothing less. If you want to do regex and file extension parsing then that is best done in the same manner as done by illness with the compiled batch file that fires off whatever he needs. That way you still have one generic solution which serves everyone's purposes, and file- and application-specific features can be nicely compartmentalized in these helper apps without always having to add it to the mainline code.

So in terms of functionality if there are features that pertain to generic application launching, yes they should go in the launchplayer code. Anything else can be posted to the threads here (helper apps etc.).

Just my 2c.


- obstler - 2008-12-02 11:06

konfoo Wrote:Launchplayer is a stub to launch an external player. Nothing more nothing less. If you want to do regex and file extension parsing then that is best done in the same manner as done by illness with the compiled batch file that fires off whatever he needs. That way you still have one generic solution which serves everyone's purposes, and file- and application-specific features can be nicely compartmentalized in these helper apps without always having to add it to the mainline code.

I almost completely agree with you ;) However, external player selection does not work for all cases. IE I'd like to keep apple movie trailer streaming internal as that works better -- an external batch cannot do that.


- konfoo - 2008-12-02 11:15

obstler Wrote:I almost completely agree with you Wink However, external player selection does not work for all cases. IE I'd like to keep apple movie trailer streaming internal as that works better -- an external batch cannot do that.

Right and neither can launchplayer. When it is fired by the system as a stub player you are already downstream from the core - see:

void CPlayerCoreFactory::GetPlayers( const CFileItem& item, VECPLAYERCORES &vecCores)

The only way to parse out various filetypes and decide to launch launchplayer (or not) is to modify upstream code prior to it even launching.


- Smirnov - 2008-12-02 11:38

Without having looked at the code yet, I can't imagine what the problem would be. You are already parsing advancedsettings.xml to see whether or not LaunchPlayer should be used, so just parse an extra XML element that knows which file extensions to use.

Then when you're deciding whether or not to use LaunchPlayer maybe check the CFileItem::m_strPath to see if it matches against the file extension or not? Wouldn't something like that work?

Unfortunately myself and probably many others are hesitant at using this patch given the status quo because I would only want to play MKV (for the CoreAVC) and RMVB (because ffdshow doesn't play it) in an external player.


- ashlar - 2008-12-02 12:56

Hi konfoo, do you think you could have a build with the patch mentioned by CapnBry here: http://trac.xbmc.org/ticket/5307?
For me it's perfect, but the fact that it autoswitches to 60Hz kills all the joy of being able to use Reclock and CoreAVC. Smile


- ashlar - 2008-12-03 01:36

Actually, after http://trac.xbmc.org/changeset/16434 just an updated build would do great!Nod


- greenteagod - 2008-12-03 09:42

ashlar Wrote:Does this give you the standard Windows dressing? Borders, title bar, etc.?

larsson2 Wrote:Yes, it does

It seems like that pretty much defeats the purpose of even running XBMC. Otherwise loading everything into the WMP library would suffice.

Now if only they'd write XBMC with proper codecs ;-)


- spiff - 2008-12-03 12:37

IF you are to add such a thing as per extension player support it will be just that, per extension player support. not something inside launchplayer

greanteagod, fuck off.


- ashlar - 2008-12-03 12:47

AHAHAHHA!!!! I was thinking something along those lines, spiff.

ffmpeg codecs are great, the fact that they are not as fast (yet) as CoreAVC on h.264 content doesn't make them instantly "un-proper".

To be honest, with the right processor, they are perfectly fine for all content. It was different when multithreading wasn't used.

Now my only remaining concern rests with lack of Reclock-like capabilities. But codecs, greanteagod, are fine, really.


- alienagenda - 2008-12-03 22:33

konfoo Wrote:The current build is a few revs post atlantis release.

Another build this weekend which should have the final patchset ready for inclusion into the SVN tree and release for 9.x.

is there an SVN build number we can find this in yet?