lib/dvb/pmt.cpp: migrate PMT pid search code to new iDataSource stuff
[enigma2.git] / lib / dvb / pmt.cpp
index ba5a3ade3a147a8459eeb37b379d1fccc3ccad3b..7b7996626d43c328cc7532f3154ff3d3ee68832d 100644 (file)
@@ -676,10 +676,10 @@ void eDVBServicePMTHandler::SDTScanEvent(int event)
 int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
 {
        ePtr<iDataSource> s;
 int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
 {
        ePtr<iDataSource> s;
-       return tuneExt(ref, use_decode_demux, s, cue, simulate, service);
+       return tuneExt(ref, use_decode_demux, s, NULL, cue, simulate, service);
 }
 
 }
 
-int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &source, eCueSheet *cue, bool simulate, eDVBService *service)
+int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service)
 {
        RESULT res=0;
        m_reference = ref;
 {
        RESULT res=0;
        m_reference = ref;
@@ -710,7 +710,9 @@ int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_dem
                {
                        eWarning("no .meta file found, trying to find PMT pid");
                        eDVBTSTools tstools;
                {
                        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
                        {
                                eWarning("failed to open file");
                        else
                        {
@@ -764,7 +766,7 @@ int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_dem
                {
                        m_pvr_channel->setCueSheet(cue);
                        if (source)
                {
                        m_pvr_channel->setCueSheet(cue);
                        if (source)
-                               m_pvr_channel->playSource(source);
+                               m_pvr_channel->playSource(source, streaminfo_file);
                        else
                                m_pvr_channel->playFile(ref.path.c_str());
                }
                        else
                                m_pvr_channel->playFile(ref.path.c_str());
                }