summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2010-02-18 18:34:11 +0000
committerphintuka <phintuka>2010-02-18 18:34:11 +0000
commit0a3dc50d841a61833c3ab3646ebc305405aae343 (patch)
tree2d2305b40c3a6f8f863b5af74e13da04ca3942b7
parent1f454c003649f53b23a587dfa93e7f37afd3c0b7 (diff)
downloadxineliboutput-0a3dc50d841a61833c3ab3646ebc305405aae343.tar.gz
xineliboutput-0a3dc50d841a61833c3ab3646ebc305405aae343.tar.bz2
Escape only raw file names, not complete mrls (closes sf bug #2670927)
-rw-r--r--media_player.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/media_player.c b/media_player.c
index 48396db6..3ed5390a 100644
--- a/media_player.c
+++ b/media_player.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: media_player.c,v 1.72 2010-02-18 07:42:27 phintuka Exp $
+ * $Id: media_player.c,v 1.73 2010-02-18 18:34:11 phintuka Exp $
*
*/
@@ -230,22 +230,11 @@ void cXinelibPlayer::Activate(bool On)
pos = 0;
close(fd);
}
- // escape file name and join subtitle file
- // Maybe mrls from playlist files should not be escaped ?
- // (those may contain #subtitle, #volnorm etc. directives)
- cString mrl;
- if(*m_SubFile)
- mrl = cString::sprintf("%s%s#subtitle:%s%s",
- m_File[0] == '/' ? "file:" : "",
- *cPlaylist::EscapeMrl(m_File),
- m_SubFile[0] == '/' ? "file:" : "",
- *cPlaylist::EscapeMrl(m_SubFile));
- else if((*m_File)[0] == '/')
- mrl = cString::sprintf("%s%s",
- m_File[0] == '/' ? "file:" : "",
- *cPlaylist::EscapeMrl(m_File));
- else
- mrl = cPlaylist::EscapeMrl(m_File);
+ // escape raw file names and join subtitle file to the mrl
+ cString mrl = m_File[0] == '/' ? cPlaylist::BuildMrl("file", m_File) : m_File;
+ if (*m_SubFile)
+ mrl = cString::sprintf("%s#subtitle:%s", *mrl,
+ m_SubFile[0] == '/' ? *cPlaylist::BuildMrl("file", m_SubFile) : *m_SubFile);
// Start replay
UpdateNumTracks();
@@ -1128,10 +1117,10 @@ cXinelibImagePlayer::~cXinelibImagePlayer()
bool cXinelibImagePlayer::Play(void)
{
- if ((*m_Mrl)[0] == '/')
- m_Mrl = cString::sprintf("file:%s", *cPlaylist::EscapeMrl(m_Mrl));
+ if (m_Mrl[0] == '/')
+ m_Mrl = cPlaylist::BuildMrl("file", m_Mrl);
- return m_Dev->PlayFile(m_Mrl, 0, true);
+ return ! (m_Error = !m_Dev->PlayFile(m_Mrl, 0, true));
}
void cXinelibImagePlayer::Activate(bool On)