]> git.sesse.net Git - vlc/blobdiff - plugins/dummy/vout_dummy.c
* introduced a memalign wrapper that will align the memory manually if
[vlc] / plugins / dummy / vout_dummy.c
index 803bf8582931827f5b202ed4b11c3ead45c76d77..4f3cb13e7abb3511fbe350098bb6dfd462876bc1 100644 (file)
@@ -2,7 +2,7 @@
  * vout_dummy.c: Dummy video output display method for testing purposes
  *****************************************************************************
  * Copyright (C) 2000, 2001 VideoLAN
- * $Id: vout_dummy.c,v 1.18 2002/02/15 13:32:53 sam Exp $
+ * $Id: vout_dummy.c,v 1.21 2002/04/05 01:05:22 gbazin Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -47,6 +47,9 @@ typedef struct vout_sys_s
 {
     /* Nothing needed here. Maybe stats ? */
 
+    /* Prevent malloc(0) */
+    int i_dummy;
+
 } vout_sys_t;
 
 /*****************************************************************************
@@ -119,6 +122,9 @@ static int vout_Init( vout_thread_t *p_vout )
 
         default:
             p_vout->output.i_chroma = FOURCC_RV16;
+            p_vout->output.i_rmask  = 0xf800;
+            p_vout->output.i_gmask  = 0x07e0;
+            p_vout->output.i_bmask  = 0x001f;
             p_vout->output.i_width  = p_vout->render.i_width;
             p_vout->output.i_height = p_vout->render.i_height;
             p_vout->output.i_aspect = p_vout->render.i_aspect;
@@ -168,7 +174,7 @@ static void vout_End( vout_thread_t *p_vout )
     for( i_index = I_OUTPUTPICTURES ; i_index ; )
     {
         i_index--;
-        free( PP_OUTPUTPICTURE[ i_index ]->p_data );
+        free( PP_OUTPUTPICTURE[ i_index ]->p_data_orig );
     }
 }
 
@@ -228,7 +234,8 @@ static int DummyNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
     case FOURCC_YV12:
 
         /* Allocate the memory buffer */
-        p_pic->p_data = memalign( 16, i_width * i_height * 3 / 2 );
+        p_pic->p_data = vlc_memalign( 16, i_width * i_height * 3 / 2,
+                                      &p_pic->p_data_orig );
 
         /* Y buffer */
         p_pic->Y_PIXELS = p_pic->p_data;
@@ -262,7 +269,8 @@ static int DummyNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
     case FOURCC_RV16:
 
         /* Allocate the memory buffer */
-        p_pic->p_data = memalign( 16, i_width * i_height * 2 );
+        p_pic->p_data = vlc_memalign( 16, i_width * i_height * 2,
+                                      &p_pic->p_data_orig );
 
         /* Fill important structures */
         p_pic->p->p_pixels = p_pic->p_data;
@@ -270,9 +278,6 @@ static int DummyNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
         p_pic->p->i_pitch = i_width;
         p_pic->p->i_pixel_bytes = 2;
         p_pic->p->b_margin = 0;
-        p_pic->p->i_red_mask   = 0xf800;
-        p_pic->p->i_green_mask = 0x07e0;
-        p_pic->p->i_blue_mask  = 0x001f;
 
         /* We allocated 1 plane */
         p_pic->i_planes = 1;