clear non processed subtitles on skip forward / backward
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 17 Sep 2007 10:54:24 +0000 (10:54 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 17 Sep 2007 10:54:24 +0000 (10:54 +0000)
lib/dvb/subtitle.cpp
lib/dvb/teletext.cpp
lib/gui/esubtitle.cpp
lib/service/servicedvb.cpp

index b0c90222996ef71eb76b7d6a948ef4f45cd6caba..7ae49db5f1f91fa31ac627a60f57b221b9a40a50 100644 (file)
@@ -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()
index d91e6ee052e5872ba5fbfc55836dbc194f961a1a..77e1dc29ff8c8673432195d60a175c3a335ed2a0 100644 (file)
@@ -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; 
index 6e8d48e9f5cb46fccd1d9d3a084a0b49f7e48676..aef09a2e54e849e5c4de886a5fb881022f911b48 100644 (file)
@@ -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;
index 6b6e2e686b02acc0985dce001db31507ad8563c1..b97104a1c669a82eb74ae3b84349b03a51ff47dd 100644 (file)
@@ -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;
 }