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);
+ ePtr<iTsSource> s;
+ 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<iTsSource> &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service)
{
RESULT res=0;
m_reference = ref;
{
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
{
{
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());
}