}
}
+ h.resetCachedProgram();
+
return 0;
}
m_decoder->setTextPID(tpid);
+ m_teletext_parser->start(program.textPid);
+
if (!m_is_primary)
m_decoder->setTrickmode(1);
if (page > 0)
{
- eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
+/* eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
eDVBServicePMTHandler::program program;
if (h.getProgramInfo(program))
eDebug("getting program info failed.");
else
{
eDebug("start teletext on pid %04x, page %d", program.textPid, page);
- m_teletext_parser->start(program.textPid);
+ m_teletext_parser->start(program.textPid);*/
m_teletext_parser->setPage(page);
- }
+// }
}
else
{
int pid = -page;
- eDebug("start dvb subtitles on pid %04x", pid);
m_subtitle_parser->start(pid);
}
{
delete m_subtitle_widget;
m_subtitle_widget = 0;
+ if (m_subtitle_parser)
+ {
+ m_subtitle_parser->stop();
+ m_dvb_subtitle_pages.clear();
+ }
+ if (m_teletext_parser)
+ {
+ m_teletext_parser->setPage(-1);
+ m_subtitle_pages.clear();
+ }
return 0;
}
void eDVBServicePlay::checkSubtitleTiming()
{
// eDebug("checkSubtitleTiming");
+ if (!m_subtitle_widget)
+ return;
while (1)
{
enum { TELETEXT, DVB } type;