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>