Merge "gralloc: Add support for new camera FLEX formats"
diff --git a/gralloc/gr_camera_info.cpp b/gralloc/gr_camera_info.cpp
index 99f3851..12ec3db 100644
--- a/gralloc/gr_camera_info.cpp
+++ b/gralloc/gr_camera_info.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-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
@@ -109,6 +109,15 @@
     case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX:
       format = CAMERA_PIXEL_FORMAT_UBWC_FLEX;
       break;
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_2_BATCH:
+      format = CAMERA_PIXEL_FORMAT_UBWC_FLEX_2_BATCH;
+      break;
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_4_BATCH:
+      format = CAMERA_PIXEL_FORMAT_UBWC_FLEX_4_BATCH;
+      break;
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_8_BATCH:
+      format = CAMERA_PIXEL_FORMAT_UBWC_FLEX_8_BATCH;
+      break;
     case HAL_PIXEL_FORMAT_MULTIPLANAR_FLEX:
       format = CAMERA_PIXEL_FORMAT_MULTIPLANAR_FLEX;
       break;
diff --git a/gralloc/gr_camera_info.h b/gralloc/gr_camera_info.h
index fe4d357..28e02b0 100644
--- a/gralloc/gr_camera_info.h
+++ b/gralloc/gr_camera_info.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-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
@@ -51,8 +51,14 @@
                                          // individual APIs
   CAMERA_PIXEL_FORMAT_UBWC_FLEX = 0x126,  // YUV format with fliexible alignment defined by
                                           // individual APIs
-  CAMERA_PIXEL_FORMAT_MULTIPLANAR_FLEX = 0x127,  // YUV format with fliexible alignment defined by
-                                                 // individual APIs
+  CAMERA_PIXEL_FORMAT_MULTIPLANAR_FLEX = 0x127,   // YUV format with fliexible alignment defined by
+                                                  // individual APIs
+  CAMERA_PIXEL_FORMAT_UBWC_FLEX_2_BATCH = 0x128,  // YUV format with fliexible alignment defined by
+                                                  // individual APIs
+  CAMERA_PIXEL_FORMAT_UBWC_FLEX_4_BATCH = 0x129,  // YUV format with fliexible alignment defined by
+                                                  // individual APIs
+  CAMERA_PIXEL_FORMAT_UBWC_FLEX_8_BATCH = 0x130,  // YUV format with fliexible alignment defined by
+                                                  // individual APIs
   CAMERA_PIXEL_FORMAT_NV12_VENUS = 0x7FA30C04,           // NV12 video format
   CAMERA_PIXEL_FORMAT_NV12_HEIF = 0x00000116,            // HEIF video YUV420 format
   CAMERA_PIXEL_FORMAT_YCbCr_420_SP_UBWC = 0x7FA30C06,    // 8 bit YUV 420 semi-planar UBWC format
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index 79e5d3a..07ad9e2 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -72,6 +72,9 @@
     case HAL_PIXEL_FORMAT_CbYCrY_422_I:
     case HAL_PIXEL_FORMAT_NV12_LINEAR_FLEX :
     case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_2_BATCH:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_4_BATCH:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_8_BATCH:
     case HAL_PIXEL_FORMAT_MULTIPLANAR_FLEX:
       return true;
     default:
@@ -153,6 +156,9 @@
     case HAL_PIXEL_FORMAT_NV21_ZSL:
     case HAL_PIXEL_FORMAT_NV12_LINEAR_FLEX:
     case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_2_BATCH:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_4_BATCH:
+    case HAL_PIXEL_FORMAT_NV12_UBWC_FLEX_8_BATCH:
     case HAL_PIXEL_FORMAT_MULTIPLANAR_FLEX:
     case HAL_PIXEL_FORMAT_RAW_OPAQUE:
     case HAL_PIXEL_FORMAT_RAW10: