Merge remote-tracking branch 'goog/qcom/release/LA.UM.9.12.C10.11.00.00.840.553' am: 6beb06813e am: e13ad5fc63

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/qcom/sm7250/media/+/22520306

Change-Id: Ic2731a547453eb1bd55a763cdaf058187f4b6f69
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/conf_files/bengal/media_codecs_performance.xml b/conf_files/bengal/media_codecs_performance.xml
index 3a03e15..49c9db1 100644
--- a/conf_files/bengal/media_codecs_performance.xml
+++ b/conf_files/bengal/media_codecs_performance.xml
@@ -163,6 +163,8 @@
         </MediaCodec>
         <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
             <Limit name="measured-frame-rate-176x144" range="406-543" />
+            <Limit name="measured-frame-rate-480x360" range="450-600" />
+            <Limit name="measured-frame-rate-1280x720" range="140-260" />
         </MediaCodec>
         <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
             <Limit name="measured-frame-rate-320x180" range="160-480" />
diff --git a/conf_files/bengal/media_codecs_vendor.xml b/conf_files/bengal/media_codecs_vendor.xml
index 53dafcc..26727f4 100644
--- a/conf_files/bengal/media_codecs_vendor.xml
+++ b/conf_files/bengal/media_codecs_vendor.xml
@@ -327,9 +327,9 @@
             <Limit name="size" min="2x2" max="1280x720" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="8x8" />
-            <Limit name="block-count" range="1-3600" />
-            <Limit name="blocks-per-second" range="1-108000" />
-            <Limit name="bitrate" range="1-2000000" />
+            <Limit name="block-count" range="1-14400" />
+            <Limit name="blocks-per-second" range="1-432000" />
+            <Limit name="bitrate" range="1-3000000" />
        </MediaCodec>
        <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
             <!-- profiles and levels:  ProfileHigh : Level51 -->
diff --git a/conf_files/bengal/media_codecs_vendor_khaje.xml b/conf_files/bengal/media_codecs_vendor_khaje.xml
index 237c78e..6550cb3 100644
--- a/conf_files/bengal/media_codecs_vendor_khaje.xml
+++ b/conf_files/bengal/media_codecs_vendor_khaje.xml
@@ -341,7 +341,7 @@
             <Limit name="block-size" value="8x8" />
             <Limit name="block-count" range="1-14400" />
             <Limit name="blocks-per-second" range="1-432000" />
-            <Limit name="bitrate" range="1-2000000" />
+            <Limit name="bitrate" range="1-3000000" />
        </MediaCodec>
        <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
             <!-- profiles and levels:  ProfileHigh : Level51 -->
diff --git a/conf_files/bengal/media_codecs_vendor_scuba_v0_32.xml b/conf_files/bengal/media_codecs_vendor_scuba_v0_32.xml
index b5b97c0..3f894be 100644
--- a/conf_files/bengal/media_codecs_vendor_scuba_v0_32.xml
+++ b/conf_files/bengal/media_codecs_vendor_scuba_v0_32.xml
@@ -278,9 +278,9 @@
             <Limit name="size" min="2x2" max="1280x720" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="8x8" />
-            <Limit name="block-count" range="1-3600" />
-            <Limit name="blocks-per-second" range="1-108000" />
-            <Limit name="bitrate" range="1-2000000" />
+            <Limit name="block-count" range="1-14400" />
+            <Limit name="blocks-per-second" range="1-432000" />
+            <Limit name="bitrate" range="1-3000000" />
        </MediaCodec>
        <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
             <!-- profiles and levels:  ProfileHigh : Level51 -->
diff --git a/conf_files/kona/media_codecs_performance.xml b/conf_files/kona/media_codecs_performance.xml
index 455f0ce..e2780b9 100644
--- a/conf_files/kona/media_codecs_performance.xml
+++ b/conf_files/kona/media_codecs_performance.xml
@@ -190,7 +190,7 @@
             <Limit name="measured-frame-rate-1280x720" range="300-600" />
         </MediaCodec>
         <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="650-770" />
+            <Limit name="measured-frame-rate-176x144" range="2195-2270" />
             <Limit name="measured-frame-rate-352x288" range="653-1526" />
         </MediaCodec>
         <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
diff --git a/media-prop/init.qti.media.sh b/media-prop/init.qti.media.sh
index e95e773..28b76a1 100644
--- a/media-prop/init.qti.media.sh
+++ b/media-prop/init.qti.media.sh
@@ -67,12 +67,12 @@
        esac
        ;;
    "kona")
-       if [ $build_codename -le "12" ]; then
+       if [ $build_codename -le "13" ]; then
            setprop vendor.netflix.bsp_rev "Q8250-19134-1"
        fi
        ;;
    "lito")
-       if [ $build_codename -le "12" ]; then
+       if [ $build_codename -le "13" ]; then
            setprop vendor.netflix.bsp_rev "Q7250-19133-1"
        fi
        ;;
diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
index 3530049..6f52170 100644
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
@@ -981,6 +981,9 @@
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     struct v4l2_queryctrl profile_cap, level_cap, tier_cap;
     int v4l2_profile;
+    char platform_name[PROP_VALUE_MAX] = {0};
+    char version[PROP_VALUE_MAX] = {0};
+
     int avc_profiles[5] = { QOMX_VIDEO_AVCProfileConstrainedBaseline,
                             QOMX_VIDEO_AVCProfileBaseline,
                             QOMX_VIDEO_AVCProfileMain,
@@ -1092,6 +1095,16 @@
         eRet = OMX_ErrorNoMore;
     }
 
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_HEVC) {
+        property_get("ro.board.platform", platform_name, "0");
+        if (!strncmp(platform_name, "lito", 4)) {
+            if (property_get("vendor.media.target.version", version, "0") && ((atoi(version) != 2) && (atoi(version) != 3))) {
+                DEBUG_PRINT_LOW("Disabling main10 and above for saipan");
+                m_disable_hdr = 0x2;
+            }
+        }
+    }
+
     if (m_disable_hdr & ENC_HDR_DISABLE_FLAG) {
         if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_HEVC) {
             if (profileLevelType->eProfile == OMX_VIDEO_HEVCProfileMain10 ||
@@ -2720,6 +2733,15 @@
                         DEBUG_PRINT_LOW("gralloc format 0x%x (%s) (%s)",
                             handle->format, grallocFormatStr, isUBWC ? "UBWC" : "Linear");
 
+                        if (m_codec == OMX_VIDEO_CodingHEVC && (handle->format == HAL_PIXEL_FORMAT_YCbCr_420_TP10_UBWC ||
+                            handle->format == HAL_PIXEL_FORMAT_YCbCr_420_P010_VENUS) &&
+                            codec_profile.profile != V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10)
+                            {
+                                if (!venc_set_profile (OMX_VIDEO_HEVCProfileMain10)) {
+                                    DEBUG_PRINT_ERROR("ERROR: Unsuccessful in updating Profile OMX_VIDEO_HEVCProfileMain10");
+                                    return false;
+                                }
+                            }
                         if (handle->format == HAL_PIXEL_FORMAT_NV12_ENCODEABLE) {
                             m_sVenc_cfg.inputformat = isUBWC ? V4L2_PIX_FMT_NV12_UBWC : V4L2_PIX_FMT_NV12;
                             DEBUG_PRINT_INFO("ENC_CONFIG: Input Color = NV12 %s", isUBWC ? "UBWC" : "Linear");