annotate libswscale/rgb2rgb.h @ 22265:02333de881a7

probe ~/.xmms/Plugins for plugins too, so users without root access on their machine can install them in their homedir and, if necessary, override system wide defaults. patch by Nicolas George, nicolas george at ens fr
author ivo
date Tue, 20 Feb 2007 16:12:46 +0000
parents 1f2ba24b4e47
children 9528d1ebe68f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
1 /*
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
2 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
3 * rgb2rgb.h, Software RGB to RGB convertor
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
4 * pluralize by Software PAL8 to RGB convertor
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
5 * Software YUV to YUV convertor
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
6 * Software YUV to RGB convertor
19766
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
7 * Written by Nick Kurshev.
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
8 * palette & YUV & runtime CPU stuff by Michael (michaelni@gmx.at)
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
9 *
20094
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19766
diff changeset
10 * This file is part of FFmpeg.
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19766
diff changeset
11 *
21029
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
12 * FFmpeg is free software; you can redistribute it and/or
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
13 * modify it under the terms of the GNU Lesser General Public
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
14 * License as published by the Free Software Foundation; either
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
15 * version 2.1 of the License, or (at your option) any later version.
19766
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
16 *
20094
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19766
diff changeset
17 * FFmpeg is distributed in the hope that it will be useful,
19766
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21029
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
20 * Lesser General Public License for more details.
19766
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
21 *
21029
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
22 * You should have received a copy of the GNU Lesser General Public
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
diff changeset
23 * License along with FFmpeg; if not, write to the Free Software
19766
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
24 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
25 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
26
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
27 #ifndef RGB2RGB_INCLUDED
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
28 #define RGB2RGB_INCLUDED
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
29
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
30 // Note: do not fix the dependence on stdio.h
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
31
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
32 /* A full collection of rgb to rgb(bgr) convertors */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
33 extern void (*rgb24to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
34 extern void (*rgb24to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
35 extern void (*rgb24to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
36 extern void (*rgb32to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
37 extern void (*rgb32to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
38 extern void (*rgb32to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
39 extern void (*rgb15to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
40 extern void (*rgb15to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
41 extern void (*rgb15to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
42 extern void (*rgb16to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
43 extern void (*rgb16to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
44 extern void (*rgb16to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
45 extern void (*rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
46 extern void (*rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
47 extern void (*rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
48 extern void (*rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
49 extern void (*rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
50 extern void (*rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
51
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
52 extern void rgb24tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
53 extern void rgb32tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
54 extern void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
55 extern void rgb16tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
56 extern void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
57 extern void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
58 extern void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
59 extern void rgb15tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
60 extern void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
61 extern void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
62 extern void rgb8tobgr8(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
63
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
64
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
65 extern void palette8torgb32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
66 extern void palette8tobgr32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
67 extern void palette8torgb24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
68 extern void palette8tobgr24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
69 extern void palette8torgb16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
70 extern void palette8tobgr16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
71 extern void palette8torgb15(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
72 extern void palette8tobgr15(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
73
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
74 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
75 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
76 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
77 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
78 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
79 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
80 //void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
81
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
82 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
83 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
84 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
85 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
86 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
87 extern void (*yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
88 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
89 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
90
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
91 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
92 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
93 * width should be a multiple of 16
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
94 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
95 extern void (*yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
96 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
97 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
98
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
99 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
100 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
101 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
102 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
103 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
104 extern void (*yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
105 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
106 long lumStride, long chromStride, long srcStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
107
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
108 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
109 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
110 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
111 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
112 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
113 extern void (*yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
114 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
115 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
116
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
117 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
118 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
119 * height should be a multiple of 2 and width should be a multiple of 2 (if this is a
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
120 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
121 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
122 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
123 extern void (*rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
124 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
125 long lumStride, long chromStride, long srcStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
126 extern void (*planar2x)(const uint8_t *src, uint8_t *dst, long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
127 long srcStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
128
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
129 extern void (*interleaveBytes)(uint8_t *src1, uint8_t *src2, uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
130 long width, long height, long src1Stride,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
131 long src2Stride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
132
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
133 extern void (*vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
134 uint8_t *dst1, uint8_t *dst2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
135 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
136 long srcStride1, long srcStride2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
137 long dstStride1, long dstStride2);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
138
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
139 extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
140 uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
141 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
142 long srcStride1, long srcStride2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
143 long srcStride3, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
144
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
145 void sws_rgb2rgb_init(int flags);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
146
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
147 #endif