XBMC delivers incorrect Path with External Player
#1
Hi,

I am using PowerDVD and VirtualCloneDrive to play ISOs. That works fine as long as there are no spaces in the path to the ISO-file.

First I thought this would be an error by CloneDrive but thats not true. XBMC is cutting the path on the first space character. So CloneDrive can't mount because it is no getting the correct path.

Is this a well known error?
Do you know a way around?

My playercorefactory.xml:
Quote:<playercorefactory>
<players>

<player name="ISO" type="ExternalPlayer" audio="false" video="true">
<filename>C:\XBMC-Dateien\PlayISO.bat </filename>
<args>{1}</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>

<player name="FOLDER" type="ExternalPlayer" audio="false" video="true">
<!-- the path to a cmd script - you can change to your own -->
<filename>C:\XBMC-Dateien\PlayFolder.bat</filename>
<args>"{1}"</args>
<hidexbmc>false</hidexbmc>
<hideconsole>true</hideconsole>
<warpcursor>none</warpcursor>
</player>

</players>
<rules action="prepend">
<rule filetypes="iso" filename="*.iso" player="ISO"/>
<rule filetypes="bdmv" player="FOLDER"/>
</rules>
</playercorefactory>
Tried it with <args>{1}</args> as well as with <args>"{1}"</args>

My PlayISO.bat:
Quote:"C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\VCDMount.exe" "%1"
"C:\Program Files (x86)\CyberLink\PowerDVD11\PowerDVD11.exe" "E:\BDMV\index.bdmv"
"C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\VCDMount.exe" /d=0 /u
Tried it with %1 and with "%1" and /d=0
An output with echo "%1" >> C:\Users\Andy\Desktop\TEST.DAT shows that the path was cut by xbmc.
Reply
#2
I test this with v10.1 using the following in my playercorefactory.xml:

Code:
<playercorefactory>
  <players>
    <player name="TestPlayer" type="ExternalPlayer">
     <filename>D:\temp\Test.bat</filename>
     <args>"{1}"</args>
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
    </player>
  </players>

  <rules action="prepend">
    <rule name="avi" filetypes="avi" player="TestPlayer" />
  </rules>
</playercorefactory>

and the following in D:\temp\Test.bat:

Code:
echo ---%1---
pause

and when I play an AVI a command prompt appears showing:

Code:
C:\Program Files (x86)\XBMC>echo ---"D:\XBMC\Video\Dastardly and Muttley\01.Fur Out Furlough.Hot Soup.Barn Dance.Muttley on the Bounty.Soppy Birthday.IVTC.avi"---
---"D:\XBMC\Video\Dastardly and Muttley\01.Fur Out Furlough.Hot Soup.Barn Dance.Muttley on the Bounty.Soppy Birthday.IVTC.avi"---

C:\Program Files (x86)\XBMC>pause
Press any key to continue . . .

So in this case at least XBMC is handling the spaces correctly. I'd start by replicating the setup above and check that it works, then proceed from there.

You can see exactly what XBMC is doing by looking at your log file. In the above case I get:

Code:
NOTICE: CExternalPlayer::ExecuteAppW32:  "D:\temp\Test.bat" "D:\XBMC\Video\Dastardly and Muttley\01.Fur Out Furlough.Hot Soup.Barn Dance.Muttley on the Bounty.Soppy Birthday.IVTC.avi"

See http://wiki.xbmc.org/index.php?title=Log_File for how to get at the log file.

JR
Reply
#3
Ok, found it. You have a point. Seems that (can't believe it!) there is one combination I didn't try. It's like shown in your configuration, the " " in the playercorefactory and without them in the bat file. I am so damn sure I tried that at least 10 times in this combination as well as every other possible way around. Thank you.
Reply

Logout Mark Read Team Forum Stats Members Help
XBMC delivers incorrect Path with External Player0