if (w == sCAIDs)
return resIsPyObject;
- if (m_service_handler.getProgramInfo(program))
+ eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
+
+ if (h.getProgramInfo(program))
return -1;
switch (w)
int eDVBServicePlay::getNumberOfTracks()
{
eDVBServicePMTHandler::program program;
- if (m_service_handler.getProgramInfo(program))
+ eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
+ if (h.getProgramInfo(program))
return 0;
return program.audioStreams.size();
}
RESULT eDVBServicePlay::getTrackInfo(struct iAudioTrackInfo &info, unsigned int i)
{
eDVBServicePMTHandler::program program;
+ eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
- if (m_service_handler.getProgramInfo(program))
+ if (h.getProgramInfo(program))
return -1;
if (i >= program.audioStreams.size())
int eDVBServicePlay::selectAudioStream(int i)
{
eDVBServicePMTHandler::program program;
+ eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
- if (m_service_handler.getProgramInfo(program))
+ if (h.getProgramInfo(program))
return -1;
if ((unsigned int)i >= program.audioStreams.size())
return;
eDVBServicePMTHandler::program program;
- if (m_service_handler.getProgramInfo(program))
+ eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
+
+ if (h.getProgramInfo(program))
return;
else
{
m_decode_demux = 0;
m_teletext_parser = 0;
m_radiotext_parser = 0;
+ m_subtitle_parser = 0;
+ m_new_dvb_subtitle_region_connection = 0;
m_new_subtitle_page_connection = 0;
m_radiotext_updated_connection = 0;
-
+
/* free the timeshift service handler, we need the resources */
m_service_handler_timeshift.free();
m_timeshift_active = 0;
m_decoder = 0;
m_teletext_parser = 0;
m_radiotext_parser = 0;
+ m_subtitle_parser = 0;
m_new_subtitle_page_connection = 0;
+ m_new_dvb_subtitle_region_connection = 0;
m_radiotext_updated_connection = 0;
m_timeshift_active = 1;
m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
#endif
+ m_subtitle_parser = new eDVBSubtitleParser(m_decode_demux);
+ m_subtitle_parser->connectNewRegion(slot(*this, &eDVBServicePlay::newDVBSubtitleRegion), m_new_dvb_subtitle_region_connection);
}
if (m_decoder)
if (m_teletext_parser)
m_teletext_parser->start(tpid);
+// if (m_subtitle_parser && program.subtitleStreams.size() > 0)
+// m_subtitle_parser->start(program.subtitleStreams[0].pid);
+
if (!m_is_primary)
m_decoder->setTrickmode(1);
}
}
+void eDVBServicePlay::newDVBSubtitleRegion(const eDVBSubtitleRegion &p)
+{
+ eDebug("new dvb subtitle region");
+}
+
+void eDVBServicePlay::checkDvbSubtitleTiming()
+{
+ eDebug("check dvb subtitle timing");
+}
+
int eDVBServicePlay::getAC3Delay()
{
if (m_dvb_service)