Last active
August 29, 2015 14:22
-
-
Save armando-basile/11b6c37a54b1e6eacf37 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 2bb3b2a57c0c5b44a0dbe37758041f6c00b73b77 Mon Sep 17 00:00:00 2001 | |
From: Rainer Hochecker <fernetmenta@online.de> | |
Date: Sun, 10 May 2015 19:51:43 +0200 | |
Subject: [PATCH] dvdplayer: add a method to avoid requeting HTTP Header | |
--- | |
xbmc/FileItem.h | 6 ++++++ | |
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxVobsub.cpp | 2 +- | |
xbmc/cores/dvdplayer/DVDFileInfo.cpp | 6 +++--- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp | 9 +++++++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.cpp | 4 +++- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h | 5 ++++- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.h | 2 +- | |
.../dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h | 2 +- | |
.../dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | 10 ++++++---- | |
.../cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h | 3 ++- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.h | 2 +- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h | 2 +- | |
xbmc/cores/dvdplayer/DVDPlayer.cpp | 4 ++-- | |
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleStream.cpp | 2 +- | |
xbmc/cores/paplayer/DVDPlayerCodec.cpp | 3 ++- | |
xbmc/storage/MediaManager.cpp | 2 +- | |
31 files changed, 65 insertions(+), 45 deletions(-) | |
diff --git a/xbmc/FileItem.h b/xbmc/FileItem.h | |
index 1e6f372..1e69813 100644 | |
--- a/xbmc/FileItem.h | |
+++ b/xbmc/FileItem.h | |
@@ -413,6 +413,12 @@ class CFileItem : | |
*/ | |
void FillInMimeType(bool lookup = true); | |
+ /*! | |
+ \brief Some sources do not support HTTP HEAD request to determine i.e. mime type | |
+ \return false if HEAD requests have to be avoided | |
+ */ | |
+ bool ContentLookup() { return true; }; | |
+ | |
/* general extra info about the contents of the item, not for display */ | |
void SetExtraInfo(const std::string& info) { m_extrainfo = info; }; | |
const std::string& GetExtraInfo() const { return m_extrainfo; }; | |
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxVobsub.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxVobsub.cpp | |
index c63e15d..0885dd1 100644 | |
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxVobsub.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxVobsub.cpp | |
@@ -62,7 +62,7 @@ bool CDVDDemuxVobsub::Open(const string& filename, int source, const string& sub | |
} | |
m_Input.reset(CDVDFactoryInputStream::CreateInputStream(NULL, vobsub, "")); | |
- if(!m_Input.get() || !m_Input->Open(vobsub.c_str(), "video/x-vobsub")) | |
+ if(!m_Input.get() || !m_Input->Open(vobsub.c_str(), "video/x-vobsub", false)) | |
return false; | |
m_Demuxer.reset(new CDVDDemuxFFmpeg()); | |
diff --git a/xbmc/cores/dvdplayer/DVDFileInfo.cpp b/xbmc/cores/dvdplayer/DVDFileInfo.cpp | |
index 8525e6b..1e1c361 100644 | |
--- a/xbmc/cores/dvdplayer/DVDFileInfo.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDFileInfo.cpp | |
@@ -64,7 +64,7 @@ bool CDVDFileInfo::GetFileDuration(const std::string &path, int& duration) | |
if (!input.get()) | |
return false; | |
- if (!input->Open(path.c_str(), "")) | |
+ if (!input->Open(path.c_str(), "", true)) | |
return false; | |
demux.reset(CDVDFactoryDemuxer::CreateDemuxer(input.get(), true)); | |
@@ -120,7 +120,7 @@ bool CDVDFileInfo::ExtractThumb(const std::string &strPath, | |
return false; | |
} | |
- if (!pInputStream->Open(strPath.c_str(), "")) | |
+ if (!pInputStream->Open(strPath.c_str(), "", true)) | |
{ | |
CLog::Log(LOGERROR, "InputStream: Error opening, %s", redactPath.c_str()); | |
if (pInputStream) | |
@@ -346,7 +346,7 @@ bool CDVDFileInfo::GetFileStreamDetails(CFileItem *pItem) | |
if (!pInputStream) | |
return false; | |
- if (pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) || !pInputStream->Open(playablePath.c_str(), "")) | |
+ if (pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) || !pInputStream->Open(playablePath.c_str(), "", true)) | |
{ | |
delete pInputStream; | |
return false; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp | |
index 3bf1016..11fe679 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp | |
@@ -40,10 +40,12 @@ | |
#include "utils/URIUtils.h" | |
-CDVDInputStream* CDVDFactoryInputStream::CreateInputStream(IDVDPlayer* pPlayer, const std::string& file, const std::string& content) | |
+CDVDInputStream* CDVDFactoryInputStream::CreateInputStream(IDVDPlayer* pPlayer, const std::string& file, const std::string& content, bool contentlookup) | |
{ | |
CFileItem item(file.c_str(), false); | |
+ item.SetMimeType(content); | |
+ | |
if(item.IsDiscImage()) | |
{ | |
#ifdef HAVE_LIBBLURAY | |
@@ -104,7 +106,10 @@ CDVDInputStream* CDVDFactoryInputStream::CreateInputStream(IDVDPlayer* pPlayer, | |
{ | |
if (item.IsType(".m3u8")) | |
return new CDVDInputStreamFFmpeg(); | |
- item.FillInMimeType(); | |
+ | |
+ if (contentlookup) | |
+ item.FillInMimeType(); | |
+ | |
if (item.GetMimeType() == "application/vnd.apple.mpegurl") | |
return new CDVDInputStreamFFmpeg(); | |
} | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h | |
index cd06264..0569995 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h | |
@@ -28,5 +28,5 @@ class IDVDPlayer; | |
class CDVDFactoryInputStream | |
{ | |
public: | |
- static CDVDInputStream* CreateInputStream(IDVDPlayer* pPlayer, const std::string& file, const std::string& content); | |
+ static CDVDInputStream* CreateInputStream(IDVDPlayer* pPlayer, const std::string& file, const std::string& content, bool contentlookup = true); | |
}; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.cpp | |
index 4b5a8da..f5ee389 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.cpp | |
@@ -24,13 +24,14 @@ | |
CDVDInputStream::CDVDInputStream(DVDStreamType streamType) | |
{ | |
m_streamType = streamType; | |
+ m_contentLookup = true; | |
} | |
CDVDInputStream::~CDVDInputStream() | |
{ | |
} | |
-bool CDVDInputStream::Open(const char* strFile, const std::string &content) | |
+bool CDVDInputStream::Open(const char* strFile, const std::string &content, bool contentLookup) | |
{ | |
CURL url(strFile); | |
@@ -41,6 +42,7 @@ bool CDVDInputStream::Open(const char* strFile, const std::string &content) | |
m_strFileName = url.Get(); | |
m_content = content; | |
+ m_contentLookup = contentLookup; | |
return true; | |
} | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h | |
index e629885..08375c5 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h | |
@@ -149,7 +149,7 @@ class CDVDInputStream | |
CDVDInputStream(DVDStreamType m_streamType); | |
virtual ~CDVDInputStream(); | |
- virtual bool Open(const char* strFileName, const std::string& content); | |
+ virtual bool Open(const char* strFileName, const std::string& content, bool contentLookup); | |
virtual void Close() = 0; | |
virtual int Read(uint8_t* buf, int buf_size) = 0; | |
virtual int64_t Seek(int64_t offset, int whence) = 0; | |
@@ -180,6 +180,8 @@ class CDVDInputStream | |
void SetFileItem(const CFileItem& item); | |
+ bool ContentLookup() { return m_contentLookup; } | |
+ | |
protected: | |
DVDStreamType m_streamType; | |
std::string m_strFileName; | |
@@ -187,4 +189,5 @@ class CDVDInputStream | |
BitstreamStats m_stats; | |
std::string m_content; | |
CFileItem m_item; | |
+ bool m_contentLookup; | |
}; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp | |
index aae94bb..c8ed36a 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp | |
@@ -253,7 +253,7 @@ BLURAY_TITLE_INFO* CDVDInputStreamBluray::GetTitleFile(const std::string& filena | |
} | |
-bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamBluray::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
if(m_player == NULL) | |
return false; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h | |
index 1107ed2..f05c406 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h | |
@@ -48,7 +48,7 @@ class CDVDInputStreamBluray | |
public: | |
CDVDInputStreamBluray(IDVDPlayer* player); | |
virtual ~CDVDInputStreamBluray(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp | |
index 936bbb2..5f6bfca 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp | |
@@ -48,7 +48,7 @@ bool CDVDInputStreamFFmpeg::IsEOF() | |
return false; | |
} | |
-bool CDVDInputStreamFFmpeg::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamFFmpeg::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
CFileItem item(strFile, false); | |
std::string selected; | |
@@ -66,7 +66,7 @@ bool CDVDInputStreamFFmpeg::Open(const char* strFile, const std::string& content | |
} | |
} | |
- if (!CDVDInputStream::Open(strFile, content)) | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) | |
return false; | |
m_can_pause = true; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h | |
index 2097b0e..0bd2792 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h | |
@@ -29,7 +29,7 @@ class CDVDInputStreamFFmpeg | |
public: | |
CDVDInputStreamFFmpeg(); | |
virtual ~CDVDInputStreamFFmpeg(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp | |
index 9edd866..5d57f76 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp | |
@@ -43,9 +43,9 @@ bool CDVDInputStreamFile::IsEOF() | |
return !m_pFile || m_eof; | |
} | |
-bool CDVDInputStreamFile::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamFile::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(strFile, content)) | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) | |
return false; | |
m_pFile = new CFile(); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.h | |
index 24b38eb..a44fe8f 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.h | |
@@ -27,7 +27,7 @@ class CDVDInputStreamFile : public CDVDInputStream | |
public: | |
CDVDInputStreamFile(); | |
virtual ~CDVDInputStreamFile(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp | |
@@ -83,9 +83,9 @@ | |
Close(); | |
} | |
-bool CDVDInputStreamHTSP::Open(const char* file, const std::string& content) | |
+bool CDVDInputStreamHTSP::Open(const char* file, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(file, content)) | |
+ if (!CDVDInputStream::Open(file, content, contentLookup)) | |
return false; | |
CURL url(file); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.h | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.h | |
@@ -30,7 +30,7 @@ | |
public: | |
CDVDInputStreamHTSP(); | |
virtual ~CDVDInputStreamHTSP(); | |
- virtual bool Open(const char* file, const std::string &content); | |
+ virtual bool Open(const char* file, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence) { return -1; } | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.cpp | |
index 88cf3a9..5165859 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.cpp | |
@@ -50,9 +50,9 @@ bool CDVDInputStreamHttp::IsEOF() | |
return true; | |
} | |
-bool CDVDInputStreamHttp::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamHttp::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(strFile, content)) return false; | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) return false; | |
m_pFile = new CCurlFile(); | |
if (!m_pFile) return false; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.h | |
index f8ed02e..ce623e7 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHttp.h | |
@@ -33,7 +33,7 @@ class CDVDInputStreamHttp : public CDVDInputStream | |
public: | |
CDVDInputStreamHttp(); | |
virtual ~CDVDInputStreamHttp(); | |
- virtual bool Open(const char* strFile, const std::string& content); | |
+ virtual bool Open(const char* strFile, const std::string& content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.cpp | |
index 2c50906..6cf84bc 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.cpp | |
@@ -40,9 +40,9 @@ bool CDVDInputStreamMemory::IsEOF() | |
return false; | |
} | |
-bool CDVDInputStreamMemory::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamMemory::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(strFile, content)) return false; | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) return false; | |
return true; | |
} | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.h | |
index d34f48f..4c4dc57 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMemory.h | |
@@ -27,7 +27,7 @@ class CDVDInputStreamMemory : public CDVDInputStream | |
public: | |
CDVDInputStreamMemory(); | |
virtual ~CDVDInputStreamMemory(); | |
- virtual bool Open(const char* strFile, const std::string& content); | |
+ virtual bool Open(const char* strFile, const std::string& content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | |
index 3af0b9c..6e0d386 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | |
@@ -63,9 +63,9 @@ CDVDInputStreamNavigator::~CDVDInputStreamNavigator() | |
Close(); | |
} | |
-bool CDVDInputStreamNavigator::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamNavigator::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(strFile, "video/x-dvd-mpeg")) | |
+ if (!CDVDInputStream::Open(strFile, "video/x-dvd-mpeg", contentLookup)) | |
return false; | |
// load libdvdnav.dll | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h | |
index cc23de2..42cd92f 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h | |
@@ -77,7 +77,7 @@ class CDVDInputStreamNavigator | |
CDVDInputStreamNavigator(IDVDPlayer* player); | |
virtual ~CDVDInputStreamNavigator(); | |
- virtual bool Open(const char* strFile, const std::string& content); | |
+ virtual bool Open(const char* strFile, const std::string& content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | |
index a1a4e56..741068f 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | |
@@ -47,6 +47,7 @@ CDVDInputStreamPVRManager::CDVDInputStreamPVRManager(IDVDPlayer* pPlayer) : CDVD | |
m_pOtherStream = NULL; | |
m_eof = true; | |
m_ScanTimeout.Set(0); | |
+ m_contentLookup = true; | |
} | |
/************************************************************************ | |
@@ -74,7 +75,7 @@ bool CDVDInputStreamPVRManager::IsEOF() | |
return !m_pFile || m_eof; | |
} | |
-bool CDVDInputStreamPVRManager::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamPVRManager::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
/* Open PVR File for both cases, to have access to ILiveTVInterface and | |
* IRecordable | |
@@ -84,7 +85,7 @@ bool CDVDInputStreamPVRManager::Open(const char* strFile, const std::string& con | |
m_pRecordable = ((CPVRFile*)m_pFile)->GetRecordable(); | |
CURL url(strFile); | |
- if (!CDVDInputStream::Open(strFile, content)) return false; | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) return false; | |
if (!m_pFile->Open(url)) | |
{ | |
delete m_pFile; | |
@@ -117,7 +118,7 @@ bool CDVDInputStreamPVRManager::Open(const char* strFile, const std::string& con | |
else | |
m_pOtherStream->SetFileItem(m_item); | |
- if (!m_pOtherStream->Open(transFile.c_str(), content)) | |
+ if (!m_pOtherStream->Open(transFile.c_str(), content, contentLookup)) | |
{ | |
CLog::Log(LOGERROR, "CDVDInputStreamPVRManager::Open - error opening [%s]", transFile.c_str()); | |
delete m_pFile; | |
@@ -132,6 +133,7 @@ bool CDVDInputStreamPVRManager::Open(const char* strFile, const std::string& con | |
ResetScanTimeout((unsigned int) CSettings::Get().GetInt("pvrplayback.scantime") * 1000); | |
m_content = content; | |
+ m_contentLookup = contentLookup; | |
CLog::Log(LOGDEBUG, "CDVDInputStreamPVRManager::Open - stream opened: %s", transFile.c_str()); | |
return true; | |
@@ -373,7 +375,7 @@ bool CDVDInputStreamPVRManager::CloseAndOpen(const char* strFile) | |
{ | |
Close(); | |
- if (Open(strFile, m_content)) | |
+ if (Open(strFile, m_content, m_contentLookup)) | |
{ | |
return true; | |
} | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h | |
index 56a3b11..c00396a 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h | |
@@ -45,7 +45,7 @@ class CDVDInputStreamPVRManager | |
public: | |
CDVDInputStreamPVRManager(IDVDPlayer* pPlayer); | |
virtual ~CDVDInputStreamPVRManager(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
@@ -100,6 +100,7 @@ class CDVDInputStreamPVRManager | |
bool m_eof; | |
std::string m_strContent; | |
XbmcThreads::EndTime m_ScanTimeout; | |
+ bool m_contentLookup; | |
}; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | |
index 5d45448..37c3870 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | |
@@ -135,7 +135,7 @@ static const struct { | |
{ NULL } | |
}; | |
-bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
if (m_sStreamPlaying) | |
{ | |
@@ -143,7 +143,7 @@ bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content) | |
m_sStreamPlaying = NULL; | |
} | |
- if (!m_rtmp || !CDVDInputStream::Open(strFile, "video/x-flv")) | |
+ if (!m_rtmp || !CDVDInputStream::Open(strFile, "video/x-flv", contentLookup)) | |
return false; | |
CSingleLock lock(m_RTMPSection); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h | |
index dd00e5a..6f2e590b 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h | |
@@ -32,7 +32,7 @@ class CDVDInputStreamRTMP | |
public: | |
CDVDInputStreamRTMP(); | |
virtual ~CDVDInputStreamRTMP(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp | |
index fbe24b8..094a82a 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp | |
@@ -46,9 +46,9 @@ bool CDVDInputStreamStack::IsEOF() | |
return m_eof; | |
} | |
-bool CDVDInputStreamStack::Open(const char* path, const std::string& content) | |
+bool CDVDInputStreamStack::Open(const char* path, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(path, content)) | |
+ if (!CDVDInputStream::Open(path, content, contentLookup)) | |
return false; | |
CStackDirectory dir; | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.h | |
index de35a82..1bcb861 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.h | |
@@ -29,7 +29,7 @@ class CDVDInputStreamStack : public CDVDInputStream | |
CDVDInputStreamStack(); | |
virtual ~CDVDInputStreamStack(); | |
- virtual bool Open(const char* path, const std::string &content); | |
+ virtual bool Open(const char* path, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.cpp | |
index 98e74d2..f7b0021 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.cpp | |
@@ -45,9 +45,9 @@ bool CDVDInputStreamTV::IsEOF() | |
return !m_pFile || m_eof; | |
} | |
-bool CDVDInputStreamTV::Open(const char* strFile, const std::string& content) | |
+bool CDVDInputStreamTV::Open(const char* strFile, const std::string& content, bool contentLookup) | |
{ | |
- if (!CDVDInputStream::Open(strFile, content)) return false; | |
+ if (!CDVDInputStream::Open(strFile, content, contentLookup)) return false; | |
if(strncmp(strFile, "vtp://", 6) == 0) | |
{ | |
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h | |
index 7218fff..b94fad5 100644 | |
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h | |
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h | |
@@ -36,7 +36,7 @@ class CDVDInputStreamTV | |
public: | |
CDVDInputStreamTV(); | |
virtual ~CDVDInputStreamTV(); | |
- virtual bool Open(const char* strFile, const std::string &content); | |
+ virtual bool Open(const char* strFile, const std::string &content, bool contentLookup); | |
virtual void Close(); | |
virtual int Read(uint8_t* buf, int buf_size); | |
virtual int64_t Seek(int64_t offset, int whence); | |
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp | |
index fd21bc2..721a03f 100644 | |
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp | |
@@ -724,7 +724,7 @@ bool CDVDPlayer::OpenInputStream() | |
m_filename = g_mediaManager.TranslateDevicePath(""); | |
} | |
- m_pInputStream = CDVDFactoryInputStream::CreateInputStream(this, m_filename, m_mimetype); | |
+ m_pInputStream = CDVDFactoryInputStream::CreateInputStream(this, m_filename, m_mimetype, m_item.ContentLookup()); | |
if(m_pInputStream == NULL) | |
{ | |
CLog::Log(LOGERROR, "CDVDPlayer::OpenInputStream - unable to create input stream for [%s]", m_filename.c_str()); | |
@@ -733,7 +733,7 @@ bool CDVDPlayer::OpenInputStream() | |
else | |
m_pInputStream->SetFileItem(m_item); | |
- if (!m_pInputStream->Open(m_filename.c_str(), m_mimetype)) | |
+ if (!m_pInputStream->Open(m_filename.c_str(), m_mimetype, m_item.ContentLookup())) | |
{ | |
CLog::Log(LOGERROR, "CDVDPlayer::OpenInputStream - error opening [%s]", m_filename.c_str()); | |
return false; | |
diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleStream.cpp b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleStream.cpp | |
index 5218d01..6f3918f 100644 | |
--- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleStream.cpp | |
+++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleStream.cpp | |
@@ -41,7 +41,7 @@ bool CDVDSubtitleStream::Open(const string& strFile) | |
{ | |
CDVDInputStream* pInputStream; | |
pInputStream = CDVDFactoryInputStream::CreateInputStream(NULL, strFile, ""); | |
- if (pInputStream && pInputStream->Open(strFile.c_str(), "")) | |
+ if (pInputStream && pInputStream->Open(strFile.c_str(), "", false)) | |
{ | |
static const size_t chunksize = 64 * 1024; | |
auto_buffer buf; | |
diff --git a/xbmc/cores/paplayer/DVDPlayerCodec.cpp b/xbmc/cores/paplayer/DVDPlayerCodec.cpp | |
index 4f9fca2..9f2d714 100644 | |
--- a/xbmc/cores/paplayer/DVDPlayerCodec.cpp | |
+++ b/xbmc/cores/paplayer/DVDPlayerCodec.cpp | |
@@ -87,7 +87,8 @@ bool DVDPlayerCodec::Init(const std::string &strFile, unsigned int filecache) | |
return false; | |
} | |
- if (!m_pInputStream->Open(strFileToOpen.c_str(), m_strContentType)) | |
+ // TODO: XXX | |
+ if (!m_pInputStream->Open(strFileToOpen.c_str(), m_strContentType, true)) | |
{ | |
CLog::Log(LOGERROR, "%s: Error opening file %s", __FUNCTION__, strFileToOpen.c_str()); | |
if (m_pInputStream) | |
diff --git a/xbmc/storage/MediaManager.cpp b/xbmc/storage/MediaManager.cpp | |
index bfcb17e..2fe8c3c 100644 | |
--- a/xbmc/storage/MediaManager.cpp | |
+++ b/xbmc/storage/MediaManager.cpp | |
@@ -542,7 +542,7 @@ std::string CMediaManager::GetDiskUniqueId(const std::string& devicePath) | |
CDVDInputStreamNavigator dvdNavigator(NULL); | |
- dvdNavigator.Open(pathVideoTS.c_str(), ""); | |
+ dvdNavigator.Open(pathVideoTS.c_str(), "", true); | |
std::string labelString; | |
dvdNavigator.GetDVDTitleString(labelString); | |
std::string serialString; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment