2009-01-11, 18:23
ashlar Wrote:This works perfectly (bar the default player setting, but I know that's a different story).
Jester has my ExternalPlayer patch to hide the XBMC window before launching the external player. The default player setting was broken in [16391] when code was added to ensure that the dvdplayer core was used for video
Quote:fixed: if a file can be audio or video we have to treat it as video to ensure playback. fixes #5515 - .mod video extension playback
this was obviously added after the externalplayer patch was initially created. Here's a patch to fix:
Code:
--- xbmc\cores\PlayerCoreFactory.cpp-16984 2009-01-11 16:20:31.000000000 -0000
+++ xbmc\cores\PlayerCoreFactory.cpp 2009-01-11 16:14:58.000000000 -0000
@@ -166,13 +166,25 @@
if (((item.IsDVD()) || item.IsDVDFile() || item.IsDVDImage()))
{
vecCores.push_back(EPC_DVDPLAYER);
}
if (item.IsVideo()) // video must override audio
- vecCores.push_back(EPC_DVDPLAYER);
+ {
+ // Handle default players set via advancedsettings:
+ if (g_advancedSettings.m_videoDefaultPlayer == "externalplayer")
+ {
+ vecCores.push_back(EPC_EXTPLAYER);
+ vecCores.push_back(EPC_DVDPLAYER);
+ }
+ else
+ {
+ vecCores.push_back(EPC_DVDPLAYER);
+ vecCores.push_back(EPC_EXTPLAYER);
+ }
+ }
if( PAPlayer::HandlesType(url.GetFileType()) )
{
// We no longer force PAPlayer as our default audio player (used to be true):
bool bAdd = false;
if (url.GetProtocol().Equals("mms"))
@@ -204,27 +216,12 @@
vecCores.push_back(EPC_PAPLAYER);
}
}
}
// Add all normal players last so you can force them, should you want to
- // Handle default players set via advancedsettings:
- if( item.IsVideo() )
- {
- if ( g_advancedSettings.m_videoDefaultPlayer == "externalplayer" )
- {
- vecCores.push_back(EPC_EXTPLAYER);
- vecCores.push_back(EPC_DVDPLAYER);
- }
- else
- {
- vecCores.push_back(EPC_DVDPLAYER);
- vecCores.push_back(EPC_EXTPLAYER);
- }
- }
-
if( item.IsAudio())
{
if ( g_advancedSettings.m_audioDefaultPlayer == "dvdplayer" )
{
vecCores.push_back(EPC_DVDPLAYER);
vecCores.push_back(EPC_PAPLAYER);