git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "mediaplayer: allow playback of flv files"
[enigma2.git]
/
lib
/
dvb
/
subtitle.cpp
diff --git
a/lib/dvb/subtitle.cpp
b/lib/dvb/subtitle.cpp
index f4b5b7e415f23dbbafc81fdb90bc7cdf7d9b2be2..87dadba5e232b6776008df7ff3a715b5dcaec2b4 100644
(file)
--- a/
lib/dvb/subtitle.cpp
+++ b/
lib/dvb/subtitle.cpp
@@
-81,7
+81,7
@@
void eDVBSubtitleParser::subtitle_process_line(subtitle_page *page, int object_i
}
// //eDebug("inserting %d bytes (into region %d)", len, region->region_id);
// eDebug("put data to region_buffer %p", &(*region->region_buffer));
}
// //eDebug("inserting %d bytes (into region %d)", len, region->region_id);
// eDebug("put data to region_buffer %p", &(*region->region_buffer));
- memcpy((__u8*)region->region_buffer->surface->data + region->region_
width
* y + x, data, len);
+ memcpy((__u8*)region->region_buffer->surface->data + region->region_
buffer->surface->stride
* y + x, data, len);
}
object = object->next;
}
}
object = object->next;
}
@@
-345,6
+345,8
@@
int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment)
}
}
}
}
+ 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))
//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))
@@
-488,7
+490,8
@@
int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment)
region->region_height |= *segment++;
processed_length += 2;
region->region_height |= *segment++;
processed_length += 2;
- region->region_buffer = new gPixmap(eSize(region->region_width, region->region_height), 8);
+ region->region_buffer = new gPixmap(eSize(region->region_width, region->region_height), 8, 1);
+ memset(region->region_buffer->surface->data, 0, region->region_height * region->region_buffer->surface->stride);
//eDebug("new region_buffer %p", &(*region->region_buffer));
int region_level_of_compatibility, region_depth;
//eDebug("new region_buffer %p", &(*region->region_buffer));
int region_level_of_compatibility, region_depth;
@@
-804,7
+807,8
@@
void eDVBSubtitleParser::subtitle_redraw_all()
subtitle_page *page = m_pages;
while(page)
{
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
page = page->next;
}
#else