annotate libswscale/rgb2rgb.h @ 19887:1259d6add8e6

When one of the PCM configuration function in init() fails, abort immediately instead of continuing with the remaining calls that would fail anyway because the device or some variable wasn't properly initialized in this case.
author cladisch
date Mon, 18 Sep 2006 16:29:27 +0000
parents cb40a93756af
children aca9e9783f67
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 *
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
10 * This program is free software; you can redistribute it and/or modify
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
11 * it under the terms of the GNU General Public License as published by
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
13 * (at your option) any later version.
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
14 *
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
15 * This program is distributed in the hope that it will be useful,
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
18 * GNU General Public License for more details.
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
19 *
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
20 * You should have received a copy of the GNU General Public License
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
21 * along with this program; if not, write to the Free Software
cb40a93756af Add proper GPL headers.
diego
parents: 18875
diff changeset
22 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
23 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
24
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
25 #ifndef RGB2RGB_INCLUDED
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
26 #define RGB2RGB_INCLUDED
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
27
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
28 // Note: do not fix the dependence on stdio.h
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
29
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
30 /* A full collection of rgb to rgb(bgr) convertors */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
31 extern void (*rgb24to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
32 extern void (*rgb24to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
33 extern void (*rgb24to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
34 extern void (*rgb32to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
35 extern void (*rgb32to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
36 extern void (*rgb32to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
37 extern void (*rgb15to16)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
38 extern void (*rgb15to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
39 extern void (*rgb15to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
40 extern void (*rgb16to15)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
41 extern void (*rgb16to24)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
42 extern void (*rgb16to32)(const uint8_t *src,uint8_t *dst,long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
43 extern void (*rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
44 extern void (*rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
45 extern void (*rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
46 extern void (*rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
47 extern void (*rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
48 extern void (*rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
49
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
50 extern void rgb24tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
51 extern void rgb32tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
52 extern void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
53 extern void rgb16tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
54 extern void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
55 extern void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
56 extern void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
57 extern void rgb15tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
58 extern void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
59 extern void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
60 extern void rgb8tobgr8(const uint8_t *src, uint8_t *dst, long src_size);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
61
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
62
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
63 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
64 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
65 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
66 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
67 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
68 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
69 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
70 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
71
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
72 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
73 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
74 * 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
75 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
76 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
77 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
78 //void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
79
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
80 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
81 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
82 * 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
83 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
84 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
85 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
86 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
87 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
88
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
89 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
90 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
91 * width should be a multiple of 16
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
92 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
93 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
94 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
95 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
96
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
97 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
98 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
99 * 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
100 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
101 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
102 extern void (*yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
103 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
104 long lumStride, long chromStride, long srcStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
105
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
106 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
107 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
108 * 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
109 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
110 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
111 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
112 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
113 long lumStride, long chromStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
114
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
115 /**
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
116 *
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
117 * 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
118 * problem for anyone then tell me, and ill fix it)
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
119 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
120 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
121 extern void (*rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
122 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
123 long lumStride, long chromStride, long srcStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
124 extern void (*planar2x)(const uint8_t *src, uint8_t *dst, long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
125 long srcStride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
126
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
127 extern void (*interleaveBytes)(uint8_t *src1, uint8_t *src2, uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
128 long width, long height, long src1Stride,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
129 long src2Stride, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
130
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
131 extern void (*vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
132 uint8_t *dst1, uint8_t *dst2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
133 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
134 long srcStride1, long srcStride2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
135 long dstStride1, long dstStride2);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
136
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
137 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
138 uint8_t *dst,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
139 long width, long height,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
140 long srcStride1, long srcStride2,
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
141 long srcStride3, long dstStride);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
142
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
143 void sws_rgb2rgb_init(int flags);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
144
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
145 #endif