diff options
-rw-r--r-- | gralloc/gr_adreno_info.cpp | 4 | ||||
-rw-r--r-- | gralloc/gr_utils.cpp | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gralloc/gr_adreno_info.cpp b/gralloc/gr_adreno_info.cpp index 64c74c6d..d33f7db6 100644 --- a/gralloc/gr_adreno_info.cpp +++ b/gralloc/gr_adreno_info.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2018, 2020 The Linux Foundation. All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -214,6 +214,8 @@ ADRENOPIXELFORMAT AdrenoMemInfo::GetGpuPixelFormat(int hal_format) { return ADRENO_PIXELFORMAT_R16G16B16A16_FLOAT; case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: return ADRENO_PIXELFORMAT_NV12; + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: + return ADRENO_PIXELFORMAT_NV21; case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC: return ADRENO_PIXELFORMAT_NV12_EXT; diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp index 6eb414e2..b9ddcecb 100644 --- a/gralloc/gr_utils.cpp +++ b/gralloc/gr_utils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2020, The Linux Foundation. All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -47,6 +47,7 @@ bool IsYuvFormat(int format) { case HAL_PIXEL_FORMAT_YCbCr_422_SP: case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: // Same as YCbCr_420_SP_VENUS + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC: case HAL_PIXEL_FORMAT_YCrCb_420_SP: case HAL_PIXEL_FORMAT_YCrCb_422_SP: @@ -480,6 +481,7 @@ void GetYuvSPPlaneInfo(const BufferInfo &info, int format, uint32_t width, uint3 c_size = ALIGN(2 * ALIGN(unaligned_width / 2, 32) * ALIGN(unaligned_height / 2, 32), 4096); break; case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: c_height = VENUS_UV_SCANLINES(COLOR_FMT_NV21, height); c_size = c_stride * c_height; break; @@ -964,6 +966,7 @@ void GetAlignedWidthAndHeight(const BufferInfo &info, unsigned int *alignedw, aligned_h = INT(VENUS_Y_SCANLINES(COLOR_FMT_NV12, height)); break; case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: aligned_w = INT(VENUS_Y_STRIDE(COLOR_FMT_NV21, width)); aligned_h = INT(VENUS_Y_SCANLINES(COLOR_FMT_NV21, height)); break; @@ -1055,6 +1058,7 @@ int GetBufferLayout(private_handle_t *hnd, uint32_t stride[4], uint32_t offset[4 case HAL_PIXEL_FORMAT_YCrCb_420_SP: case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: case HAL_PIXEL_FORMAT_YCrCb_422_SP: + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: offset[1] = static_cast<uint32_t>(reinterpret_cast<uint64_t>(yuvInfo.cr) - hnd->base); break; case HAL_PIXEL_FORMAT_YV12: @@ -1286,6 +1290,7 @@ int GetYUVPlaneInfo(const BufferInfo &info, int32_t format, int32_t width, int32 case HAL_PIXEL_FORMAT_YCbCr_422_SP: case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: case HAL_PIXEL_FORMAT_NV12_HEIF: // Same as YCbCr_420_SP_VENUS case HAL_PIXEL_FORMAT_YCrCb_420_SP: case HAL_PIXEL_FORMAT_YCrCb_422_SP: @@ -1502,6 +1507,7 @@ void GetYuvSubSamplingFactor(int32_t format, int *h_subsampling, int *v_subsampl case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: case HAL_PIXEL_FORMAT_YCrCb_420_SP: case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: // Same as YCbCr_420_SP_VENUS + case HAL_PIXEL_FORMAT_NV21_ENCODEABLE: case HAL_PIXEL_FORMAT_NV21_ZSL: case HAL_PIXEL_FORMAT_YV12: *h_subsampling = 1; |