webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
planar_functions.h
Go to the documentation of this file.
1 /*
2  * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3  *
4  * Use of this source code is governed by a BSD-style license
5  * that can be found in the LICENSE file in the root of the source
6  * tree. An additional intellectual property rights grant can be found
7  * in the file PATENTS. All contributing project authors may
8  * be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_
12 #define INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_
13 
14 #include "libyuv/basic_types.h"
15 
16 // TODO(fbarchard): Remove the following headers includes.
17 #include "libyuv/convert.h"
18 #include "libyuv/convert_argb.h"
19 
20 #ifdef __cplusplus
21 namespace libyuv {
22 extern "C" {
23 #endif
24 
25 // Copy a plane of data.
27 void CopyPlane(const uint8* src_y, int src_stride_y,
28  uint8* dst_y, int dst_stride_y,
29  int width, int height);
30 
32 void CopyPlane_16(const uint16* src_y, int src_stride_y,
34  int width, int height);
35 
36 // Set a plane of data to a 32 bit value.
38 void SetPlane(uint8* dst_y, int dst_stride_y,
39  int width, int height,
40  uint32 value);
41 
42 // Split interleaved UV plane into separate U and V planes.
44 void SplitUVPlane(const uint8* src_uv, int src_stride_uv,
45  uint8* dst_u, int dst_stride_u,
46  uint8* dst_v, int dst_stride_v,
47  int width, int height);
48 
49 // Merge separate U and V planes into one interleaved UV plane.
51 void MergeUVPlane(const uint8* src_u, int src_stride_u,
52  const uint8* src_v, int src_stride_v,
53  uint8* dst_uv, int dst_stride_uv,
54  int width, int height);
55 
56 // Copy I400. Supports inverting.
58 int I400ToI400(const uint8* src_y, int src_stride_y,
59  uint8* dst_y, int dst_stride_y,
60  int width, int height);
61 
62 #define J400ToJ400 I400ToI400
63 
64 // Copy I422 to I422.
65 #define I422ToI422 I422Copy
67 int I422Copy(const uint8* src_y, int src_stride_y,
68  const uint8* src_u, int src_stride_u,
69  const uint8* src_v, int src_stride_v,
70  uint8* dst_y, int dst_stride_y,
71  uint8* dst_u, int dst_stride_u,
72  uint8* dst_v, int dst_stride_v,
73  int width, int height);
74 
75 // Copy I444 to I444.
76 #define I444ToI444 I444Copy
78 int I444Copy(const uint8* src_y, int src_stride_y,
79  const uint8* src_u, int src_stride_u,
80  const uint8* src_v, int src_stride_v,
81  uint8* dst_y, int dst_stride_y,
82  uint8* dst_u, int dst_stride_u,
83  uint8* dst_v, int dst_stride_v,
84  int width, int height);
85 
86 // Convert YUY2 to I422.
88 int YUY2ToI422(const uint8* src_yuy2, int src_stride_yuy2,
89  uint8* dst_y, int dst_stride_y,
90  uint8* dst_u, int dst_stride_u,
91  uint8* dst_v, int dst_stride_v,
92  int width, int height);
93 
94 // Convert UYVY to I422.
96 int UYVYToI422(const uint8* src_uyvy, int src_stride_uyvy,
97  uint8* dst_y, int dst_stride_y,
98  uint8* dst_u, int dst_stride_u,
99  uint8* dst_v, int dst_stride_v,
100  int width, int height);
101 
103 int YUY2ToNV12(const uint8* src_yuy2, int src_stride_yuy2,
104  uint8* dst_y, int dst_stride_y,
105  uint8* dst_uv, int dst_stride_uv,
106  int width, int height);
107 
109 int UYVYToNV12(const uint8* src_uyvy, int src_stride_uyvy,
110  uint8* dst_y, int dst_stride_y,
111  uint8* dst_uv, int dst_stride_uv,
112  int width, int height);
113 
115 int YUY2ToY(const uint8* src_yuy2, int src_stride_yuy2,
116  uint8* dst_y, int dst_stride_y,
117  int width, int height);
118 
119 // Convert I420 to I400. (calls CopyPlane ignoring u/v).
121 int I420ToI400(const uint8* src_y, int src_stride_y,
122  const uint8* src_u, int src_stride_u,
123  const uint8* src_v, int src_stride_v,
124  uint8* dst_y, int dst_stride_y,
125  int width, int height);
126 
127 // Alias
128 #define J420ToJ400 I420ToI400
129 #define I420ToI420Mirror I420Mirror
130 
131 // I420 mirror.
133 int I420Mirror(const uint8* src_y, int src_stride_y,
134  const uint8* src_u, int src_stride_u,
135  const uint8* src_v, int src_stride_v,
136  uint8* dst_y, int dst_stride_y,
137  uint8* dst_u, int dst_stride_u,
138  uint8* dst_v, int dst_stride_v,
139  int width, int height);
140 
141 // Alias
142 #define I400ToI400Mirror I400Mirror
143 
144 // I400 mirror. A single plane is mirrored horizontally.
145 // Pass negative height to achieve 180 degree rotation.
147 int I400Mirror(const uint8* src_y, int src_stride_y,
148  uint8* dst_y, int dst_stride_y,
149  int width, int height);
150 
151 // Alias
152 #define ARGBToARGBMirror ARGBMirror
153 
154 // ARGB mirror.
156 int ARGBMirror(const uint8* src_argb, int src_stride_argb,
157  uint8* dst_argb, int dst_stride_argb,
158  int width, int height);
159 
160 // Convert NV12 to RGB565.
162 int NV12ToRGB565(const uint8* src_y, int src_stride_y,
163  const uint8* src_uv, int src_stride_uv,
164  uint8* dst_rgb565, int dst_stride_rgb565,
165  int width, int height);
166 
167 // I422ToARGB is in convert_argb.h
168 // Convert I422 to BGRA.
170 int I422ToBGRA(const uint8* src_y, int src_stride_y,
171  const uint8* src_u, int src_stride_u,
172  const uint8* src_v, int src_stride_v,
173  uint8* dst_bgra, int dst_stride_bgra,
174  int width, int height);
175 
176 // Convert I422 to ABGR.
178 int I422ToABGR(const uint8* src_y, int src_stride_y,
179  const uint8* src_u, int src_stride_u,
180  const uint8* src_v, int src_stride_v,
181  uint8* dst_abgr, int dst_stride_abgr,
182  int width, int height);
183 
184 // Convert I422 to RGBA.
186 int I422ToRGBA(const uint8* src_y, int src_stride_y,
187  const uint8* src_u, int src_stride_u,
188  const uint8* src_v, int src_stride_v,
189  uint8* dst_rgba, int dst_stride_rgba,
190  int width, int height);
191 
192 // Alias
193 #define RGB24ToRAW RAWToRGB24
194 
196 int RAWToRGB24(const uint8* src_raw, int src_stride_raw,
197  uint8* dst_rgb24, int dst_stride_rgb24,
198  int width, int height);
199 
200 // Draw a rectangle into I420.
202 int I420Rect(uint8* dst_y, int dst_stride_y,
203  uint8* dst_u, int dst_stride_u,
204  uint8* dst_v, int dst_stride_v,
205  int x, int y, int width, int height,
206  int value_y, int value_u, int value_v);
207 
208 // Draw a rectangle into ARGB.
210 int ARGBRect(uint8* dst_argb, int dst_stride_argb,
211  int x, int y, int width, int height, uint32 value);
212 
213 // Convert ARGB to gray scale ARGB.
215 int ARGBGrayTo(const uint8* src_argb, int src_stride_argb,
216  uint8* dst_argb, int dst_stride_argb,
217  int width, int height);
218 
219 // Make a rectangle of ARGB gray scale.
221 int ARGBGray(uint8* dst_argb, int dst_stride_argb,
222  int x, int y, int width, int height);
223 
224 // Make a rectangle of ARGB Sepia tone.
226 int ARGBSepia(uint8* dst_argb, int dst_stride_argb,
227  int x, int y, int width, int height);
228 
229 // Apply a matrix rotation to each ARGB pixel.
230 // matrix_argb is 4 signed ARGB values. -128 to 127 representing -2 to 2.
231 // The first 4 coefficients apply to B, G, R, A and produce B of the output.
232 // The next 4 coefficients apply to B, G, R, A and produce G of the output.
233 // The next 4 coefficients apply to B, G, R, A and produce R of the output.
234 // The last 4 coefficients apply to B, G, R, A and produce A of the output.
236 int ARGBColorMatrix(const uint8* src_argb, int src_stride_argb,
237  uint8* dst_argb, int dst_stride_argb,
238  const int8* matrix_argb,
239  int width, int height);
240 
241 // Deprecated. Use ARGBColorMatrix instead.
242 // Apply a matrix rotation to each ARGB pixel.
243 // matrix_argb is 3 signed ARGB values. -128 to 127 representing -1 to 1.
244 // The first 4 coefficients apply to B, G, R, A and produce B of the output.
245 // The next 4 coefficients apply to B, G, R, A and produce G of the output.
246 // The last 4 coefficients apply to B, G, R, A and produce R of the output.
248 int RGBColorMatrix(uint8* dst_argb, int dst_stride_argb,
249  const int8* matrix_rgb,
250  int x, int y, int width, int height);
251 
252 // Apply a color table each ARGB pixel.
253 // Table contains 256 ARGB values.
255 int ARGBColorTable(uint8* dst_argb, int dst_stride_argb,
256  const uint8* table_argb,
257  int x, int y, int width, int height);
258 
259 // Apply a color table each ARGB pixel but preserve destination alpha.
260 // Table contains 256 ARGB values.
262 int RGBColorTable(uint8* dst_argb, int dst_stride_argb,
263  const uint8* table_argb,
264  int x, int y, int width, int height);
265 
266 // Apply a luma/color table each ARGB pixel but preserve destination alpha.
267 // Table contains 32768 values indexed by [Y][C] where 7 it 7 bit luma from
268 // RGB (YJ style) and C is an 8 bit color component (R, G or B).
270 int ARGBLumaColorTable(const uint8* src_argb, int src_stride_argb,
271  uint8* dst_argb, int dst_stride_argb,
272  const uint8* luma_rgb_table,
273  int width, int height);
274 
275 // Apply a 3 term polynomial to ARGB values.
276 // poly points to a 4x4 matrix. The first row is constants. The 2nd row is
277 // coefficients for b, g, r and a. The 3rd row is coefficients for b squared,
278 // g squared, r squared and a squared. The 4rd row is coefficients for b to
279 // the 3, g to the 3, r to the 3 and a to the 3. The values are summed and
280 // result clamped to 0 to 255.
281 // A polynomial approximation can be dirived using software such as 'R'.
282 
284 int ARGBPolynomial(const uint8* src_argb, int src_stride_argb,
285  uint8* dst_argb, int dst_stride_argb,
286  const float* poly,
287  int width, int height);
288 
289 // Convert plane of 16 bit shorts to half floats.
290 // Source values are multiplied by scale before storing as half float.
292 int HalfFloatPlane(const uint16* src_y, int src_stride_y,
293  uint16* dst_y, int dst_stride_y,
294  float scale,
295  int width, int height);
296 
297 // Quantize a rectangle of ARGB. Alpha unaffected.
298 // scale is a 16 bit fractional fixed point scaler between 0 and 65535.
299 // interval_size should be a value between 1 and 255.
300 // interval_offset should be a value between 0 and 255.
302 int ARGBQuantize(uint8* dst_argb, int dst_stride_argb,
303  int scale, int interval_size, int interval_offset,
304  int x, int y, int width, int height);
305 
306 // Copy ARGB to ARGB.
308 int ARGBCopy(const uint8* src_argb, int src_stride_argb,
309  uint8* dst_argb, int dst_stride_argb,
310  int width, int height);
311 
312 // Copy Alpha channel of ARGB to alpha of ARGB.
314 int ARGBCopyAlpha(const uint8* src_argb, int src_stride_argb,
315  uint8* dst_argb, int dst_stride_argb,
316  int width, int height);
317 
318 // Extract the alpha channel from ARGB.
320 int ARGBExtractAlpha(const uint8* src_argb, int src_stride_argb,
321  uint8* dst_a, int dst_stride_a,
322  int width, int height);
323 
324 // Copy Y channel to Alpha of ARGB.
326 int ARGBCopyYToAlpha(const uint8* src_y, int src_stride_y,
327  uint8* dst_argb, int dst_stride_argb,
328  int width, int height);
329 
330 typedef void (*ARGBBlendRow)(const uint8* src_argb0, const uint8* src_argb1,
331  uint8* dst_argb, int width);
332 
333 // Get function to Alpha Blend ARGB pixels and store to destination.
336 
337 // Alpha Blend ARGB images and store to destination.
338 // Source is pre-multiplied by alpha using ARGBAttenuate.
339 // Alpha of destination is set to 255.
341 int ARGBBlend(const uint8* src_argb0, int src_stride_argb0,
342  const uint8* src_argb1, int src_stride_argb1,
343  uint8* dst_argb, int dst_stride_argb,
344  int width, int height);
345 
346 // Alpha Blend plane and store to destination.
347 // Source is not pre-multiplied by alpha.
349 int BlendPlane(const uint8* src_y0, int src_stride_y0,
350  const uint8* src_y1, int src_stride_y1,
351  const uint8* alpha, int alpha_stride,
352  uint8* dst_y, int dst_stride_y,
353  int width, int height);
354 
355 // Alpha Blend YUV images and store to destination.
356 // Source is not pre-multiplied by alpha.
357 // Alpha is full width x height and subsampled to half size to apply to UV.
359 int I420Blend(const uint8* src_y0, int src_stride_y0,
360  const uint8* src_u0, int src_stride_u0,
361  const uint8* src_v0, int src_stride_v0,
362  const uint8* src_y1, int src_stride_y1,
363  const uint8* src_u1, int src_stride_u1,
364  const uint8* src_v1, int src_stride_v1,
365  const uint8* alpha, int alpha_stride,
366  uint8* dst_y, int dst_stride_y,
367  uint8* dst_u, int dst_stride_u,
368  uint8* dst_v, int dst_stride_v,
369  int width, int height);
370 
371 // Multiply ARGB image by ARGB image. Shifted down by 8. Saturates to 255.
373 int ARGBMultiply(const uint8* src_argb0, int src_stride_argb0,
374  const uint8* src_argb1, int src_stride_argb1,
375  uint8* dst_argb, int dst_stride_argb,
376  int width, int height);
377 
378 // Add ARGB image with ARGB image. Saturates to 255.
380 int ARGBAdd(const uint8* src_argb0, int src_stride_argb0,
381  const uint8* src_argb1, int src_stride_argb1,
382  uint8* dst_argb, int dst_stride_argb,
383  int width, int height);
384 
385 // Subtract ARGB image (argb1) from ARGB image (argb0). Saturates to 0.
387 int ARGBSubtract(const uint8* src_argb0, int src_stride_argb0,
388  const uint8* src_argb1, int src_stride_argb1,
389  uint8* dst_argb, int dst_stride_argb,
390  int width, int height);
391 
392 // Convert I422 to YUY2.
394 int I422ToYUY2(const uint8* src_y, int src_stride_y,
395  const uint8* src_u, int src_stride_u,
396  const uint8* src_v, int src_stride_v,
397  uint8* dst_frame, int dst_stride_frame,
398  int width, int height);
399 
400 // Convert I422 to UYVY.
402 int I422ToUYVY(const uint8* src_y, int src_stride_y,
403  const uint8* src_u, int src_stride_u,
404  const uint8* src_v, int src_stride_v,
405  uint8* dst_frame, int dst_stride_frame,
406  int width, int height);
407 
408 // Convert unattentuated ARGB to preattenuated ARGB.
410 int ARGBAttenuate(const uint8* src_argb, int src_stride_argb,
411  uint8* dst_argb, int dst_stride_argb,
412  int width, int height);
413 
414 // Convert preattentuated ARGB to unattenuated ARGB.
416 int ARGBUnattenuate(const uint8* src_argb, int src_stride_argb,
417  uint8* dst_argb, int dst_stride_argb,
418  int width, int height);
419 
420 // Internal function - do not call directly.
421 // Computes table of cumulative sum for image where the value is the sum
422 // of all values above and to the left of the entry. Used by ARGBBlur.
424 int ARGBComputeCumulativeSum(const uint8* src_argb, int src_stride_argb,
425  int32* dst_cumsum, int dst_stride32_cumsum,
426  int width, int height);
427 
428 // Blur ARGB image.
429 // dst_cumsum table of width * (height + 1) * 16 bytes aligned to
430 // 16 byte boundary.
431 // dst_stride32_cumsum is number of ints in a row (width * 4).
432 // radius is number of pixels around the center. e.g. 1 = 3x3. 2=5x5.
433 // Blur is optimized for radius of 5 (11x11) or less.
435 int ARGBBlur(const uint8* src_argb, int src_stride_argb,
436  uint8* dst_argb, int dst_stride_argb,
437  int32* dst_cumsum, int dst_stride32_cumsum,
438  int width, int height, int radius);
439 
440 // Multiply ARGB image by ARGB value.
442 int ARGBShade(const uint8* src_argb, int src_stride_argb,
443  uint8* dst_argb, int dst_stride_argb,
444  int width, int height, uint32 value);
445 
446 // Interpolate between two images using specified amount of interpolation
447 // (0 to 255) and store to destination.
448 // 'interpolation' is specified as 8 bit fraction where 0 means 100% src0
449 // and 255 means 1% src0 and 99% src1.
451 int InterpolatePlane(const uint8* src0, int src_stride0,
452  const uint8* src1, int src_stride1,
453  uint8* dst, int dst_stride,
454  int width, int height, int interpolation);
455 
456 // Interpolate between two ARGB images using specified amount of interpolation
457 // Internally calls InterpolatePlane with width * 4 (bpp).
459 int ARGBInterpolate(const uint8* src_argb0, int src_stride_argb0,
460  const uint8* src_argb1, int src_stride_argb1,
461  uint8* dst_argb, int dst_stride_argb,
462  int width, int height, int interpolation);
463 
464 // Interpolate between two YUV images using specified amount of interpolation
465 // Internally calls InterpolatePlane on each plane where the U and V planes
466 // are half width and half height.
468 int I420Interpolate(const uint8* src0_y, int src0_stride_y,
469  const uint8* src0_u, int src0_stride_u,
470  const uint8* src0_v, int src0_stride_v,
471  const uint8* src1_y, int src1_stride_y,
472  const uint8* src1_u, int src1_stride_u,
473  const uint8* src1_v, int src1_stride_v,
474  uint8* dst_y, int dst_stride_y,
475  uint8* dst_u, int dst_stride_u,
476  uint8* dst_v, int dst_stride_v,
477  int width, int height, int interpolation);
478 
479 #if defined(__pnacl__) || defined(__CLR_VER) || \
480  (defined(__i386__) && !defined(__SSE2__))
481 #define LIBYUV_DISABLE_X86
482 #endif
483 // MemorySanitizer does not support assembly code yet. http://crbug.com/344505
484 #if defined(__has_feature)
485 #if __has_feature(memory_sanitizer)
486 #define LIBYUV_DISABLE_X86
487 #endif
488 #endif
489 // The following are available on all x86 platforms:
490 #if !defined(LIBYUV_DISABLE_X86) && \
491  (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
492 #define HAS_ARGBAFFINEROW_SSE2
493 #endif
494 
495 // Row function for copying pixels from a source with a slope to a row
496 // of destination. Useful for scaling, rotation, mirror, texture mapping.
498 void ARGBAffineRow_C(const uint8* src_argb, int src_argb_stride,
499  uint8* dst_argb, const float* uv_dudv, int width);
501 void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride,
502  uint8* dst_argb, const float* uv_dudv, int width);
503 
504 // Shuffle ARGB channel order. e.g. BGRA to ARGB.
505 // shuffler is 16 bytes and must be aligned.
507 int ARGBShuffle(const uint8* src_bgra, int src_stride_bgra,
508  uint8* dst_argb, int dst_stride_argb,
509  const uint8* shuffler, int width, int height);
510 
511 // Sobel ARGB effect with planar output.
513 int ARGBSobelToPlane(const uint8* src_argb, int src_stride_argb,
514  uint8* dst_y, int dst_stride_y,
515  int width, int height);
516 
517 // Sobel ARGB effect.
519 int ARGBSobel(const uint8* src_argb, int src_stride_argb,
520  uint8* dst_argb, int dst_stride_argb,
521  int width, int height);
522 
523 // Sobel ARGB effect w/ Sobel X, Sobel, Sobel Y in ARGB.
525 int ARGBSobelXY(const uint8* src_argb, int src_stride_argb,
526  uint8* dst_argb, int dst_stride_argb,
527  int width, int height);
528 
529 #ifdef __cplusplus
530 } // extern "C"
531 } // namespace libyuv
532 #endif
533 
534 #endif // INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_
LIBYUV_API int ARGBSepia(uint8 *dst_argb, int dst_stride_argb, int x, int y, int width, int height)
Definition: planar_functions.cc:1713
LIBYUV_API int ARGBBlur(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int32 *dst_cumsum, int dst_stride32_cumsum, int width, int height, int radius)
Definition: planar_functions.cc:1962
LIBYUV_API int ARGBSobelXY(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:2465
LIBYUV_API int ARGBCopyYToAlpha(const uint8 *src_y, int src_stride_y, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:2745
LIBYUV_API int I400ToI400(const uint8 *src_y, int src_stride_y, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:198
EGLSurface EGLint EGLint EGLint EGLint height
Definition: eglext.h:950
LIBYUV_API int ARGBAdd(const uint8 *src_argb0, int src_stride_argb0, const uint8 *src_argb1, int src_stride_argb1, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1065
LIBYUV_API int I420Interpolate(const uint8 *src0_y, int src0_stride_y, const uint8 *src0_u, int src0_stride_u, const uint8 *src0_v, int src0_stride_v, const uint8 *src1_y, int src1_stride_y, const uint8 *src1_u, int src1_stride_u, const uint8 *src1_v, int src1_stride_v, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height, int interpolation)
Definition: planar_functions.cc:2190
uint8_t * dst_v
Definition: peerconnection_jni.cc:2274
LIBYUV_API int I400Mirror(const uint8 *src_y, int src_stride_y, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:660
jobject jint jint jint jobject jint dst_stride
Definition: peerconnection_jni.cc:2184
LIBYUV_API int ARGBSubtract(const uint8 *src_argb0, int src_stride_argb0, const uint8 *src_argb1, int src_stride_argb1, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1131
LIBYUV_API int BlendPlane(const uint8 *src_y0, int src_stride_y0, const uint8 *src_y1, int src_stride_y1, const uint8 *alpha, int alpha_stride, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:831
LIBYUV_API int RAWToRGB24(const uint8 *src_raw, int src_stride_raw, uint8 *dst_rgb24, int dst_stride_rgb24, int width, int height)
Definition: planar_functions.cc:1347
LIBYUV_API int ARGBSobel(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:2410
LIBYUV_API int HalfFloatPlane(const uint16 *src_y, int src_stride_y, uint16 *dst_y, int dst_stride_y, float scale, int width, int height)
Definition: planar_functions.cc:2539
EGLSurface EGLint EGLint EGLint width
Definition: eglext.h:950
LIBYUV_API int ARGBSobelToPlane(const uint8 *src_argb, int src_stride_argb, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:2437
LIBYUV_API void ARGBAffineRow_C(const uint8 *src_argb, int src_argb_stride, uint8 *dst_argb, const float *uv_dudv, int width)
Definition: row_common.cc:2054
LIBYUV_API int RGBColorTable(uint8 *dst_argb, int dst_stride_argb, const uint8 *table_argb, int x, int y, int width, int height)
Definition: planar_functions.cc:1856
uint8_t * dst_y
Definition: peerconnection_jni.cc:2270
signed char int8
Definition: basic_types.h:63
unsigned char uint8
Definition: basic_types.h:62
LIBYUV_API int YUY2ToI422(const uint8 *src_yuy2, int src_stride_yuy2, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:425
LIBYUV_API void SetPlane(uint8 *dst_y, int dst_stride_y, int width, int height, uint32 value)
Definition: planar_functions.cc:1396
LIBYUV_API void MergeUVPlane(const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_uv, int dst_stride_uv, int width, int height)
Definition: planar_functions.cc:306
LIBYUV_API int I420Blend(const uint8 *src_y0, int src_stride_y0, const uint8 *src_u0, int src_stride_u0, const uint8 *src_v0, int src_stride_v0, const uint8 *src_y1, int src_stride_y1, const uint8 *src_u1, int src_stride_u1, const uint8 *src_v1, int src_stride_v1, const uint8 *alpha, int alpha_stride, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:889
LIBYUV_API int ARGBCopy(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: convert_argb.cc:29
LIBYUV_API int UYVYToI422(const uint8 *src_uyvy, int src_stride_uyvy, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:510
LIBYUV_API int ARGBMirror(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:715
LIBYUV_API int ARGBColorTable(uint8 *dst_argb, int dst_stride_argb, const uint8 *table_argb, int x, int y, int width, int height)
Definition: planar_functions.cc:1824
LIBYUV_API int ARGBPolynomial(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, const float *poly, int width, int height)
Definition: planar_functions.cc:2492
void
Definition: AVFoundationCFSoftLinking.h:81
GLenum GLenum dst
Definition: gl2ext.h:304
LIBYUV_API int YUY2ToNV12(const uint8 *src_yuy2, int src_stride_yuy2, uint8 *dst_y, int dst_stride_y, uint8 *dst_uv, int dst_stride_uv, int width, int height)
Definition: planar_functions.cc:2797
LIBYUV_API int ARGBLumaColorTable(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, const uint8 *luma_rgb_table, int width, int height)
Definition: planar_functions.cc:2607
LIBYUV_API int ARGBExtractAlpha(const uint8 *src_argb, int src_stride_argb, uint8 *dst_a, int dst_stride_a, int width, int height)
Definition: planar_functions.cc:2696
LIBYUV_API void CopyPlane_16(const uint16 *src_y, int src_stride_y, uint16 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:88
EGLSurface EGLint x
Definition: eglext.h:950
LIBYUV_API int I422ToUYVY(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_frame, int dst_stride_frame, int width, int height)
Definition: convert_from.cc:243
LIBYUV_API int I444Copy(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:165
uint8_t * src_u
Definition: peerconnection_jni.cc:2263
LIBYUV_API int I422ToBGRA(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_bgra, int dst_stride_bgra, int width, int height)
Definition: planar_functions.cc:1274
EGLAttrib * value
Definition: eglext.h:120
LIBYUV_API int ARGBComputeCumulativeSum(const uint8 *src_argb, int src_stride_argb, int32 *dst_cumsum, int dst_stride32_cumsum, int width, int height)
Definition: planar_functions.cc:1932
void(* ARGBBlendRow)(const uint8 *src_argb0, const uint8 *src_argb1, uint8 *dst_argb, int width)
Definition: planar_functions.h:330
LIBYUV_API int I420Mirror(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:680
LIBYUV_API int YUY2ToY(const uint8 *src_yuy2, int src_stride_yuy2, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:595
LIBYUV_API int ARGBCopyAlpha(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:2647
LIBYUV_API int ARGBShade(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height, uint32 value)
Definition: planar_functions.cc:2066
uint8_t * src_y
Definition: peerconnection_jni.cc:2261
LIBYUV_API int ARGBRect(uint8 *dst_argb, int dst_stride_argb, int x, int y, int width, int height, uint32 value)
Definition: planar_functions.cc:1471
LIBYUV_API int ARGBAttenuate(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1531
EGLSurface EGLint EGLint y
Definition: eglext.h:950
LIBYUV_API int NV12ToRGB565(const uint8 *src_y, int src_stride_y, const uint8 *src_uv, int src_stride_uv, uint8 *dst_rgb565, int dst_stride_rgb565, int width, int height)
Definition: planar_functions.cc:1289
LIBYUV_API int ARGBInterpolate(const uint8 *src_argb0, int src_stride_argb0, const uint8 *src_argb1, int src_stride_argb1, uint8 *dst_argb, int dst_stride_argb, int width, int height, int interpolation)
Definition: planar_functions.cc:2178
GLfloat GLfloat GLfloat alpha
Definition: gl2.h:388
LIBYUV_API int ARGBUnattenuate(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1587
size_t dst_stride_v
Definition: peerconnection_jni.cc:2275
Definition: basictypes_test.cc:14
LIBYUV_API int InterpolatePlane(const uint8 *src0, int src_stride0, const uint8 *src1, int src_stride1, uint8 *dst, int dst_stride, int width, int height, int interpolation)
Definition: planar_functions.cc:2108
#define LIBYUV_API
Definition: basic_types.h:102
size_t dst_stride_u
Definition: peerconnection_jni.cc:2273
LIBYUV_API int RGBColorMatrix(uint8 *dst_argb, int dst_stride_argb, const int8 *matrix_rgb, int x, int y, int width, int height)
Definition: planar_functions.cc:1790
LIBYUV_API int I420Rect(uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int x, int y, int width, int height, int value_y, int value_u, int value_v)
Definition: planar_functions.cc:1443
unsigned short uint16
Definition: basic_types.h:60
LIBYUV_API void CopyPlane(const uint8 *src_y, int src_stride_y, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:29
LIBYUV_API int I422ToYUY2(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_frame, int dst_stride_frame, int width, int height)
Definition: convert_from.cc:127
LIBYUV_API void SplitUVPlane(const uint8 *src_uv, int src_stride_uv, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:238
uint8_t * dst_u
Definition: peerconnection_jni.cc:2272
LIBYUV_API int I422ToRGBA(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_rgba, int dst_stride_rgba, int width, int height)
Definition: planar_functions.cc:1259
LIBYUV_API int UYVYToNV12(const uint8 *src_uyvy, int src_stride_uyvy, uint8 *dst_y, int dst_stride_y, uint8 *dst_uv, int dst_stride_uv, int width, int height)
Definition: planar_functions.cc:2895
LIBYUV_API int ARGBColorMatrix(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, const int8 *matrix_argb, int width, int height)
Definition: planar_functions.cc:1747
uint32_t uint32
Definition: angle_config.h:28
LIBYUV_API int I420ToI400(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_y, int dst_stride_y, int width, int height)
Definition: planar_functions.cc:216
size_t dst_stride_y
Definition: peerconnection_jni.cc:2271
LIBYUV_API int ARGBShuffle(const uint8 *src_bgra, int src_stride_bgra, uint8 *dst_argb, int dst_stride_argb, const uint8 *shuffler, int width, int height)
Definition: planar_functions.cc:2225
LIBYUV_API int ARGBGrayTo(const uint8 *src_argb, int src_stride_argb, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1636
LIBYUV_API void ARGBAffineRow_SSE2(const uint8 *src_argb, int src_argb_stride, uint8 *dst_argb, const float *uv_dudv, int width)
LIBYUV_API ARGBBlendRow GetARGBBlend()
Definition: planar_functions.cc:776
uint8_t * src_v
Definition: peerconnection_jni.cc:2265
LIBYUV_API int I422ToABGR(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_abgr, int dst_stride_abgr, int width, int height)
Definition: convert_argb.cc:303
LIBYUV_API int ARGBGray(uint8 *dst_argb, int dst_stride_argb, int x, int y, int width, int height)
Definition: planar_functions.cc:1678
LIBYUV_API int ARGBMultiply(const uint8 *src_argb0, int src_stride_argb0, const uint8 *src_argb1, int src_stride_argb1, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:1004
LIBYUV_API int I422Copy(const uint8 *src_y, int src_stride_y, const uint8 *src_u, int src_stride_u, const uint8 *src_v, int src_stride_v, uint8 *dst_y, int dst_stride_y, uint8 *dst_u, int dst_stride_u, uint8 *dst_v, int dst_stride_v, int width, int height)
Definition: planar_functions.cc:131
LIBYUV_API int ARGBQuantize(uint8 *dst_argb, int dst_stride_argb, int scale, int interval_size, int interval_offset, int x, int y, int width, int height)
Definition: planar_functions.cc:1895
int32_t int32
Definition: angle_config.h:27
LIBYUV_API int ARGBBlend(const uint8 *src_argb0, int src_stride_argb0, const uint8 *src_argb1, int src_stride_argb1, uint8 *dst_argb, int dst_stride_argb, int width, int height)
Definition: planar_functions.cc:795