]> git.sesse.net Git - vlc/blobdiff - modules/codec/svcdsub.c
Changed subpicture_region_t->picture into a picture_t *
[vlc] / modules / codec / svcdsub.c
index 4762b3c8ec39fd3f9287e3536addfcf9718bba22..5a1ecbfb8ee42400176af1b3e8718271ba7b16bd 100644 (file)
@@ -473,10 +473,6 @@ static subpicture_t *DecodePacket( decoder_t *p_dec, block_t *p_data )
     p_spu = p_dec->pf_spu_buffer_new( p_dec );
     if( !p_spu ) return NULL;
 
-    p_spu->b_pausable = true;
-
-    p_spu->i_x = p_sys->i_x_start;
-    p_spu->i_y = p_sys->i_y_start;
     p_spu->i_start = p_data->i_pts;
     p_spu->i_stop  = p_data->i_pts + p_sys->i_duration;
     p_spu->b_ephemer = true;
@@ -508,7 +504,8 @@ static subpicture_t *DecodePacket( decoder_t *p_dec, block_t *p_data )
     p_region->fmt.i_aspect = VOUT_ASPECT_FACTOR;
  
     p_spu->p_region = p_region;
-    p_region->i_x = p_region->i_y = 0;
+    p_region->i_x = p_sys->i_x_start;
+    p_region->i_y = p_sys->i_y_start;
 
     /* Build palette */
     fmt.p_palette->i_entries = 4;
@@ -547,7 +544,7 @@ static void SVCDSubRenderImage( decoder_t *p_dec, block_t *p_data,
                 subpicture_region_t *p_region )
 {
     decoder_sys_t *p_sys = p_dec->p_sys;
-    uint8_t *p_dest = p_region->picture.Y_PIXELS;
+    uint8_t *p_dest = p_region->p_picture->Y_PIXELS;
     int i_field;            /* The subtitles are interlaced */
     int i_row, i_column;    /* scanline row/column number */
     uint8_t i_color, i_count;
@@ -566,13 +563,13 @@ static void SVCDSubRenderImage( decoder_t *p_dec, block_t *p_data,
                 if( i_color == 0 && (i_count = bs_read( &bs, 2 )) )
                 {
                     i_count = __MIN( i_count, p_sys->i_width - i_column );
-                    memset( &p_dest[i_row * p_region->picture.Y_PITCH +
+                    memset( &p_dest[i_row * p_region->p_picture->Y_PITCH +
                                     i_column], 0, i_count + 1 );
                     i_column += i_count;
                     continue;
                 }
 
-                p_dest[i_row * p_region->picture.Y_PITCH + i_column] = i_color;
+                p_dest[i_row * p_region->p_picture->Y_PITCH + i_column] = i_color;
             }
 
             bs_align( &bs );