From: Andreas Monzner Date: Mon, 17 Sep 2007 10:54:24 +0000 (+0000) Subject: clear non processed subtitles on skip forward / backward X-Git-Tag: 2.6.0~1902 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/7e3fc622d3a9dfcec4009d3fff223c6303e497ab clear non processed subtitles on skip forward / backward --- diff --git a/lib/dvb/subtitle.cpp b/lib/dvb/subtitle.cpp index b0c90222..7ae49db5 100644 --- a/lib/dvb/subtitle.cpp +++ b/lib/dvb/subtitle.cpp @@ -748,10 +748,10 @@ int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment) void eDVBSubtitleParser::subtitle_process_pes(__u8 *pkt, int len) { - //eDebugNoNewLine("subtitle_process_pes"); + eDebugNoNewLine("subtitle_process_pes"); if (!extract_pts(m_show_time, pkt)) { - //eDebug(" %lld", m_show_time); + eDebug(" %lld", m_show_time); pkt += 6; len -= 6; // skip PES header pkt++; len--; @@ -786,8 +786,8 @@ void eDVBSubtitleParser::subtitle_process_pes(__u8 *pkt, int len) if (len && *pkt != 0xFF) eDebug("strange data at the end"); } - //else - //eDebug("\ndvb subtitle packet without PTS.. ignore!!"); + else + eDebug("\ndvb subtitle packet without PTS.. ignore!!"); } void eDVBSubtitleParser::subtitle_redraw_all() diff --git a/lib/dvb/teletext.cpp b/lib/dvb/teletext.cpp index d91e6ee0..77e1dc29 100644 --- a/lib/dvb/teletext.cpp +++ b/lib/dvb/teletext.cpp @@ -255,6 +255,7 @@ void eDVBTeletextParser::processPESPacket(__u8 *pkt, int len) /* page on the same magazine? end current page. */ if ((serial_mode || M == m_page_M) && m_page_open) { + eDebug("Page End %d %lld", !have_pts, pts); handlePageEnd(have_pts, pts); m_page_open = 0; } @@ -272,6 +273,7 @@ void eDVBTeletextParser::processPESPacket(__u8 *pkt, int len) /* correct page on correct magazine? open page. */ if (M == m_page_M && X == m_page_X) { + eDebug("Page Start %d %lld", !have_pts, pts); handlePageStart(); m_subtitle_page.m_C = C; m_subtitle_page.m_Y = Y; diff --git a/lib/gui/esubtitle.cpp b/lib/gui/esubtitle.cpp index 6e8d48e9..aef09a2e 100644 --- a/lib/gui/esubtitle.cpp +++ b/lib/gui/esubtitle.cpp @@ -52,13 +52,13 @@ void eSubtitleWidget::setPage(const eDVBTeletextSubtitlePage &p) void eSubtitleWidget::setPage(const eDVBSubtitlePage &p) { -// eDebug("setPage"); + eDebug("setPage"); m_dvb_page = p; invalidate(m_visible_region); // invalidate old visible regions m_visible_region.rects.clear(); for (std::list::iterator it(m_dvb_page.m_regions.begin()); it != m_dvb_page.m_regions.end(); ++it) { -// eDebug("add %d %d %d %d", it->m_position.x(), it->m_position.y(), it->m_pixmap->size().width(), it->m_pixmap->size().height()); + eDebug("add %d %d %d %d", it->m_position.x(), it->m_position.y(), it->m_pixmap->size().width(), it->m_pixmap->size().height()); m_visible_region.rects.push_back(eRect(it->m_position, it->m_pixmap->size())); } m_dvb_page_ok = 1; diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 6b6e2e68..b97104a1 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -1345,6 +1345,9 @@ RESULT eDVBServicePlay::seekTo(pts_t to) return -1; m_cue->seekTo(0, to); + m_dvb_subtitle_pages.clear(); + m_subtitle_pages.clear(); + return 0; } @@ -1372,6 +1375,8 @@ RESULT eDVBServicePlay::seekRelative(int direction, pts_t to) return 0; m_cue->seekTo(mode, to); + m_dvb_subtitle_pages.clear(); + m_subtitle_pages.clear(); return 0; }