}
}
+ page->state = page_state;
+
//eDebug("page updated: old: %d, new: %d", page->page_version_number, page_version_number);
// when acquisition point or mode change: remove all displayed pages.
if ((page_state == 1) || (page_state == 2))
{
subtitle_region *p = page->regions->next;
//eDebug("delete region %d", page->regions->region_id);
+ while(page->regions->region_objects)
+ {
+ //eDebug("delete region object");
+ subtitle_region_object *ob = page->regions->region_objects->next;
+ delete page->regions->region_objects;
+ page->regions->region_objects = ob;
+ }
delete page->regions;
page->regions = p;
}
else if (region->region_version_number != region_version_number)
{
subtitle_region_object *objects = region->region_objects;
+ //eDebug("unequal version %p %p", objects, objects?objects->next:objects);
while (objects)
{
subtitle_region_object *n = objects->next;
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--;
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()
subtitle_page *page = m_pages;
while(page)
{
- subtitle_redraw(page->page_id);
+ if (page->state != 0)
+ subtitle_redraw(page->page_id);
page = page->next;
}
#else