141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org/* 241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Copyright 2012 The LibYuv Project Authors. All rights reserved. 341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * 441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Use of this source code is governed by a BSD-style license 541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * that can be found in the LICENSE file in the root of the source 641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * tree. An additional intellectual property rights grant can be found 741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * in the file PATENTS. All contributing project authors may 841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * be found in the AUTHORS file in the root of the source tree. 941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org */ 1041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifndef INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ // NOLINT 1241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#define INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ 1341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#include "libyuv/basic_types.h" 1541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 1741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgnamespace libyuv { 1841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgextern "C" { 1941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 2041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Copy ARGB to ARGB. 2241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#define ARGBToARGB ARGBCopy 2341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 2441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBCopy(const uint8* src_argb, int src_stride_argb, 2541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb, int dst_stride_argb, 2641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 2741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To BGRA. 2941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 3041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToBGRA(const uint8* src_argb, int src_stride_argb, 3141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_bgra, int dst_stride_bgra, 3241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 3341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 3441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To ABGR. 3541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 3641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToABGR(const uint8* src_argb, int src_stride_argb, 3741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_abgr, int dst_stride_abgr, 3841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 3941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 4041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To RGBA. 4141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 4241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToRGBA(const uint8* src_argb, int src_stride_argb, 4341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_rgba, int dst_stride_rgba, 4441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 4541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 4641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To RGB24. 4741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 4841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToRGB24(const uint8* src_argb, int src_stride_argb, 4941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_rgb24, int dst_stride_rgb24, 5041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 5141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To RAW. 5341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 5441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToRAW(const uint8* src_argb, int src_stride_argb, 5541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_rgb, int dst_stride_rgb, 5641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 5741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To RGB565. 5941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 6041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToRGB565(const uint8* src_argb, int src_stride_argb, 6141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_rgb565, int dst_stride_rgb565, 6241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 6341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 6441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To ARGB1555. 6541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 6641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToARGB1555(const uint8* src_argb, int src_stride_argb, 6741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb1555, int dst_stride_argb1555, 6841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 6941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 7041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To ARGB4444. 7141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 7241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToARGB4444(const uint8* src_argb, int src_stride_argb, 7341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb4444, int dst_stride_argb4444, 7441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 7541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 7641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To I444. 7741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 7841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToI444(const uint8* src_argb, int src_stride_argb, 7941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 8041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_u, int dst_stride_u, 8141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_v, int dst_stride_v, 8241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 8341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 8441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To I422. 8541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 8641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToI422(const uint8* src_argb, int src_stride_argb, 8741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 8841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_u, int dst_stride_u, 8941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_v, int dst_stride_v, 9041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 9141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 9241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To I420. (also in convert.h) 9341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 9441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToI420(const uint8* src_argb, int src_stride_argb, 9541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 9641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_u, int dst_stride_u, 9741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_v, int dst_stride_v, 9841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 9941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 10041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB to J420. (JPeg full range I420). 10141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 10241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToJ420(const uint8* src_argb, int src_stride_argb, 10341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_yj, int dst_stride_yj, 10441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_u, int dst_stride_u, 10541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_v, int dst_stride_v, 10641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 10741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 10841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To I411. 10941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 11041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToI411(const uint8* src_argb, int src_stride_argb, 11141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 11241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_u, int dst_stride_u, 11341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_v, int dst_stride_v, 11441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 11541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 11641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB to J400. (JPeg full range). 11741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 11841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToJ400(const uint8* src_argb, int src_stride_argb, 11941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_yj, int dst_stride_yj, 12041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 12141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 12241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB to I400. 12341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 12441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToI400(const uint8* src_argb, int src_stride_argb, 12541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 12641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 12741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 12841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To NV12. 12941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 13041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToNV12(const uint8* src_argb, int src_stride_argb, 13141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 13241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_uv, int dst_stride_uv, 13341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 13441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 13541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To NV21. 13641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 13741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToNV21(const uint8* src_argb, int src_stride_argb, 13841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 13941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_vu, int dst_stride_vu, 14041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 14141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 14241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To NV21. 14341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 14441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToNV21(const uint8* src_argb, int src_stride_argb, 14541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_y, int dst_stride_y, 14641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_vu, int dst_stride_vu, 14741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 14841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 14941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To YUY2. 15041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 15141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToYUY2(const uint8* src_argb, int src_stride_argb, 15241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_yuy2, int dst_stride_yuy2, 15341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 15441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 15541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Convert ARGB To UYVY. 15641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 15741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBToUYVY(const uint8* src_argb, int src_stride_argb, 15841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_uyvy, int dst_stride_uyvy, 15941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 16041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 16141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 16241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // extern "C" 16341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // namespace libyuv 16441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 16541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 16641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif // INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ NOLINT 167