]> git.sesse.net Git - vlc/blobdiff - modules/codec/libmpeg2.c
zvbi: fix RGYB key values.
[vlc] / modules / codec / libmpeg2.c
index f0886380c8915e24e06a076858744ecc2b763686..149ae58f8c56061d4fa10e53e2fbd0702e519735 100644 (file)
 
 #include <vlc_codec_synchro.h>
 
-/* Aspect ratio (ISO/IEC 13818-2 section 6.3.3, table 6-3) */
-#define AR_SQUARE_PICTURE       1                           /* square pixels */
-#define AR_4_3_PICTURE          2                        /* 4:3 picture (TV) */
-#define AR_16_9_PICTURE         3              /* 16:9 picture (wide screen) */
-#define AR_221_1_PICTURE        4                  /* 2.21:1 picture (movie) */
-
 /*****************************************************************************
  * decoder_sys_t : libmpeg2 decoder descriptor
  *****************************************************************************/
@@ -241,7 +235,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
                     uint8_t *buf[3];
                     buf[0] = buf[1] = buf[2] = NULL;
                     if( (p_pic = GetNewPicture( p_dec, buf )) == NULL )
+                    {
+                        p_block->i_buffer = 0;
                         break;
+                    }
                     mpeg2_set_buf( p_sys->p_mpeg2dec, buf, p_pic );
                     mpeg2_stride( p_sys->p_mpeg2dec, p_pic->p[Y_PLANE].i_pitch );
                 }
@@ -294,9 +291,7 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
             p_block->i_buffer = 0;
             break;
 
-#ifdef STATE_SEQUENCE_MODIFIED
-/* FIXME - the above ifdef is always FALSE, even with libmpeg2-0.5.0
- * Need to improve the implementation to avoid invalid/unref pictures */
+#if MPEG2_RELEASE >= MPEG2_VERSION (0, 5, 0)
 
         case STATE_SEQUENCE_MODIFIED:
             GetAR( p_dec );
@@ -635,31 +630,6 @@ static void GetAR( decoder_t *p_dec )
     if( p_dec->fmt_in.video.i_aspect )
     {
         p_sys->i_aspect = p_dec->fmt_in.video.i_aspect;
-        if( p_sys->i_aspect <= AR_221_1_PICTURE )
-        switch( p_sys->i_aspect )
-        {
-        case AR_4_3_PICTURE:
-            p_sys->i_aspect = VOUT_ASPECT_FACTOR * 4 / 3;
-            p_sys->i_sar_num = p_sys->p_info->sequence->picture_height * 4;
-            p_sys->i_sar_den = p_sys->p_info->sequence->picture_width * 3;
-            break;
-        case AR_16_9_PICTURE:
-            p_sys->i_aspect = VOUT_ASPECT_FACTOR * 16 / 9;
-            p_sys->i_sar_num = p_sys->p_info->sequence->picture_height * 16;
-            p_sys->i_sar_den = p_sys->p_info->sequence->picture_width * 9;
-            break;
-        case AR_221_1_PICTURE:
-            p_sys->i_aspect = VOUT_ASPECT_FACTOR * 221 / 100;
-            p_sys->i_sar_num = p_sys->p_info->sequence->picture_height * 221;
-            p_sys->i_sar_den = p_sys->p_info->sequence->picture_width * 100;
-            break;
-        case AR_SQUARE_PICTURE:
-            p_sys->i_aspect = VOUT_ASPECT_FACTOR *
-                           p_sys->p_info->sequence->picture_width /
-                           p_sys->p_info->sequence->picture_height;
-            p_sys->i_sar_num = p_sys->i_sar_den = 1;
-            break;
-        }
     }
     else
     {