aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-09-17 10:54:24 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-09-17 10:54:24 +0000
commit7e3fc622d3a9dfcec4009d3fff223c6303e497ab (patch)
treefe61509c3a0d654df10dbfd3df880b2007cb9862 /lib
parent659560951dce9e327d7ec9dd220138b0c8145b88 (diff)
downloadenigma2-7e3fc622d3a9dfcec4009d3fff223c6303e497ab.tar.gz
enigma2-7e3fc622d3a9dfcec4009d3fff223c6303e497ab.zip
clear non processed subtitles on skip forward / backward
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/subtitle.cpp8
-rw-r--r--lib/dvb/teletext.cpp2
-rw-r--r--lib/gui/esubtitle.cpp4
-rw-r--r--lib/service/servicedvb.cpp5
4 files changed, 13 insertions, 6 deletions
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<eDVBSubtitleRegion>::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;
}