]> git.sesse.net Git - vlc/blobdiff - plugins/chroma/i420_rgb.h
* ALL: new module API. Makes a few things a lot simpler, and we gain
[vlc] / plugins / chroma / i420_rgb.h
index d402a5d86d69502331651f9a5078c4fb179fac17..dacf1b483362fe9a19f1531458275164d46b800a 100644 (file)
@@ -2,7 +2,7 @@
  * i420_rgb.h : YUV to bitmap RGB conversion module for vlc
  *****************************************************************************
  * Copyright (C) 2000 VideoLAN
- * $Id: i420_rgb.h,v 1.2 2002/01/12 01:25:57 sam Exp $
+ * $Id: i420_rgb.h,v 1.8 2002/07/31 20:56:51 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
  * This structure is part of the chroma transformation descriptor, it
  * describes the yuv2rgb specific properties.
  *****************************************************************************/
-typedef struct chroma_sys_s
+struct chroma_sys_t
 {
     u8  *p_buffer;
     int *p_offset;
 
-} chroma_sys_t;
+#ifdef MODULE_NAME_IS_chroma_i420_rgb
+    /* Pre-calculated conversion tables */
+    void *p_base;                          /* base for all conversion tables */
+    u8   *p_rgb8;                                        /* RGB 8 bits table */
+    u16  *p_rgb16;                                      /* RGB 16 bits table */
+    u32  *p_rgb32;                                      /* RGB 32 bits table */
+#endif
+};
 
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
 #ifdef MODULE_NAME_IS_chroma_i420_rgb
-void _M( I420_RGB8 ) ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_RGB8) ( vout_thread_t *, picture_t *, picture_t * );
 #endif
-void _M( I420_RGB16 )( vout_thread_t *, picture_t *, picture_t * );
-void _M( I420_RGB32 )( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_RGB15)( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_RGB16)( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_RGB32)( vout_thread_t *, picture_t *, picture_t * );
 
 /*****************************************************************************
  * CONVERT_*_PIXEL: pixel conversion macros
@@ -241,7 +249,8 @@ void _M( I420_RGB32 )( vout_thread_t *, picture_t *, picture_t * );
         while( (i_scale_count -= p_vout->render.i_height) > 0 )               \
         {                                                                     \
             /* Height increment: copy previous picture line */                \
-            FAST_MEMCPY( p_pic, p_pic_start, p_vout->output.i_width * BPP );  \
+            p_vout->p_vlc->pf_memcpy( p_pic, p_pic_start,                     \
+                                      p_vout->output.i_width * BPP );         \
             (u8*)p_pic += p_dest->p->i_pitch;                                 \
         }                                                                     \
         i_scale_count += p_vout->output.i_height;                             \