subtitle.cpp: return correct size of consumed bytes
[vuplus_dvbapp] / lib / dvb / subtitle.cpp
index b6c5b71..3787ab1 100644 (file)
@@ -243,17 +243,17 @@ int eDVBSubtitleParser::subtitle_process_pixel_data(subtitle_page *page, int obj
                bitstream_init(&bit, data, 4);
                for ( int i=0; i < 4; ++i )
                        bitstream_get(&bit);
-               break;
+               return 2 + 1;
        case 0x21:  // ignore 2 -> 8bit map table
                bitstream_init(&bit, data, 8);
                for ( int i=0; i < 4; ++i )
                        bitstream_get(&bit);
-               break;
+               return 4 + 1;
        case 0x22:  // ignore 4 -> 8bit map table
                bitstream_init(&bit, data, 8);
                for ( int i=0; i < 16; ++i )
                        bitstream_get(&bit);
-               break;
+               return 16 + 1;
        case 0xF0:
                subtitle_process_line(page, object_id, *linenr, line, *linep);
 /*             {
@@ -491,6 +491,7 @@ int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment)
                processed_length += 2;
 
                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;