Commit
…ename dvdname.titNN.iso will play title NN (playlist NNNNN.mpls on BR) a ttile in a DVD folder can be played with DVDname.titNN/VIDEO_TS/VIDEO_TS.IFO in particular a set of links DVDname.titNN -> DVD/VIDEO_TS/VIDEO_TS
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -274,13 +274,25 @@ BLURAY_TITLE_INFO* CDVDInputStreamBluray::GetTitleFile(const std::string& filena | |
|
||
bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content) | ||
{ | ||
int title = 100000; | ||
if(m_player == NULL) | ||
return false; | ||
CLog::Log(LOGDEBUG, "CDVDInputStreamBluray::Open - opening %s", strFile); | ||
|
||
CStdString strPath(strFile); | ||
CStdString filename; | ||
CStdString root; | ||
|
||
int iPos = strPath.ReverseFind('?'); | ||
if( iPos > 0 | ||
&& iPos > strPath.ReverseFind('/') | ||
&& iPos > strPath.ReverseFind('\\') | ||
&& strPath.Mid(iPos,7).CompareNoCase("?title") ) | ||
{ | ||
title = atoi( strPath.Mid(iPos+7).c_str()); | ||
strPath = strPath.Left(iPos); | ||
} | ||
|
||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
dragonflight
Author
Owner
|
||
if(strPath.Left(7).Equals("bluray:")) | ||
{ | ||
CURL url(strPath); | ||
|
@@ -289,6 +301,7 @@ bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content | |
} | ||
else | ||
{ | ||
filename = URIUtils::GetFileName(strPath); | ||
URIUtils::GetDirectory(strPath,strPath); | ||
URIUtils::RemoveSlashAtEnd(strPath); | ||
|
||
|
@@ -304,7 +317,6 @@ bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content | |
URIUtils::RemoveSlashAtEnd(strPath); | ||
} | ||
root = strPath; | ||
filename = URIUtils::GetFileName(strFile); | ||
} | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
dragonflight
Author
Owner
|
||
|
||
if (!m_dll) | ||
|
@@ -315,7 +327,11 @@ bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content | |
m_dll->bd_set_debug_handler(DllLibbluray::bluray_logger); | ||
m_dll->bd_set_debug_mask(DBG_CRIT | DBG_BLURAY | DBG_NAV); | ||
|
||
CLog::Log(LOGDEBUG, "CDVDInputStreamBluray::Open - opening %s", root.c_str()); | ||
if( title == 100000 ) | ||
CLog::Log(LOGDEBUG, "CDVDInputStreamBluray::Open - opening %s, %s", root.c_str(), filename.c_str()); | ||
else | ||
CLog::Log(LOGDEBUG, "CDVDInputStreamBluray::Open - opening %s, %s title=%d", root.c_str(), filename.c_str(), title); | ||
|
||
m_bd = m_dll->bd_open(root.c_str(), NULL); | ||
|
||
if(!m_bd) | ||
|
@@ -366,7 +382,10 @@ bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content | |
if(filename.Equals("index.bdmv")) | ||
{ | ||
m_navmode = false; | ||
m_title = GetTitleLongest(); | ||
if( title >= 100000 || title == 0 ) | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
dragonflight
Author
Owner
|
||
m_title = GetTitleLongest(); | ||
else | ||
m_title = m_dll->bd_get_playlist_info(m_bd, abs(title), 0); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
dragonflight
Author
Owner
|
||
} | ||
else if(URIUtils::GetExtension(filename).Equals(".mpls")) | ||
{ | ||
|
Use CURL to parse the URL, then just grab out the URL option directly?