aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-11-29 09:52:58 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-11-29 09:52:58 +0100
commit356d37043cbe1265a83c985e2cef7185daf74cb9 (patch)
tree82dee4351749665f41a78b4880f9abafc6c73ffa /lib
parent070b9256befecb72bbdc7052aef61e5f2f0b9515 (diff)
downloadenigma2-356d37043cbe1265a83c985e2cef7185daf74cb9.tar.gz
enigma2-356d37043cbe1265a83c985e2cef7185daf74cb9.zip
fixes PMT pid searching for TS files without meta file and sid in servicref (this fixes SID not found in PAT messages)
refs #124
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/pmt.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index d44766f1..cb80b00f 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -742,13 +742,12 @@ int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_dem
{
if (!ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
{
- eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;
+ bool b = source || !tstools.openFile(ref.path.c_str(), 1);
+ eWarning("no .meta file found, trying to find PMT pid");
if (source)
- tstools.setSource(source, streaminfo_file ? streaminfo_file : ref.path.c_str());
- else if (tstools.openFile(ref.path.c_str()))
- eWarning("failed to open file");
- else
+ tstools.setSource(source, NULL);
+ if (b)
{
int service_id, pmt_pid;
if (!tstools.findPMT(pmt_pid, service_id))
@@ -758,6 +757,8 @@ int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_dem
m_pmt_pid = pmt_pid;
}
}
+ else
+ eWarning("no valid source to find PMT pid!");
}
eDebug("alloc PVR");
/* allocate PVR */