Merge "media: update c2 manifest xml"
diff --git a/conf_files/atoll/media_codecs.xml b/conf_files/atoll/media_codecs.xml
index 5ba36ab..3922409 100644
--- a/conf_files/atoll/media_codecs.xml
+++ b/conf_files/atoll/media_codecs.xml
@@ -202,7 +202,7 @@
             <Limit name="bitrate" range="1-2000000" />
             <Limit name="frame-rate" range="1-30" />
             <Limit name="concurrent-instances" max="16" />
-            <Limit name="performance-point-864x480" value="30" />
+            <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
              <Quirk name="requires-allocate-on-input-ports" />
@@ -215,7 +215,7 @@
              <Limit name="bitrate" range="1-8000000" />
              <Limit name="frame-rate" range="1-30" />
              <Limit name="concurrent-instances" max="16" />
-             <Limit name="performance-point-864x480" value="30" />
+             <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
     </Encoders>
     <Decoders>
@@ -371,7 +371,7 @@
              <Limit name="frame-rate" range="1-30" />
              <Feature name="adaptive-playback" />
              <Limit name="concurrent-instances" max="16" />
-             <Limit name="performance-point-864x480" value="30" />
+             <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
         <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
              <Quirk name="requires-allocate-on-input-ports" />
diff --git a/conf_files/atoll/media_codecs_performance.xml b/conf_files/atoll/media_codecs_performance.xml
index cec4bd9..bd31f08 100644
--- a/conf_files/atoll/media_codecs_performance.xml
+++ b/conf_files/atoll/media_codecs_performance.xml
@@ -32,16 +32,16 @@
             <Limit name="measured-frame-rate-720x480" range="121-121" />
             <Limit name="measured-frame-rate-1280x720" range="49-49" />
             <Limit name="measured-frame-rate-1920x1080" range="16-45" />
-            <Limit name="measured-frame-rate-3840x2160" range="6-24" />
+            <Limit name="measured-frame-rate-3840x2160" range="20-28" />
         </MediaCodec>
-        <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="303-303" />
-            <Limit name="measured-frame-rate-352x288" range="259-259" />
+        <MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
+            <Limit name="measured-frame-rate-176x144" range="79-117" />
+            <Limit name="measured-frame-rate-352x288" range="59-84" />
         </MediaCodec>
-        <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
-            <Limit name="measured-frame-rate-176x144" range="299-299" />
-            <Limit name="measured-frame-rate-352x288" range="245-245" />
-            <Limit name="measured-frame-rate-640x480" range="148-148" />
+        <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
+            <Limit name="measured-frame-rate-176x144" range="80-102" />
+            <Limit name="measured-frame-rate-352x288" range="55-79" />
+            <Limit name="measured-frame-rate-640x480" range="39-58" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
             <Limit name="measured-frame-rate-320x180" range="266-266" />
@@ -67,28 +67,50 @@
             <Limit name="measured-frame-rate-1280x720" range="17-24" />
             <Limit name="measured-frame-rate-1920x1080" range="8-12" />
         </MediaCodec>
+        <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="196-266" />
+            <Limit name="measured-frame-rate-720x480" range="64-92" />
+            <Limit name="measured-frame-rate-1280x720" range="38-60" />
+            <Limit name="measured-frame-rate-1920x1080" range="23-33" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="22-36" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
+            <Limit name="measured-frame-rate-176x144" range="215-333" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
+            <Limit name="measured-frame-rate-176x144" range="222-311" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="120-187" />
+            <Limit name="measured-frame-rate-640x360" range="87-123" />
+            <Limit name="measured-frame-rate-1280x720" range="21-31" />
+            <Limit name="measured-frame-rate-1920x1080" range="19-28" />
+        </MediaCodec>
     </Encoders>
     <Decoders>
         <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="221-221" />
-            <Limit name="measured-frame-rate-720x480" range="156-156" />
-            <Limit name="measured-frame-rate-1280x720" range="111-111" />
-            <Limit name="measured-frame-rate-1920x1088" range="71-71" />
+            <Limit name="measured-frame-rate-320x240" range="305-494" />
+            <Limit name="measured-frame-rate-720x480" range="310-488" />
+            <Limit name="measured-frame-rate-1280x720" range="177-275" />
+            <Limit name="measured-frame-rate-1920x1088" range="93-146" />
         </MediaCodec>
             <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
             <Limit name="measured-frame-rate-352x288" range="222-222" />
-            <Limit name="measured-frame-rate-720x480" range="165-165" />
-            <Limit name="measured-frame-rate-1280x720" range="88-88" />
-            <Limit name="measured-frame-rate-1920x1080" range="56-56" />
-            <Limit name="measured-frame-rate-3840x2160" range="12-12" />
+            <Limit name="measured-frame-rate-720x480" range="268-360" />
+            <Limit name="measured-frame-rate-1280x720" range="191-268" />
+            <Limit name="measured-frame-rate-1920x1080" range="94-147" />
+            <Limit name="measured-frame-rate-3840x2160" range="29-41" />
         </MediaCodec>
-        <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
+        <MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
             <Limit name="measured-frame-rate-176x144" range="356-356" />
             <Limit name="measured-frame-rate-352x288" range="292-292" />
         </MediaCodec>
-        <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
-            <Limit name="measured-frame-rate-176x144" range="146-146" />
-            <Limit name="measured-frame-rate-480x360" range="145-145" />
+        <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
+            <Limit name="measured-frame-rate-176x144" range="203-431" />
+            <Limit name="measured-frame-rate-480x360" range="190-450" />
+	    <Limit name="measured-frame-rate-1280x720" range="160-217" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
             <Limit name="measured-frame-rate-320x240" range="337-337" />
@@ -137,5 +159,36 @@
             <Limit name="measured-frame-rate-1280x720" range="32-40" />
             <Limit name="measured-frame-rate-1920x1080" range="19-23" />
         </MediaCodec>
+        <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="143-204" />
+            <Limit name="measured-frame-rate-720x480" range="48-76" />
+            <Limit name="measured-frame-rate-1280x720" range="20-29" />
+            <Limit name="measured-frame-rate-1920x1080" range="10-15" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
+            <Limit name="measured-frame-rate-352x288" range="120-290" />
+            <Limit name="measured-frame-rate-640x360" range="66-161" />
+            <Limit name="measured-frame-rate-720x480" range="99-142" />
+            <Limit name="measured-frame-rate-1280x720" range="51-73" />
+            <Limit name="measured-frame-rate-1920x1080" range="26-38" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
+            <Limit name="measured-frame-rate-176x144" range="333-920" />
+            <Limit name="measured-frame-rate-352x288" range="438-584" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
+            <Limit name="measured-frame-rate-176x144" range="554-876" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="514-727" />
+            <Limit name="measured-frame-rate-640x360" range="143-222" />
+            <Limit name="measured-frame-rate-1920x1080" range="22-31" />
+        </MediaCodec>
+        <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
+            <Limit name="measured-frame-rate-320x180" range="432-576" />
+            <Limit name="measured-frame-rate-640x360" range="126-179" />
+            <Limit name="measured-frame-rate-1280x720" range="39-75" />
+            <Limit name="measured-frame-rate-1920x1080" range="25-36" />
+        </MediaCodec>
     </Decoders>
 </MediaCodecs>
diff --git a/conf_files/atoll/media_codecs_vendor.xml b/conf_files/atoll/media_codecs_vendor.xml
index 3e4be53..7fea019 100644
--- a/conf_files/atoll/media_codecs_vendor.xml
+++ b/conf_files/atoll/media_codecs_vendor.xml
@@ -213,7 +213,7 @@
             <Limit name="bitrate" range="1-2000000" />
             <Limit name="frame-rate" range="1-30" />
             <Limit name="concurrent-instances" max="16" />
-            <Limit name="performance-point-864x480" value="30" />
+            <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
              <Quirk name="requires-allocate-on-input-ports" />
@@ -226,7 +226,7 @@
              <Limit name="bitrate" range="1-8000000" />
              <Limit name="frame-rate" range="1-30" />
              <Limit name="concurrent-instances" max="16" />
-             <Limit name="performance-point-864x480" value="30" />
+             <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
     </Encoders>
     <Decoders>
@@ -382,7 +382,7 @@
              <Limit name="frame-rate" range="1-30" />
              <Feature name="adaptive-playback" />
              <Limit name="concurrent-instances" max="16" />
-             <Limit name="performance-point-864x480" value="30" />
+             <Limit name="performance-point-720x480" value="30" />
         </MediaCodec>
         <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
              <Quirk name="requires-allocate-on-input-ports" />
diff --git a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml
index 185ed28..088c1bf 100644
--- a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml
+++ b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml
@@ -204,7 +204,7 @@
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports" />
             <Quirk name="requires-loaded-to-idle-after-allocation" />
-            <Limit name="size" min="512x512" max="4096x2160" />
+            <Limit name="size" min="512x512" max="8192x8192" />
             <Limit name="frame-rate" range="1-20" />
             <Limit name="concurrent-instances" max="6" />
             <Limit name="quality" range="0-100" default="80" />
diff --git a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml
index 185ed28..088c1bf 100644
--- a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml
+++ b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml
@@ -204,7 +204,7 @@
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports" />
             <Quirk name="requires-loaded-to-idle-after-allocation" />
-            <Limit name="size" min="512x512" max="4096x2160" />
+            <Limit name="size" min="512x512" max="8192x8192" />
             <Limit name="frame-rate" range="1-20" />
             <Limit name="concurrent-instances" max="6" />
             <Limit name="quality" range="0-100" default="80" />
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
index 57e66a0..7eb5bf1 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
@@ -248,8 +248,25 @@
         codec_type = OMX_VIDEO_CodingHEVC;
     } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.heic",    \
                 OMX_MAX_STRINGNAME_SIZE)) {
-        strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
-        codec_type = OMX_VIDEO_CodingImageHEIC;
+        char platform_name[PROP_VALUE_MAX] = {0};
+        char version[PROP_VALUE_MAX] = {0};
+        property_get("ro.board.platform", platform_name, "0");  //HW ID
+        if (!strcmp(platform_name, "sm6150"))
+        {
+            if (property_get("vendor.media.target.version", version, "0") &&
+                    (atoi(version) == 0))
+            {
+                //Sku version, HEIC is disabled on this target
+                DEBUG_PRINT_ERROR("heic encoder not supported on this target");
+                eRet = OMX_ErrorInvalidComponentName;
+            } else {
+                strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
+                codec_type = OMX_VIDEO_CodingImageHEIC;
+            }
+        } else {
+            strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
+            codec_type = OMX_VIDEO_CodingImageHEIC;
+        }
     } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.hevc.secure",    \
                 OMX_MAX_STRINGNAME_SIZE)) {
         strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
@@ -273,6 +290,11 @@
                 eRet = OMX_ErrorInvalidComponentName;
             }
         }
+        else if (!strcmp(platform_name, "atoll")) {
+            //TME is enabled on ATOLL
+            strlcpy((char *)m_cRole, "video_encoder.tme", OMX_MAX_STRINGNAME_SIZE);
+            codec_type = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingTME;
+        }
         else {
             DEBUG_PRINT_LOW("TME is not supported");
             eRet = OMX_ErrorInvalidComponentName;