X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/26e11cd67e0bbfebd41b860a008f240d3d1b3052..3698155ca276e4ea2a39ac00a29cc6cb241c28e6:/lib/dvb/pmt.cpp diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index be4fb170..ca56141b 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -701,6 +701,12 @@ void eDVBServicePMTHandler::SDTScanEvent(int event) } int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service) +{ + ePtr s; + return tuneExt(ref, use_decode_demux, s, NULL, cue, simulate, service); +} + +int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service) { RESULT res=0; m_reference = ref; @@ -731,7 +737,9 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, { eWarning("no .meta file found, trying to find PMT pid"); eDVBTSTools tstools; - if (tstools.openFile(ref.path.c_str())) + 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 { @@ -784,7 +792,10 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, if (m_pvr_channel) { m_pvr_channel->setCueSheet(cue); - m_pvr_channel->playFile(ref.path.c_str()); + if (source) + m_pvr_channel->playSource(source, streaminfo_file); + else + m_pvr_channel->playFile(ref.path.c_str()); } }