chipset-apl: enable vp8/vp9 hardware decoder for ARC++

Performance data is obtained from santa (coral) and pyro (reef).
Adjusted some existing performance range which are too wide (> 2.2x).

BUG=b:123038919
BUG=b:125134656
TEST=build coral and reef images and check files under /vendor/etc/

Change-Id: I430d394ab911786920448da4db0f9ea1483d5b96
Reviewed-on: https://chromium-review.googlesource.com/1510872
Commit-Ready: Pin-chih Lin <johnylin@chromium.org>
Tested-by: Pin-chih Lin <johnylin@chromium.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
(cherry picked from commit 444a1905ba3e9a3893f0d39de31eef6800b654af)
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1-r7.ebuild b/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1-r8.ebuild
similarity index 100%
rename from chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1-r7.ebuild
rename to chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1-r8.ebuild
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1.ebuild b/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1.ebuild
index 8031403..e4694ea 100644
--- a/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1.ebuild
+++ b/chipset-apl/chromeos-base/arc-codec-chipset-apl/arc-codec-chipset-apl-0.0.1.ebuild
@@ -1,7 +1,7 @@
 # Copyright 2016 The Chromium OS Authors. All rights reserved.
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=4
+EAPI=6
 
 inherit cros-constants
 
@@ -10,11 +10,18 @@
 LICENSE="BSD-Google"
 SLOT="0"
 KEYWORDS="*"
-IUSE=""
+IUSE="android-container-pi"
 S="${WORKDIR}"
+RDEPEND="!chromeos-base/arc-codec-software"
 
 src_install() {
 	insinto "${ARC_VENDOR_DIR}/etc/"
-	doins "${FILESDIR}/media_codecs.xml"
-	doins "${FILESDIR}/media_codecs_performance.xml"
+
+	if use android-container-pi; then
+		ARC_CODEC_DIR="${FILESDIR}/pic"
+	else
+		ARC_CODEC_DIR="${FILESDIR}/nyc"
+	fi
+
+	doins "${ARC_CODEC_DIR}"/*
 }
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs.xml
similarity index 68%
rename from chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml
rename to chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs.xml
index ec31a53..cd95eee 100644
--- a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml
+++ b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs.xml
@@ -83,7 +83,7 @@
     </Settings>
     <Decoders>
         <MediaCodec name="ARC.h264.decode" type="video/avc" >
-            <Limit name="size" min="48x48" max="3840x2160" />
+            <Limit name="size" min="16x16" max="4096x4096" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="16x16" />
             <Limit name="blocks-per-second" min="1" max="2570400" />
@@ -91,8 +91,26 @@
             <Limit name="concurrent-instances" max="8" />
             <Feature name="adaptive-playback" />
         </MediaCodec>
+	<MediaCodec name="ARC.vp8.decode" type="video/x-vnd.on2.vp8" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1721760" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+         </MediaCodec>
+         <MediaCodec name="ARC.vp9.decode" type="video/x-vnd.on2.vp9" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1620000" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
         <MediaCodec name="ARC.h264.decode.secure" type="video/avc" >
-            <Limit name="size" min="48x48" max="3840x2160" />
+            <Limit name="size" min="16x16" max="4096x4096" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="16x16" />
             <Limit name="blocks-per-second" min="1" max="2570400" />
@@ -101,6 +119,26 @@
             <Feature name="adaptive-playback" />
             <Feature name="secure-playback" required="true" />
         </MediaCodec>
+	<MediaCodec name="ARC.vp8.decode.secure" type="video/x-vnd.on2.vp8" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1721760" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+         </MediaCodec>
+         <MediaCodec name="ARC.vp9.decode.secure" type="video/x-vnd.on2.vp9" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1620000" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
     </Decoders>
     <Encoders>
         <MediaCodec name="OMX.arc.h264.encode" type="video/avc">
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs_performance.xml
similarity index 80%
rename from chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml
rename to chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs_performance.xml
index cba2a74..7a2e800 100644
--- a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml
+++ b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/nyc/media_codecs_performance.xml
@@ -34,12 +34,10 @@
             <Limit name="measured-frame-rate-1920x1080" range="13-25" />
         </MediaCodec>
         <MediaCodec name="OMX.arc.h264.encode" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="161-174" /> <!-- N=20 v90%=1.3 -->
-            <!-- measured 90%:106-171 med:115 SLOW -->
-            <Limit name="measured-frame-rate-720x480" range="114-135" /> <!-- N=20 v90%=1.3 -->
-            <!-- measured 90%:84-117 med:86 SLOW -->
-            <Limit name="measured-frame-rate-1280x720" range="86-99" /> <!-- N=20 v90%=1.2 -->
-            <Limit name="measured-frame-rate-1920x1080" range="61-61" /> <!-- N=20 v90%=1.1 -->
+            <Limit name="measured-frame-rate-320x240" range="161-174" />
+            <Limit name="measured-frame-rate-720x480" range="114-135" />
+            <Limit name="measured-frame-rate-1280x720" range="86-99" />
+            <Limit name="measured-frame-rate-1920x1080" range="61-61" />
         </MediaCodec>
     </Encoders>
     <Decoders>
@@ -49,8 +47,21 @@
             <Limit name="measured-frame-rate-1280x720" range="412-478" />
             <Limit name="measured-frame-rate-1920x1088" range="271-315" />
         </MediaCodec>
+        <MediaCodec name="ARC.vp8.decode" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="317-696" />
+            <Limit name="measured-frame-rate-640x360" range="310-681" />
+            <Limit name="measured-frame-rate-1280x720" range="290-637" />
+            <Limit name="measured-frame-rate-1920x1080" range="211-463" />
+        </MediaCodec>
+        <MediaCodec name="ARC.vp9.decode" type="video/x-vnd.on2.vp9" update="true">
+            <Limit name="measured-frame-rate-320x180" range="261-573" />
+            <Limit name="measured-frame-rate-640x360" range="259-569" />
+            <Limit name="measured-frame-rate-1280x720" range="203-446" />
+            <Limit name="measured-frame-rate-1920x1080" range="162-355" />
+            <Limit name="measured-frame-rate-3840x2160" range="50-109" />
+        </MediaCodec>
         <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="304-836" />
+            <Limit name="measured-frame-rate-176x144" range="340-747" />
         </MediaCodec>
         <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
             <Limit name="measured-frame-rate-320x240" range="146-236" />
@@ -76,8 +87,8 @@
         <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
             <Limit name="measured-frame-rate-320x180" range="351-518" />
             <Limit name="measured-frame-rate-640x360" range="115-215" />
-            <Limit name="measured-frame-rate-1280x720" range="36-92" />
-            <Limit name="measured-frame-rate-1920x1080" range="22-60" />
+            <Limit name="measured-frame-rate-1280x720" range="39-85" />
+            <Limit name="measured-frame-rate-1920x1080" range="25-54" />
         </MediaCodec>
     </Decoders>
 </MediaCodecs>
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs.xml
similarity index 68%
copy from chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml
copy to chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs.xml
index ec31a53..cd95eee 100644
--- a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs.xml
+++ b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs.xml
@@ -83,7 +83,7 @@
     </Settings>
     <Decoders>
         <MediaCodec name="ARC.h264.decode" type="video/avc" >
-            <Limit name="size" min="48x48" max="3840x2160" />
+            <Limit name="size" min="16x16" max="4096x4096" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="16x16" />
             <Limit name="blocks-per-second" min="1" max="2570400" />
@@ -91,8 +91,26 @@
             <Limit name="concurrent-instances" max="8" />
             <Feature name="adaptive-playback" />
         </MediaCodec>
+	<MediaCodec name="ARC.vp8.decode" type="video/x-vnd.on2.vp8" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1721760" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+         </MediaCodec>
+         <MediaCodec name="ARC.vp9.decode" type="video/x-vnd.on2.vp9" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1620000" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
         <MediaCodec name="ARC.h264.decode.secure" type="video/avc" >
-            <Limit name="size" min="48x48" max="3840x2160" />
+            <Limit name="size" min="16x16" max="4096x4096" />
             <Limit name="alignment" value="2x2" />
             <Limit name="block-size" value="16x16" />
             <Limit name="blocks-per-second" min="1" max="2570400" />
@@ -101,6 +119,26 @@
             <Feature name="adaptive-playback" />
             <Feature name="secure-playback" required="true" />
         </MediaCodec>
+	<MediaCodec name="ARC.vp8.decode.secure" type="video/x-vnd.on2.vp8" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1721760" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+         </MediaCodec>
+         <MediaCodec name="ARC.vp9.decode.secure" type="video/x-vnd.on2.vp9" >
+            <Limit name="size" min="16x16" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="1620000" />
+            <Limit name="bitrate" range="1-62500000" />
+            <Limit name="concurrent-instances" max="8" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
     </Decoders>
     <Encoders>
         <MediaCodec name="OMX.arc.h264.encode" type="video/avc">
diff --git a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs_performance.xml
similarity index 80%
copy from chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml
copy to chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs_performance.xml
index cba2a74..7a2e800 100644
--- a/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/media_codecs_performance.xml
+++ b/chipset-apl/chromeos-base/arc-codec-chipset-apl/files/pic/media_codecs_performance.xml
@@ -34,12 +34,10 @@
             <Limit name="measured-frame-rate-1920x1080" range="13-25" />
         </MediaCodec>
         <MediaCodec name="OMX.arc.h264.encode" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="161-174" /> <!-- N=20 v90%=1.3 -->
-            <!-- measured 90%:106-171 med:115 SLOW -->
-            <Limit name="measured-frame-rate-720x480" range="114-135" /> <!-- N=20 v90%=1.3 -->
-            <!-- measured 90%:84-117 med:86 SLOW -->
-            <Limit name="measured-frame-rate-1280x720" range="86-99" /> <!-- N=20 v90%=1.2 -->
-            <Limit name="measured-frame-rate-1920x1080" range="61-61" /> <!-- N=20 v90%=1.1 -->
+            <Limit name="measured-frame-rate-320x240" range="161-174" />
+            <Limit name="measured-frame-rate-720x480" range="114-135" />
+            <Limit name="measured-frame-rate-1280x720" range="86-99" />
+            <Limit name="measured-frame-rate-1920x1080" range="61-61" />
         </MediaCodec>
     </Encoders>
     <Decoders>
@@ -49,8 +47,21 @@
             <Limit name="measured-frame-rate-1280x720" range="412-478" />
             <Limit name="measured-frame-rate-1920x1088" range="271-315" />
         </MediaCodec>
+        <MediaCodec name="ARC.vp8.decode" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="317-696" />
+            <Limit name="measured-frame-rate-640x360" range="310-681" />
+            <Limit name="measured-frame-rate-1280x720" range="290-637" />
+            <Limit name="measured-frame-rate-1920x1080" range="211-463" />
+        </MediaCodec>
+        <MediaCodec name="ARC.vp9.decode" type="video/x-vnd.on2.vp9" update="true">
+            <Limit name="measured-frame-rate-320x180" range="261-573" />
+            <Limit name="measured-frame-rate-640x360" range="259-569" />
+            <Limit name="measured-frame-rate-1280x720" range="203-446" />
+            <Limit name="measured-frame-rate-1920x1080" range="162-355" />
+            <Limit name="measured-frame-rate-3840x2160" range="50-109" />
+        </MediaCodec>
         <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="304-836" />
+            <Limit name="measured-frame-rate-176x144" range="340-747" />
         </MediaCodec>
         <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
             <Limit name="measured-frame-rate-320x240" range="146-236" />
@@ -76,8 +87,8 @@
         <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
             <Limit name="measured-frame-rate-320x180" range="351-518" />
             <Limit name="measured-frame-rate-640x360" range="115-215" />
-            <Limit name="measured-frame-rate-1280x720" range="36-92" />
-            <Limit name="measured-frame-rate-1920x1080" range="22-60" />
+            <Limit name="measured-frame-rate-1280x720" range="39-85" />
+            <Limit name="measured-frame-rate-1920x1080" range="25-54" />
         </MediaCodec>
     </Decoders>
 </MediaCodecs>