RESULT eStaticServiceDVBPVRInformation::getName(const eServiceReference &ref, std::string &name)
{
ASSERT(ref == m_ref);
- if (m_parser.m_name.size())
+ if (!ref.name.empty())
+ name = ref.name;
+ else if (!m_parser.m_name.empty())
name = m_parser.m_name;
else
{
if (m_skipmode < 0)
m_cue->seekTo(0, -1000);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, r.path.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
m_service_handler_timeshift.free();
resetTimeshift(1);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file_next.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
m_event(this, evStart);
m_first_program_info = 1;
- ePtr<iDataSource> source = createDataSource(service);
+ ePtr<iTsSource> source = createTsSource(service);
m_service_handler.tuneExt(service, m_is_pvr, source, service.path.c_str(), m_cue, false, m_dvb_service);
if (m_is_pvr)
{
eDVBServicePMTHandler::program program;
- if (w == sCAIDs)
+ if (w == sCAIDs || w == sCAIDPIDs)
return resIsPyObject;
eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
{
case sCAIDs:
return m_service_handler.getCaIds();
+ case sCAIDPIDs:
+ return m_service_handler.getCaIds(true);
case sTransponderData:
return eStaticServiceDVBInformation().getInfoObject(m_reference, w);
default:
m_timeshift_active = 0;
}
-ePtr<iDataSource> eDVBServicePlay::createDataSource(eServiceReferenceDVB &ref)
+ePtr<iTsSource> eDVBServicePlay::createTsSource(eServiceReferenceDVB &ref)
{
eRawFile *f = new eRawFile();
f->open(ref.path.c_str());
- return ePtr<iDataSource>(f);
+ return ePtr<iTsSource>(f);
}
void eDVBServicePlay::switchToTimeshift()
m_cue->seekTo(0, -1000);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
eDebug("eDVBServicePlay::switchToTimeshift, in pause mode now.");