diff options
author | Yuan Tong <tongyuan200097@gmail.com> | 2021-02-25 15:21:28 +0800 |
---|---|---|
committer | Frank Barchard <fbarchard@chromium.org> | 2021-02-25 23:16:54 +0000 |
commit | a8c181050c202854ae32433164e6bd5d1e7c4368 (patch) | |
tree | c300dbf9bfa59d0dc2772c311b0dfd154e08d54a /include/libyuv/planar_functions.h | |
parent | 08815a29766a78398a8e2b9ed095280e9d0a73c2 (diff) | |
download | libyuv-a8c181050c202854ae32433164e6bd5d1e7c4368.tar.gz |
Add 10/12 bit YUV To YUV functions
The following functions (and their 12 bit variant) are added:
planar, 10->10:
I410ToI010, I210ToI010
planar, 10->8:
I410ToI444, I210ToI422
planar<->biplanar, 10->10:
I010ToP010, I210ToP210, I410ToP410
P010ToI010, P210ToI210, P410ToI410
R=fbarchard@chromium.org
Change-Id: I9aa2bafa0d6a6e1e38ce4e20cbb437e10f9b0158
Bug: libyuv:834, libyuv:873
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2709822
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'include/libyuv/planar_functions.h')
-rw-r--r-- | include/libyuv/planar_functions.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/libyuv/planar_functions.h b/include/libyuv/planar_functions.h index ce94e162..ebefb568 100644 --- a/include/libyuv/planar_functions.h +++ b/include/libyuv/planar_functions.h @@ -105,6 +105,50 @@ void MergeUVPlane(const uint8_t* src_u, int width, int height); +// Split interleaved msb UV plane into separate lsb U and V planes. +LIBYUV_API +void SplitUVPlane_16(const uint16_t* src_uv, + int src_stride_uv, + uint16_t* dst_u, + int dst_stride_u, + uint16_t* dst_v, + int dst_stride_v, + int width, + int height, + int depth); + +// Merge separate lsb U and V planes into one interleaved msb UV plane. +LIBYUV_API +void MergeUVPlane_16(const uint16_t* src_u, + int src_stride_u, + const uint16_t* src_v, + int src_stride_v, + uint16_t* dst_uv, + int dst_stride_uv, + int width, + int height, + int depth); + +// Convert lsb plane to msb plane +LIBYUV_API +void ConvertToMSBPlane_16(const uint16_t* src_y, + int src_stride_y, + uint16_t* dst_y, + int dst_stride_y, + int width, + int height, + int depth); + +// Convert msb plane to lsb plane +LIBYUV_API +void ConvertToLSBPlane_16(const uint16_t* src_y, + int src_stride_y, + uint16_t* dst_y, + int dst_stride_y, + int width, + int height, + int depth); + // Scale U and V to half width and height and merge into interleaved UV plane. // width and height are source size, allowing odd sizes. // Use for converting I444 or I422 to NV12. |