[cvs] / xvidcore / src / image / colorspace.h Repository:
ViewVC logotype

Diff of /xvidcore/src/image/colorspace.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Fri Mar 8 02:44:45 2002 UTC revision 1.5.2.2, Mon Jun 9 13:53:27 2003 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - Colorspace related header  -
5     *
6     *  Copyright(C) 2001-2003 Peter Ross <pross@xvid.org>
7     *
8     *  This program is free software ; you can redistribute it and/or modify
9     *  it under the terms of the GNU General Public License as published by
10     *  the Free Software Foundation ; either version 2 of the License, or
11     *  (at your option) any later version.
12     *
13     *  This program is distributed in the hope that it will be useful,
14     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
15     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     *  GNU General Public License for more details.
17     *
18     *  You should have received a copy of the GNU General Public License
19     *  along with this program ; if not, write to the Free Software
20     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21     *
22     * $Id$
23     *
24     ****************************************************************************/
25    
26  #ifndef _COLORSPACE_H  #ifndef _COLORSPACE_H
27  #define _COLORSPACE_H  #define _COLORSPACE_H
28    
29  #include "../portab.h"  #include "../portab.h"
30    
   
31  /* initialize tables */  /* initialize tables */
32    
33  void colorspace_init(void);  void colorspace_init(void);
34    
35    
 /* input color conversion functions (encoder) */  
36    
37  typedef void (color_inputFunc)(uint8_t *y_out, uint8_t *u_out, uint8_t *v_out,  /* colorspace conversion function (encoder) */
                                                         uint8_t *src, int width, int height, int stride);  
38    
39  typedef color_inputFunc *color_inputFuncPtr;  typedef void (packedFunc) (uint8_t * x_ptr,
40                                                                     int x_stride,
41                                                                     uint8_t * y_src,
42                                                                     uint8_t * v_src,
43                                                                     uint8_t * u_src,
44                                                                     int y_stride,
45                                                                     int uv_stride,
46                                                                     int width,
47                                                                     int height,
48                                                                     int vflip);
49    
50    typedef packedFunc *packedFuncPtr;
51    
52    
53    /* xxx_to_yv12 colorspace conversion functions (encoder) */
54    
55    extern packedFuncPtr rgb555_to_yv12;
56    extern packedFuncPtr rgb565_to_yv12;
57    extern packedFuncPtr bgr_to_yv12;
58    extern packedFuncPtr bgra_to_yv12;
59    extern packedFuncPtr abgr_to_yv12;
60    extern packedFuncPtr rgba_to_yv12;
61    extern packedFuncPtr yuyv_to_yv12;
62    extern packedFuncPtr uyvy_to_yv12;
63    
64    extern packedFuncPtr rgb555i_to_yv12;
65    extern packedFuncPtr rgb565i_to_yv12;
66    extern packedFuncPtr bgri_to_yv12;
67    extern packedFuncPtr bgrai_to_yv12;
68    extern packedFuncPtr abgri_to_yv12;
69    extern packedFuncPtr rgbai_to_yv12;
70    extern packedFuncPtr yuyvi_to_yv12;
71    extern packedFuncPtr uyvyi_to_yv12;
72    
 extern color_inputFuncPtr rgb555_to_yv12;  
 extern color_inputFuncPtr rgb565_to_yv12;  
 extern color_inputFuncPtr rgb24_to_yv12;  
 extern color_inputFuncPtr rgb32_to_yv12;  
 extern color_inputFuncPtr yuv_to_yv12;  
 extern color_inputFuncPtr yuyv_to_yv12;  
 extern color_inputFuncPtr uyvy_to_yv12;  
73    
74  /* plain c */  /* plain c */
75  color_inputFunc rgb555_to_yv12_c;  packedFunc rgb555_to_yv12_c;
76  color_inputFunc rgb565_to_yv12_c;  packedFunc rgb565_to_yv12_c;
77  color_inputFunc rgb24_to_yv12_c;  packedFunc bgr_to_yv12_c;
78  color_inputFunc rgb32_to_yv12_c;  packedFunc bgra_to_yv12_c;
79  color_inputFunc yuv_to_yv12_c;  packedFunc abgr_to_yv12_c;
80  color_inputFunc yuyv_to_yv12_c;  packedFunc rgba_to_yv12_c;
81  color_inputFunc uyvy_to_yv12_c;  packedFunc yuyv_to_yv12_c;
82    packedFunc uyvy_to_yv12_c;
83    
84    packedFunc rgb555i_to_yv12_c;
85    packedFunc rgb565i_to_yv12_c;
86    packedFunc bgri_to_yv12_c;
87    packedFunc bgrai_to_yv12_c;
88    packedFunc abgri_to_yv12_c;
89    packedFunc rgbai_to_yv12_c;
90    packedFunc yuyvi_to_yv12_c;
91    packedFunc uyvyi_to_yv12_c;
92    
93    
94  /* mmx */  /* mmx */
95  color_inputFunc rgb24_to_yv12_mmx;  packedFunc bgr_to_yv12_mmx;
96  color_inputFunc rgb32_to_yv12_mmx;  packedFunc bgra_to_yv12_mmx;
97  color_inputFunc yuv_to_yv12_mmx;  packedFunc yuyv_to_yv12_mmx;
98  color_inputFunc yuyv_to_yv12_mmx;  packedFunc uyvy_to_yv12_mmx;
99  color_inputFunc uyvy_to_yv12_mmx;  
100    /* 3dnow */
101    packedFunc yuyv_to_yv12_3dn;
102    packedFunc uyvy_to_yv12_3dn;
103    
104  /* xmm */  /* xmm */
105  color_inputFunc yuv_to_yv12_xmm;  packedFunc yuyv_to_yv12_xmm;
106    packedFunc uyvy_to_yv12_xmm;
107    
 /* output color conversion functions (decoder) */  
108    
109  typedef void (color_outputFunc)(uint8_t *dst, int dst_stride,  /* yv12_to_xxx colorspace conversion functions (decoder) */
                                                          uint8_t *y_src, uint8_t *v_src,  
                                                          uint8_t * u_src, int y_stride,  
                                                          int uv_stride, int width, int height);  
110    
111  typedef color_outputFunc* color_outputFuncPtr;  extern packedFuncPtr yv12_to_rgb555;
112    extern packedFuncPtr yv12_to_rgb565;
113  extern color_outputFuncPtr yv12_to_rgb555;  extern packedFuncPtr yv12_to_bgr;
114  extern color_outputFuncPtr yv12_to_rgb565;  extern packedFuncPtr yv12_to_bgra;
115  extern color_outputFuncPtr yv12_to_rgb24;  extern packedFuncPtr yv12_to_abgr;
116  extern color_outputFuncPtr yv12_to_rgb32;  extern packedFuncPtr yv12_to_rgba;
117  extern color_outputFuncPtr yv12_to_yuv;  extern packedFuncPtr yv12_to_yuyv;
118  extern color_outputFuncPtr yv12_to_yuyv;  extern packedFuncPtr yv12_to_uyvy;
119  extern color_outputFuncPtr yv12_to_uyvy;  
120    extern packedFuncPtr yv12_to_rgb555i;
121    extern packedFuncPtr yv12_to_rgb565i;
122    extern packedFuncPtr yv12_to_bgri;
123    extern packedFuncPtr yv12_to_bgrai;
124    extern packedFuncPtr yv12_to_abgri;
125    extern packedFuncPtr yv12_to_rgbai;
126    extern packedFuncPtr yv12_to_yuyvi;
127    extern packedFuncPtr yv12_to_uyvyi;
128    
129  /* plain c */  /* plain c */
130  void init_yuv_to_rgb(void);  packedFunc yv12_to_rgb555_c;
131    packedFunc yv12_to_rgb565_c;
132  color_outputFunc yv12_to_rgb555_c;  packedFunc yv12_to_bgr_c;
133  color_outputFunc yv12_to_rgb565_c;  packedFunc yv12_to_bgra_c;
134  color_outputFunc yv12_to_rgb24_c;  packedFunc yv12_to_abgr_c;
135  color_outputFunc yv12_to_rgb32_c;  packedFunc yv12_to_rgba_c;
136  color_outputFunc yv12_to_yuv_c;  packedFunc yv12_to_yuyv_c;
137  color_outputFunc yv12_to_yuyv_c;  packedFunc yv12_to_uyvy_c;
138  color_outputFunc yv12_to_uyvy_c;  
139    packedFunc yv12_to_rgb555i_c;
140    packedFunc yv12_to_rgb565i_c;
141    packedFunc yv12_to_bgri_c;
142    packedFunc yv12_to_bgrai_c;
143    packedFunc yv12_to_abgri_c;
144    packedFunc yv12_to_rgbai_c;
145    packedFunc yv12_to_yuyvi_c;
146    packedFunc yv12_to_uyvyi_c;
147    
148  /* mmx */  /* mmx */
149  color_outputFunc yv12_to_rgb24_mmx;  packedFunc yv12_to_bgr_mmx;
150  color_outputFunc yv12_to_rgb32_mmx;  packedFunc yv12_to_bgra_mmx;
151  color_outputFunc yv12_to_yuyv_mmx;  packedFunc yv12_to_yuyv_mmx;
152  color_outputFunc yv12_to_uyvy_mmx;  packedFunc yv12_to_uyvy_mmx;
153    
154    packedFunc yv12_to_yuyvi_mmx;
155    packedFunc yv12_to_uyvyi_mmx;
156    
157    
158    typedef void (planarFunc) (
159                                    uint8_t * y_dst, uint8_t * u_dst, uint8_t * v_dst,
160                                    int y_dst_stride, int uv_dst_stride,
161                                    uint8_t * y_src, uint8_t * u_src, uint8_t * v_src,
162                                    int y_src_stride, int uv_src_stride,
163                                    int width, int height, int vflip);
164    typedef planarFunc *planarFuncPtr;
165    
166    extern planarFuncPtr yv12_to_yv12;
167    
168    planarFunc yv12_to_yv12_c;
169    planarFunc yv12_to_yv12_mmx;
170    planarFunc yv12_to_yv12_xmm;
171    
172    
173  #endif /* _COLORSPACE_H_ */  #endif /* _COLORSPACE_H_ */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5.2.2

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4