sharpyuv: add support for 10/12/16 bit rgb and 10/12 bit yuv.

10bit+ input is truncated to 10bits for now.

Change-Id: I7ac00ca54c623d94c76ccd8954418e11095997d2
This commit is contained in:
Maryla
2022-05-17 15:02:31 +02:00
parent d3006f4b96
commit 93c5437115
9 changed files with 348 additions and 190 deletions

View File

@ -191,10 +191,10 @@ static int PreprocessARGB(const uint8_t* r_ptr,
int step, int rgb_stride,
WebPPicture* const picture) {
const int ok = SharpYuvConvert(
r_ptr, g_ptr, b_ptr, step, rgb_stride, picture->y, picture->y_stride,
picture->u, picture->uv_stride, picture->v, picture->uv_stride,
picture->width, picture->height,
SharpYuvGetConversionMatrix(kSharpYuvMatrixWebp));
r_ptr, g_ptr, b_ptr, step, rgb_stride, /*rgb_bit_depth=*/8,
picture->y, picture->y_stride, picture->u, picture->uv_stride, picture->v,
picture->uv_stride, /*yuv_bit_depth=*/8, picture->width,
picture->height, SharpYuvGetConversionMatrix(kSharpYuvMatrixWebp));
if (!ok) {
return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
}