diff options
Diffstat (limited to 'files/include/libyuv/convert_from.h')
-rw-r--r-- | files/include/libyuv/convert_from.h | 273 |
1 files changed, 169 insertions, 104 deletions
diff --git a/files/include/libyuv/convert_from.h b/files/include/libyuv/convert_from.h index 528d8dda..861418d0 100644 --- a/files/include/libyuv/convert_from.h +++ b/files/include/libyuv/convert_from.h @@ -21,218 +21,257 @@ extern "C" { // See Also convert.h for conversions from formats to I420. -// I420Copy in convert to I420ToI420. +// Convert 8 bit YUV to 10 bit. +#define H420ToH010 I420ToI010 +int I420ToI010(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_u, + int src_stride_u, + const uint8_t* src_v, + int src_stride_v, + uint16_t* dst_y, + int dst_stride_y, + uint16_t* dst_u, + int dst_stride_u, + uint16_t* dst_v, + int dst_stride_v, + int width, + int height); LIBYUV_API -int I420ToI422(const uint8* src_y, +int I420ToI422(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_y, + uint8_t* dst_y, int dst_stride_y, - uint8* dst_u, + uint8_t* dst_u, int dst_stride_u, - uint8* dst_v, + uint8_t* dst_v, int dst_stride_v, int width, int height); LIBYUV_API -int I420ToI444(const uint8* src_y, +int I420ToI444(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_y, + uint8_t* dst_y, int dst_stride_y, - uint8* dst_u, + uint8_t* dst_u, int dst_stride_u, - uint8* dst_v, + uint8_t* dst_v, int dst_stride_v, int width, int height); // Copy to I400. Source can be I420, I422, I444, I400, NV12 or NV21. LIBYUV_API -int I400Copy(const uint8* src_y, +int I400Copy(const uint8_t* src_y, int src_stride_y, - uint8* dst_y, + uint8_t* dst_y, int dst_stride_y, int width, int height); LIBYUV_API -int I420ToNV12(const uint8* src_y, +int I420ToNV12(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_y, + uint8_t* dst_y, int dst_stride_y, - uint8* dst_uv, + uint8_t* dst_uv, int dst_stride_uv, int width, int height); LIBYUV_API -int I420ToNV21(const uint8* src_y, +int I420ToNV21(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_y, + uint8_t* dst_y, int dst_stride_y, - uint8* dst_vu, + uint8_t* dst_vu, int dst_stride_vu, int width, int height); LIBYUV_API -int I420ToYUY2(const uint8* src_y, +int I420ToYUY2(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_yuy2, + int dst_stride_yuy2, int width, int height); LIBYUV_API -int I420ToUYVY(const uint8* src_y, +int I420ToUYVY(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_uyvy, + int dst_stride_uyvy, int width, int height); LIBYUV_API -int I420ToARGB(const uint8* src_y, +int I420ToARGB(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_argb, + uint8_t* dst_argb, int dst_stride_argb, int width, int height); LIBYUV_API -int I420ToBGRA(const uint8* src_y, +int I420ToBGRA(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_argb, - int dst_stride_argb, + uint8_t* dst_bgra, + int dst_stride_bgra, int width, int height); LIBYUV_API -int I420ToABGR(const uint8* src_y, +int I420ToABGR(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_argb, - int dst_stride_argb, + uint8_t* dst_abgr, + int dst_stride_abgr, int width, int height); LIBYUV_API -int I420ToRGBA(const uint8* src_y, +int I420ToRGBA(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_rgba, + uint8_t* dst_rgba, int dst_stride_rgba, int width, int height); LIBYUV_API -int I420ToRGB24(const uint8* src_y, +int I420ToRGB24(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_u, + int src_stride_u, + const uint8_t* src_v, + int src_stride_v, + uint8_t* dst_rgb24, + int dst_stride_rgb24, + int width, + int height); + +LIBYUV_API +int I420ToRAW(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_u, + int src_stride_u, + const uint8_t* src_v, + int src_stride_v, + uint8_t* dst_raw, + int dst_stride_raw, + int width, + int height); + +LIBYUV_API +int H420ToRGB24(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_rgb24, + int dst_stride_rgb24, int width, int height); LIBYUV_API -int I420ToRAW(const uint8* src_y, +int H420ToRAW(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_raw, + int dst_stride_raw, int width, int height); LIBYUV_API -int I420ToRGB565(const uint8* src_y, +int I420ToRGB565(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_rgb565, + int dst_stride_rgb565, int width, int height); LIBYUV_API -int J420ToRGB565(const uint8* src_y, +int J420ToRGB565(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_rgb565, + int dst_stride_rgb565, int width, int height); LIBYUV_API -int H420ToRGB565(const uint8* src_y, +int H420ToRGB565(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_rgb565, + int dst_stride_rgb565, int width, int height); LIBYUV_API -int I422ToRGB565(const uint8* src_y, +int I422ToRGB565(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_rgb565, + int dst_stride_rgb565, int width, int height); @@ -241,57 +280,83 @@ int I422ToRGB565(const uint8* src_y, // The order of the dither matrix is first byte is upper left. LIBYUV_API -int I420ToRGB565Dither(const uint8* src_y, +int I420ToRGB565Dither(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, - const uint8* dither4x4, + uint8_t* dst_rgb565, + int dst_stride_rgb565, + const uint8_t* dither4x4, int width, int height); LIBYUV_API -int I420ToARGB1555(const uint8* src_y, +int I420ToARGB1555(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_argb1555, + int dst_stride_argb1555, int width, int height); LIBYUV_API -int I420ToARGB4444(const uint8* src_y, +int I420ToARGB4444(const uint8_t* src_y, int src_stride_y, - const uint8* src_u, + const uint8_t* src_u, int src_stride_u, - const uint8* src_v, + const uint8_t* src_v, int src_stride_v, - uint8* dst_frame, - int dst_stride_frame, + uint8_t* dst_argb4444, + int dst_stride_argb4444, int width, int height); +// Convert I420 to AR30. +LIBYUV_API +int I420ToAR30(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_u, + int src_stride_u, + const uint8_t* src_v, + int src_stride_v, + uint8_t* dst_ar30, + int dst_stride_ar30, + int width, + int height); + +// Convert H420 to AR30. +LIBYUV_API +int H420ToAR30(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_u, + int src_stride_u, + const uint8_t* src_v, + int src_stride_v, + uint8_t* dst_ar30, + int dst_stride_ar30, + int width, + int height); + // Convert I420 to specified format. // "dst_sample_stride" is bytes in a row for the destination. Pass 0 if the // buffer has contiguous rows. Can be negative. A multiple of 16 is optimal. LIBYUV_API -int ConvertFromI420(const uint8* y, +int ConvertFromI420(const uint8_t* y, int y_stride, - const uint8* u, + const uint8_t* u, int u_stride, - const uint8* v, + const uint8_t* v, int v_stride, - uint8* dst_sample, + uint8_t* dst_sample, int dst_sample_stride, int width, int height, - uint32 format); + uint32_t fourcc); #ifdef __cplusplus } // extern "C" |