summaryrefslogtreecommitdiff
path: root/libacryl
diff options
context:
space:
mode:
authorMidas Chien <midaschieh@google.com>2021-05-19 22:11:24 +0800
committerYichi Chen <yichichen@google.com>2022-01-14 07:25:46 +0000
commit298f810a5741f4d5bd96fc1f773ec37d715a476c (patch)
tree83e0c0b1ae785dec5ca253d47ec1642d92ed92ea /libacryl
parentf1363d15139c9d5e0ed9935676254b10a5c3752e (diff)
libacryl: add support for MALI_GRALLOC_FORMAT_INTERNAL_YUV420
support for MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I and MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I. Bug: 175554638 Bug: 188647138 Test: play afbc av1 by g2d Change-Id: Ic1dcba52512d18e5517689b415a600e836f73d7f
Diffstat (limited to 'libacryl')
-rw-r--r--libacryl/Android.mk3
-rw-r--r--libacryl/acrylic_factory.cpp12
-rw-r--r--libacryl/acrylic_formats.cpp6
-rw-r--r--libacryl/acrylic_g2d.cpp3
4 files changed, 16 insertions, 8 deletions
diff --git a/libacryl/Android.mk b/libacryl/Android.mk
index ad3178d..abbc2f2 100644
--- a/libacryl/Android.mk
+++ b/libacryl/Android.mk
@@ -35,7 +35,7 @@ else
LOCAL_CFLAGS += -DLIBACRYL_DEFAULT_BLTER=\"no_default_blter\"
endif
-LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libion_google
+LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libion_google android.hardware.graphics.common-V3-ndk
ifdef BOARD_LIBACRYL_G2D_HDR_PLUGIN
LOCAL_SHARED_LIBRARIES += $(BOARD_LIBACRYL_G2D_HDR_PLUGIN)
LOCAL_CFLAGS += -DLIBACRYL_G2D_HDR_PLUGIN
@@ -43,6 +43,7 @@ endif
LOCAL_HEADER_LIBRARIES += google_libacryl_hdrplugin_headers
LOCAL_HEADER_LIBRARIES += google_hal_headers
+LOCAL_HEADER_LIBRARIES += libgralloc_headers
LOCAL_C_INCLUDES := $(LOCAL_PATH)/local_include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
diff --git a/libacryl/acrylic_factory.cpp b/libacryl/acrylic_factory.cpp
index 31f132c..7242ecd 100644
--- a/libacryl/acrylic_factory.cpp
+++ b/libacryl/acrylic_factory.cpp
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-#include <cstring>
-
#include <log/log.h>
-
+#include <mali_gralloc_formats.h>
#include <exynos_format.h> // hardware/smasung_slsi/exynos/include
-#include "acrylic_internal.h"
+#include <cstring>
+
#include "acrylic_g2d.h"
+#include "acrylic_internal.h"
static uint32_t all_fimg2d_gs101_formats[] = {
HAL_PIXEL_FORMAT_RGBA_8888,
@@ -37,12 +37,14 @@ static uint32_t all_fimg2d_gs101_formats[] = {
HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL, // NV21 on multi-buffer
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, // NV12 (YUV420 semi-planar)
HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, // NV12 (YUV420 semi-planar)
+ MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, // NV12 AFBC
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, // NV12 with MFC alignment constraints
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, // NV12M with MFC alignment constraints on multi-buffer
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, // NV12M with MFC alignment constraints on multi-buffer
HAL_PIXEL_FORMAT_YCbCr_422_SP, // YUV422 2P (YUV422 semi-planar)
HAL_PIXEL_FORMAT_YCBCR_P010,
HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B,
+ MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC,
@@ -65,12 +67,14 @@ static uint32_t all_fimg2d_gs201_formats[] = {
HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL, // NV21 on multi-buffer
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, // NV12 (YUV420 semi-planar)
HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, // NV12 (YUV420 semi-planar)
+ MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, // NV12 AFBC
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, // NV12 with MFC alignment constraints
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, // NV12M with MFC alignment constraints on multi-buffer
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, // NV12M with MFC alignment constraints on multi-buffer
HAL_PIXEL_FORMAT_YCbCr_422_SP, // YUV422 2P (YUV422 semi-planar)
HAL_PIXEL_FORMAT_YCBCR_P010,
HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B,
+ MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC,
HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC,
diff --git a/libacryl/acrylic_formats.cpp b/libacryl/acrylic_formats.cpp
index 38850c2..9654de0 100644
--- a/libacryl/acrylic_formats.cpp
+++ b/libacryl/acrylic_formats.cpp
@@ -16,12 +16,10 @@
*/
#include <linux/videodev2.h>
-
#include <log/log.h>
+#include <mali_gralloc_formats.h>
#include <system/graphics.h>
-
#include <exynos_format.h> // hardware/smasung_slsi/exynos/include
-
#include "acrylic_internal.h"
#define V4L2_PIX_FMT_NV12N v4l2_fourcc('N', 'N', '1', '2')
@@ -167,12 +165,14 @@ static struct {
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_TILED, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
+ {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_TILED, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2},
{HAL_PIXEL_FORMAT_YCBCR_P010, 1, 0x22, {24, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, 2, 0x22, {16, 8, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2},
{HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, 1, 0x22, {24, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2},
+ {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, 1, 0x22, {15, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 2},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_10B_SBWC, 2, 0x22, {16, 8, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_10B_SBWC, 2},
diff --git a/libacryl/acrylic_g2d.cpp b/libacryl/acrylic_g2d.cpp
index b8b8dfc..f3f4567 100644
--- a/libacryl/acrylic_g2d.cpp
+++ b/libacryl/acrylic_g2d.cpp
@@ -23,6 +23,7 @@
#include <exynos_format.h> // hardware/smasung_slsi/exynos/include
#include <hardware/hwcomposer2.h>
#include <log/log.h>
+#include <mali_gralloc_formats.h>
#include <sys/ioctl.h>
#include <system/graphics.h>
#include <utils/Trace.h>
@@ -502,8 +503,10 @@ static g2d_fmt __halfmt_to_g2dfmt[] = {
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, G2D_FMT_NV12, 2, 0},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, G2D_FMT_NV12, 1, 0},
{HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, G2D_FMT_NV12, 1, 0},
+ {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, G2D_FMT_NV12, 1, 0},
{HAL_PIXEL_FORMAT_YCBCR_P010, G2D_FMT_NV12_P010, 1, 0},
{HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, G2D_FMT_NV12_P010, 1, 0},
+ {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, G2D_FMT_NV12_P010, 1, 0},
{HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, G2D_FMT_NV12_P010, 2, 0},
{HAL_PIXEL_FORMAT_YCbCr_422_I, G2D_FMT_YUYV, 1, 0},
{HAL_PIXEL_FORMAT_EXYNOS_YCrCb_422_I, G2D_FMT_YVYU, 1, 0},