1ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian/* 2ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * 4ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * Use of this source code is governed by a BSD-style license 5ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * that can be found in the LICENSE file in the root of the source 6ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * tree. An additional intellectual property rights grant can be found 7ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * in the file PATENTS. All contributing project authors may 8ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian * be found in the AUTHORS file in the root of the source tree. 9ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian */ 10ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 11ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#ifndef INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ // NOLINT 12ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#define INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ 13ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 14ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#include "libyuv/basic_types.h" 15ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 16ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#ifdef __cplusplus 17ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramaniannamespace libyuv { 18ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianextern "C" { 19ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#endif 20ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 21ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Copy ARGB to ARGB. 22ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#define ARGBToARGB ARGBCopy 23ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 24ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBCopy(const uint8* src_argb, int src_stride_argb, 25ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_argb, int dst_stride_argb, 26ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 27ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 28ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To BGRA. 29ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 30ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToBGRA(const uint8* src_argb, int src_stride_argb, 31ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_bgra, int dst_stride_bgra, 32ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 33ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 34ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To ABGR. 35ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 36ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToABGR(const uint8* src_argb, int src_stride_argb, 37ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_abgr, int dst_stride_abgr, 38ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 39ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 40ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To RGBA. 41ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 42ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToRGBA(const uint8* src_argb, int src_stride_argb, 43ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_rgba, int dst_stride_rgba, 44ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 45ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 46ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To RGB24. 47ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 48ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToRGB24(const uint8* src_argb, int src_stride_argb, 49ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_rgb24, int dst_stride_rgb24, 50ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 51ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 52ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To RAW. 53ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 54ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToRAW(const uint8* src_argb, int src_stride_argb, 55ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_rgb, int dst_stride_rgb, 56ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 57ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 58ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To RGB565. 59ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 60ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToRGB565(const uint8* src_argb, int src_stride_argb, 61ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_rgb565, int dst_stride_rgb565, 62ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 63ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 64ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To ARGB1555. 65ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 66ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToARGB1555(const uint8* src_argb, int src_stride_argb, 67ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_argb1555, int dst_stride_argb1555, 68ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 69ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 70ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To ARGB4444. 71ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 72ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToARGB4444(const uint8* src_argb, int src_stride_argb, 73ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_argb4444, int dst_stride_argb4444, 74ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 75ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 76ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To I444. 77ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 78ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToI444(const uint8* src_argb, int src_stride_argb, 79ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 80ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_u, int dst_stride_u, 81ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_v, int dst_stride_v, 82ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 83ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 84ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To I422. 85ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 86ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToI422(const uint8* src_argb, int src_stride_argb, 87ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 88ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_u, int dst_stride_u, 89ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_v, int dst_stride_v, 90ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 91ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 92ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To I420. (also in convert.h) 93ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 94ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToI420(const uint8* src_argb, int src_stride_argb, 95ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 96ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_u, int dst_stride_u, 97ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_v, int dst_stride_v, 98ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 99ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 100ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB to J420. (JPeg full range I420). 101ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 102ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToJ420(const uint8* src_argb, int src_stride_argb, 103ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_yj, int dst_stride_yj, 104ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_u, int dst_stride_u, 105ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_v, int dst_stride_v, 106ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 107ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 108ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To I411. 109ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 110ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToI411(const uint8* src_argb, int src_stride_argb, 111ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 112ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_u, int dst_stride_u, 113ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_v, int dst_stride_v, 114ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 115ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 116ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB to J400. (JPeg full range). 117ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 118ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToJ400(const uint8* src_argb, int src_stride_argb, 119ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_yj, int dst_stride_yj, 120ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 121ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 122ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB to I400. 123ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 124ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToI400(const uint8* src_argb, int src_stride_argb, 125ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 126ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 127ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 128ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To NV12. 129ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 130ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToNV12(const uint8* src_argb, int src_stride_argb, 131ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 132ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_uv, int dst_stride_uv, 133ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 134ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 135ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To NV21. 136ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 137ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToNV21(const uint8* src_argb, int src_stride_argb, 138ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 139ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_vu, int dst_stride_vu, 140ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 141ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 142ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To NV21. 143ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 144ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToNV21(const uint8* src_argb, int src_stride_argb, 145ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_y, int dst_stride_y, 146ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_vu, int dst_stride_vu, 147ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 148ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 149ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To YUY2. 150ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 151ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToYUY2(const uint8* src_argb, int src_stride_argb, 152ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_yuy2, int dst_stride_yuy2, 153ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 154ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 155ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian// Convert ARGB To UYVY. 156ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianLIBYUV_API 157ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianint ARGBToUYVY(const uint8* src_argb, int src_stride_argb, 158ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian uint8* dst_uyvy, int dst_stride_uyvy, 159ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian int width, int height); 160ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 161ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#ifdef __cplusplus 162ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian} // extern "C" 163ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian} // namespace libyuv 164ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#endif 165ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian 166ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian#endif // INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_ NOLINT 167