Coverage Report

Created: 2026-01-25 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libswscale/bayer_template.c
Line
Count
Source
1
/*
2
 * Bayer-to-RGB/YV12 template
3
 * Copyright (c) 2011-2014 Peter Ross <pross@xvid.org>
4
 *
5
 * This file is part of FFmpeg.
6
 *
7
 * FFmpeg is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * FFmpeg is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with FFmpeg; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
 */
21
22
#if defined(BAYER_BGGR) || defined(BAYER_GBRG)
23
0
#define BAYER_R       0
24
0
#define BAYER_G       1
25
0
#define BAYER_B       2
26
#endif
27
#if defined(BAYER_RGGB) || defined(BAYER_GRBG)
28
0
#define BAYER_R       2
29
0
#define BAYER_G       1
30
0
#define BAYER_B       0
31
#endif
32
33
#if defined(BAYER_8)
34
0
#define BAYER_READ(x) (x)
35
0
#define BAYER_SIZEOF  1
36
0
#define BAYER_SHIFT   0
37
#endif
38
#if defined(BAYER_16LE)
39
0
#define BAYER_READ(x) AV_RL16(&(x))
40
0
#define BAYER_SIZEOF  2
41
0
#define BAYER_SHIFT   8
42
#endif
43
#if defined(BAYER_16BE)
44
0
#define BAYER_READ(x) AV_RB16(&(x))
45
0
#define BAYER_SIZEOF  2
46
0
#define BAYER_SHIFT   8
47
#endif
48
49
0
#define S(y, x) BAYER_READ(src[(y)*src_stride + BAYER_SIZEOF*(x)])
50
0
#define T(y, x) (unsigned int)S(y, x)
51
0
#define R(y, x) dst[(y)*dst_stride + (x)*3 + BAYER_R]
52
0
#define G(y, x) dst[(y)*dst_stride + (x)*3 + BAYER_G]
53
0
#define B(y, x) dst[(y)*dst_stride + (x)*3 + BAYER_B]
54
55
#if defined(BAYER_BGGR) || defined(BAYER_RGGB)
56
#define BAYER_TO_RGB24_COPY \
57
0
    R(0, 0) = \
58
0
    R(0, 1) = \
59
0
    R(1, 1) = \
60
0
    R(1, 0) = S(1, 1) >> BAYER_SHIFT; \
61
0
    \
62
0
    G(0, 1) = S(0, 1) >> BAYER_SHIFT; \
63
0
    G(0, 0) = \
64
0
    G(1, 1) = (T(0, 1) + T(1, 0)) >> (1 + BAYER_SHIFT); \
65
0
    G(1, 0) = S(1, 0) >> BAYER_SHIFT; \
66
0
    \
67
0
    B(1, 1) = \
68
0
    B(0, 0) = \
69
0
    B(0, 1) = \
70
0
    B(1, 0) = S(0, 0) >> BAYER_SHIFT;
71
#define BAYER_TO_RGB24_INTERPOLATE \
72
0
    R(0, 0) = (T(-1, -1) + T(-1,  1) + T(1, -1) + T(1, 1)) >> (2 + BAYER_SHIFT); \
73
0
    G(0, 0) = (T(-1,  0) + T( 0, -1) + T(0,  1) + T(1, 0)) >> (2 + BAYER_SHIFT); \
74
0
    B(0, 0) =  S(0, 0) >> BAYER_SHIFT; \
75
0
    \
76
0
    R(0, 1) = (T(-1, 1) + T(1, 1)) >> (1 + BAYER_SHIFT); \
77
0
    G(0, 1) =  S(0,  1) >> BAYER_SHIFT; \
78
0
    B(0, 1) = (T(0,  0) + T(0, 2)) >> (1 + BAYER_SHIFT); \
79
0
    \
80
0
    R(1, 0) = (T(1, -1) + T(1, 1)) >> (1 + BAYER_SHIFT); \
81
0
    G(1, 0) =  S(1,  0) >> BAYER_SHIFT; \
82
0
    B(1, 0) = (T(0,  0) + T(2, 0)) >> (1 + BAYER_SHIFT); \
83
0
    \
84
0
    R(1, 1) =  S(1, 1) >> BAYER_SHIFT; \
85
0
    G(1, 1) = (T(0, 1) + T(1, 0) + T(1, 2) + T(2, 1)) >> (2 + BAYER_SHIFT); \
86
0
    B(1, 1) = (T(0, 0) + T(0, 2) + T(2, 0) + T(2, 2)) >> (2 + BAYER_SHIFT);
87
#else
88
#define BAYER_TO_RGB24_COPY \
89
0
    R(0, 0) = \
90
0
    R(0, 1) = \
91
0
    R(1, 1) = \
92
0
    R(1, 0) = S(1, 0) >> BAYER_SHIFT; \
93
0
    \
94
0
    G(0, 0) = S(0, 0) >> BAYER_SHIFT; \
95
0
    G(1, 1) = S(1, 1) >> BAYER_SHIFT; \
96
0
    G(0, 1) = \
97
0
    G(1, 0) = (T(0, 0) + T(1, 1)) >> (1 + BAYER_SHIFT); \
98
0
    \
99
0
    B(1, 1) = \
100
0
    B(0, 0) = \
101
0
    B(0, 1) = \
102
0
    B(1, 0) = S(0, 1) >> BAYER_SHIFT;
103
#define BAYER_TO_RGB24_INTERPOLATE \
104
0
    R(0, 0) = (T(-1, 0) + T(1, 0)) >> (1 + BAYER_SHIFT); \
105
0
    G(0, 0) =  S(0, 0) >> BAYER_SHIFT; \
106
0
    B(0, 0) = (T(0, -1) + T(0, 1)) >> (1 + BAYER_SHIFT); \
107
0
    \
108
0
    R(0, 1) = (T(-1, 0) + T(-1, 2) + T(1, 0) + T(1, 2)) >> (2 + BAYER_SHIFT); \
109
0
    G(0, 1) = (T(-1, 1) + T(0,  0) + T(0, 2) + T(1, 1)) >> (2 + BAYER_SHIFT); \
110
0
    B(0, 1) =  S(0, 1) >> BAYER_SHIFT; \
111
0
    \
112
0
    R(1, 0) =  S(1, 0) >> BAYER_SHIFT; \
113
0
    G(1, 0) = (T(0, 0)  + T(1, -1) + T(1,  1) + T(2, 0)) >> (2 + BAYER_SHIFT); \
114
0
    B(1, 0) = (T(0, -1) + T(0,  1) + T(2, -1) + T(2, 1)) >> (2 + BAYER_SHIFT); \
115
0
    \
116
0
    R(1, 1) = (T(1, 0) + T(1, 2)) >> (1 + BAYER_SHIFT); \
117
0
    G(1, 1) =  S(1, 1) >> BAYER_SHIFT; \
118
0
    B(1, 1) = (T(0, 1) + T(2, 1)) >> (1 + BAYER_SHIFT);
119
#endif
120
121
#if defined(BAYER_BGGR) || defined(BAYER_RGGB)
122
#define BAYER_TO_RGB48_COPY \
123
0
    R(0, 0) = \
124
0
    R(0, 1) = \
125
0
    R(1, 1) = \
126
0
    R(1, 0) = S(1, 1); \
127
0
    \
128
0
    G(0, 1) = S(0, 1); \
129
0
    G(0, 0) = \
130
0
    G(1, 1) = (T(0, 1) + T(1, 0)) >> 1; \
131
0
    G(1, 0) = S(1, 0); \
132
0
    \
133
0
    B(1, 1) = \
134
0
    B(0, 0) = \
135
0
    B(0, 1) = \
136
0
    B(1, 0) = S(0, 0);
137
#define BAYER_TO_RGB48_INTERPOLATE \
138
0
    R(0, 0) = (T(-1, -1) + T(-1,  1) + T(1, -1) + T(1, 1)) >> 2; \
139
0
    G(0, 0) = (T(-1,  0) + T( 0, -1) + T(0,  1) + T(1, 0)) >> 2; \
140
0
    B(0, 0) =  S(0, 0); \
141
0
    \
142
0
    R(0, 1) = (T(-1, 1) + T(1, 1)) >> 1; \
143
0
    G(0, 1) =  S(0,  1); \
144
0
    B(0, 1) = (T(0,  0) + T(0, 2)) >> 1; \
145
0
    \
146
0
    R(1, 0) = (T(1, -1) + T(1, 1)) >> 1; \
147
0
    G(1, 0) =  S(1,  0); \
148
0
    B(1, 0) = (T(0,  0) + T(2, 0)) >> 1; \
149
0
    \
150
0
    R(1, 1) =  S(1, 1); \
151
0
    G(1, 1) = (T(0, 1) + T(1, 0) + T(1, 2) + T(2, 1)) >> 2; \
152
0
    B(1, 1) = (T(0, 0) + T(0, 2) + T(2, 0) + T(2, 2)) >> 2;
153
#else
154
#define BAYER_TO_RGB48_COPY \
155
0
    R(0, 0) = \
156
0
    R(0, 1) = \
157
0
    R(1, 1) = \
158
0
    R(1, 0) = S(1, 0); \
159
0
    \
160
0
    G(0, 0) = S(0, 0); \
161
0
    G(1, 1) = S(1, 1); \
162
0
    G(0, 1) = \
163
0
    G(1, 0) = (T(0, 0) + T(1, 1)) >> 1; \
164
0
    \
165
0
    B(1, 1) = \
166
0
    B(0, 0) = \
167
0
    B(0, 1) = \
168
0
    B(1, 0) = S(0, 1);
169
#define BAYER_TO_RGB48_INTERPOLATE \
170
0
    R(0, 0) = (T(-1, 0) + T(1, 0)) >> 1; \
171
0
    G(0, 0) =  S(0, 0); \
172
0
    B(0, 0) = (T(0, -1) + T(0, 1)) >> 1; \
173
0
    \
174
0
    R(0, 1) = (T(-1, 0) + T(-1, 2) + T(1, 0) + T(1, 2)) >> 2; \
175
0
    G(0, 1) = (T(-1, 1) + T(0,  0) + T(0, 2) + T(1, 1)) >> 2; \
176
0
    B(0, 1) =  S(0, 1); \
177
0
    \
178
0
    R(1, 0) =  S(1, 0); \
179
0
    G(1, 0) = (T(0, 0)  + T(1, -1) + T(1,  1) + T(2, 0)) >> 2; \
180
0
    B(1, 0) = (T(0, -1) + T(0,  1) + T(2, -1) + T(2, 1)) >> 2; \
181
0
    \
182
0
    R(1, 1) = (T(1, 0) + T(1, 2)) >> 1; \
183
0
    G(1, 1) =  S(1, 1); \
184
0
    B(1, 1) = (T(0, 1) + T(2, 1)) >> 1;
185
#endif
186
187
/**
188
 * invoke ff_rgb24toyv12 for 2x2 pixels
189
 */
190
#define rgb24toyv12_2x2(src, dstY, dstU, dstV, luma_stride, src_stride, rgb2yuv) \
191
0
    ff_rgb24toyv12(src, dstY, dstV, dstU, 2, 2, luma_stride, 0, src_stride, rgb2yuv)
192
193
static void BAYER_RENAME(rgb24_copy)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width)
194
0
{
195
0
    int i;
196
0
    for (i = 0 ; i < width; i+= 2) {
197
0
        BAYER_TO_RGB24_COPY
198
0
        src += 2 * BAYER_SIZEOF;
199
0
        dst += 6;
200
0
    }
201
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_rgb24_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_rgb24_copy
202
203
static void BAYER_RENAME(rgb24_interpolate)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width)
204
0
{
205
0
    int i;
206
207
0
    BAYER_TO_RGB24_COPY
208
0
    src += 2 * BAYER_SIZEOF;
209
0
    dst += 6;
210
211
0
    for (i = 2 ; i < width - 2; i+= 2) {
212
0
        BAYER_TO_RGB24_INTERPOLATE
213
0
        src += 2 * BAYER_SIZEOF;
214
0
        dst += 6;
215
0
    }
216
217
0
    if (width > 2) {
218
0
        BAYER_TO_RGB24_COPY
219
0
    }
220
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_rgb24_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_rgb24_interpolate
221
222
static void BAYER_RENAME(rgb48_copy)(const uint8_t *src, int src_stride, uint8_t *ddst, int dst_stride, int width)
223
0
{
224
0
    uint16_t *dst = (uint16_t *)ddst;
225
0
    int i;
226
227
0
    dst_stride /= 2;
228
0
    for (i = 0 ; i < width; i+= 2) {
229
0
        BAYER_TO_RGB48_COPY
230
0
        src += 2 * BAYER_SIZEOF;
231
0
        dst += 6;
232
0
    }
233
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_rgb48_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_rgb48_copy
234
235
static void BAYER_RENAME(rgb48_interpolate)(const uint8_t *src, int src_stride, uint8_t *ddst, int dst_stride, int width)
236
0
{
237
0
    uint16_t *dst = (uint16_t *)ddst;
238
0
    int i;
239
240
0
    dst_stride /= 2;
241
0
    BAYER_TO_RGB48_COPY
242
0
    src += 2 * BAYER_SIZEOF;
243
0
    dst += 6;
244
245
0
    for (i = 2 ; i < width - 2; i+= 2) {
246
0
        BAYER_TO_RGB48_INTERPOLATE
247
0
        src += 2 * BAYER_SIZEOF;
248
0
        dst += 6;
249
0
    }
250
251
0
    if (width > 2) {
252
0
        BAYER_TO_RGB48_COPY
253
0
    }
254
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_rgb48_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_rgb48_interpolate
255
256
static void BAYER_RENAME(yv12_copy)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv)
257
0
{
258
0
    uint8_t dst[12];
259
0
    const int dst_stride = 6;
260
0
    int i;
261
0
    for (i = 0 ; i < width; i+= 2) {
262
0
        BAYER_TO_RGB24_COPY
263
0
        rgb24toyv12_2x2(dst, dstY, dstU, dstV, luma_stride, dst_stride, rgb2yuv);
264
0
        src  += 2 * BAYER_SIZEOF;
265
0
        dstY += 2;
266
0
        dstU++;
267
0
        dstV++;
268
0
    }
269
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_yv12_copy
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_yv12_copy
270
271
static void BAYER_RENAME(yv12_interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv)
272
0
{
273
0
    uint8_t dst[12];
274
0
    const int dst_stride = 6;
275
0
    int i;
276
277
0
    BAYER_TO_RGB24_COPY
278
0
    rgb24toyv12_2x2(dst, dstY, dstU, dstV, luma_stride, dst_stride, rgb2yuv);
279
0
    src  += 2 * BAYER_SIZEOF;
280
0
    dstY += 2;
281
0
    dstU++;
282
0
    dstV++;
283
284
0
    for (i = 2 ; i < width - 2; i+= 2) {
285
0
        BAYER_TO_RGB24_INTERPOLATE
286
0
        rgb24toyv12_2x2(dst, dstY, dstU, dstV, luma_stride, dst_stride, rgb2yuv);
287
0
        src  += 2 * BAYER_SIZEOF;
288
0
        dstY += 2;
289
0
        dstU++;
290
0
        dstV++;
291
0
    }
292
293
0
    if (width > 2) {
294
0
        BAYER_TO_RGB24_COPY
295
0
        rgb24toyv12_2x2(dst, dstY, dstU, dstV, luma_stride, dst_stride, rgb2yuv);
296
0
    }
297
0
}
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr8_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16le_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_bggr16be_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb8_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16le_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_rggb16be_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg8_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16le_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_gbrg16be_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg8_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16le_to_yv12_interpolate
Unexecuted instantiation: swscale_unscaled.c:bayer_grbg16be_to_yv12_interpolate
298
299
#undef S
300
#undef T
301
#undef R
302
#undef G
303
#undef B
304
#undef BAYER_TO_RGB24_COPY
305
#undef BAYER_TO_RGB24_INTERPOLATE
306
#undef BAYER_TO_RGB48_COPY
307
#undef BAYER_TO_RGB48_INTERPOLATE
308
309
#undef BAYER_RENAME
310
311
#undef BAYER_R
312
#undef BAYER_G
313
#undef BAYER_B
314
#undef BAYER_READ
315
#undef BAYER_SIZEOF
316
#undef BAYER_SHIFT
317
318
#if defined(BAYER_BGGR)
319
#undef BAYER_BGGR
320
#endif
321
#if defined(BAYER_RGGB)
322
#undef BAYER_RGGB
323
#endif
324
#if defined(BAYER_GBRG)
325
#undef BAYER_GBRG
326
#endif
327
#if defined(BAYER_GRBG)
328
#undef BAYER_GRBG
329
#endif
330
#if defined(BAYER_8)
331
#undef BAYER_8
332
#endif
333
#if defined(BAYER_16LE)
334
#undef BAYER_16LE
335
#endif
336
#if defined(BAYER_16BE)
337
#undef BAYER_16BE
338
#endif