]> git.sesse.net Git - vlc/commitdiff
Also allow an empty palette marked with palette.i_entries = 0
authorJean-Paul Saman <jpsaman@videolan.org>
Mon, 15 Aug 2005 15:01:31 +0000 (15:01 +0000)
committerJean-Paul Saman <jpsaman@videolan.org>
Mon, 15 Aug 2005 15:01:31 +0000 (15:01 +0000)
modules/codec/dvbsub.c

index 8e411fd9de7c2307569157388d388b099fed66c6..371d03c276097929c7093b867e65a986056d51d9 100644 (file)
@@ -1795,14 +1795,20 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_subpic )
     if( p_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') &&
         p_region->fmt.i_chroma != VLC_FOURCC('Y','U','V','P') ) return NULL;
     
-    if( p_region->fmt.p_palette &&
-        ( p_region->fmt.p_palette->i_entries != 4 ) &&
-        ( p_region->fmt.p_palette->i_entries != 16 ) &&
-        ( p_region->fmt.p_palette->i_entries != 256 ) )
+    if( p_region->fmt.p_palette )
     {
-        msg_Err( p_enc, "subpicture palette (%d) not handled",
-                    p_region->fmt.p_palette->i_entries );
-        return NULL;
+        switch( p_region->fmt.p_palette->i_entries )
+        {
+            case 0:
+            case 4:
+            case 16:
+            case 256:
+                break;
+            default:
+                msg_Err( p_enc, "subpicture palette (%d) not handled",
+                            p_region->fmt.p_palette->i_entries );
+                return NULL;                        
+        }
     }
     /* End of hack */
     
@@ -2187,6 +2193,9 @@ static void encode_pixel_data( encoder_t *p_enc, bs_t *s,
     {
         switch( p_region->fmt.p_palette->i_entries )
         {
+        case 0:
+            break;
+            
         case 4:
             bs_write( s, 8, 0x10 ); /* 2 bit/pixel code string */
             encode_pixel_line_2bp( p_enc, s, p_region, i_line );