]> git.sesse.net Git - vlc/blobdiff - modules/video_chroma/i420_rgb.h
Removes trailing spaces. Removes tabs.
[vlc] / modules / video_chroma / i420_rgb.h
index e90cbab92a989ab1d4832e8e69678bf577ddb2d1..109ea96becce563e5b6a72c86109302f4ca34b76 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * i420_rgb.h : YUV to bitmap RGB conversion module for vlc
  *****************************************************************************
- * Copyright (C) 2000 VideoLAN
- * $Id: i420_rgb.h,v 1.4 2003/08/29 18:58:05 fenrir Exp $
+ * Copyright (C) 2000, 2004 the VideoLAN team
+ * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -10,7 +10,7 @@
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-/*****************************************************************************
+/** Number of entries in RGB palette/colormap */
+#define CMAP_RGB2_SIZE 256
+
+/**
  * chroma_sys_t: chroma method descriptor
- *****************************************************************************
+
  * This structure is part of the chroma transformation descriptor, it
  * describes the yuv2rgb specific properties.
- *****************************************************************************/
+ */
 struct chroma_sys_t
 {
     uint8_t  *p_buffer;
     int *p_offset;
 
 #ifdef MODULE_NAME_IS_i420_rgb
-    /* Pre-calculated conversion tables */
-    void *p_base;                          /* base for all conversion tables */
-    uint8_t   *p_rgb8;                                   /* RGB 8 bits table */
-    uint16_t  *p_rgb16;                                 /* RGB 16 bits table */
-    uint32_t  *p_rgb32;                                 /* RGB 32 bits table */
+    /**< Pre-calculated conversion tables */
+    void *p_base;                      /**< base for all conversion tables */
+    uint8_t   *p_rgb8;                 /**< RGB 8 bits table */
+    uint16_t  *p_rgb16;                /**< RGB 16 bits table */
+    uint32_t  *p_rgb32;                /**< RGB 32 bits table */
+
+    /**< To get RGB value for palette entry i, use (p_rgb_r[i], p_rgb_g[i],
+       p_rgb_b[i]). Note these are 16 bits per pixel. For 8bpp entries,
+       shift right 8 bits.
+    */
+    uint16_t  p_rgb_r[CMAP_RGB2_SIZE];  /**< Red values of palette */
+    uint16_t  p_rgb_g[CMAP_RGB2_SIZE];  /**< Green values of palette */
+    uint16_t  p_rgb_b[CMAP_RGB2_SIZE];  /**< Blue values of palette */
 #endif
 };
 
@@ -47,9 +58,16 @@ struct chroma_sys_t
 #ifdef MODULE_NAME_IS_i420_rgb
 void E_(I420_RGB8)         ( vout_thread_t *, picture_t *, picture_t * );
 void E_(I420_RGB16_dither) ( vout_thread_t *, picture_t *, picture_t * );
-#endif
 void E_(I420_RGB16)        ( vout_thread_t *, picture_t *, picture_t * );
 void E_(I420_RGB32)        ( vout_thread_t *, picture_t *, picture_t * );
+#else // if defined(MODULE_NAME_IS_i420_rgb_mmx)
+void E_(I420_R5G5B5)       ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_R5G6B5)       ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_A8R8G8B8)     ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_R8G8B8A8)     ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_B8G8R8A8)     ( vout_thread_t *, picture_t *, picture_t * );
+void E_(I420_A8B8G8R8)     ( vout_thread_t *, picture_t *, picture_t * );
+#endif
 
 /*****************************************************************************
  * CONVERT_*_PIXEL: pixel conversion macros
@@ -175,13 +193,13 @@ void E_(I420_RGB32)        ( vout_thread_t *, picture_t *, picture_t * );
         {                                                                     \
             *p_pic++ = *p_buffer;   p_buffer += *p_offset++;                  \
         }                                                                     \
-        (uint8_t*)p_pic += i_right_margin;                                    \
+        p_pic = (void*)((uint8_t*)p_pic + i_right_margin );                   \
     }                                                                         \
     else                                                                      \
     {                                                                         \
         /* No scaling, conversion has been done directly in picture memory.   \
          * Increment of picture pointer to end of line is still needed */     \
-        (uint8_t*)p_pic += p_dest->p->i_pitch;                                \
+        p_pic = (void*)((uint8_t*)p_pic + p_dest->p->i_pitch );               \
     }                                                                         \
 
 /*****************************************************************************
@@ -213,7 +231,7 @@ void E_(I420_RGB32)        ( vout_thread_t *, picture_t *, picture_t * );
         }                                                                     \
     }                                                                         \
     /* Increment of picture pointer to end of line is still needed */         \
-    (uint8_t*)p_pic += i_right_margin;                                        \
+    p_pic = (void*)((uint8_t*)p_pic + i_right_margin );                       \
                                                                               \
     /* Increment the Y coordinate in the matrix, modulo 4 */                  \
     i_real_y = (i_real_y + 1) & 0x3;                                          \
@@ -265,9 +283,9 @@ void E_(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 */                \
-            p_vout->p_vlc->pf_memcpy( p_pic, p_pic_start,                     \
+            p_vout->p_libvlc->pf_memcpy( p_pic, p_pic_start,                     \
                                       p_vout->output.i_width * BPP );         \
-            (uint8_t*)p_pic += p_dest->p->i_pitch;                            \
+            p_pic = (void*)((uint8_t*)p_pic + p_dest->p->i_pitch );           \
         }                                                                     \
         i_scale_count += p_vout->output.i_height;                             \
         break;                                                                \