写完回开头补一句: 为什么忽然编辑器改版了? 是不是受了微信公众号的启发...
仿佛一夜之间,公司的代销项目忽然有海外客户了; 现在的版本,测试那边的内测都还没收敛, 可产品却给 CTS/VTS/GTS 定了最高优先级;
想想之前在前东家, CTS 差不多是一部血泪史, 过 CTS 的 image 和最终发给客户量产的 image 天差地别; 到了现在这边, 之前项目也拍脑袋要上 CTS, 全组人忙的两个月不可开交, 然后突然就没了下文... 只有我,为了预研
widevine, 继续折腾了一个月 GTS ,随后 19BIG 召开, 我这边 GTS 测不下去了... 于是得出重要结论之一是 VPN 一定要稳定... // MAGIC1. DO NOT TOUCH http://blog.csdn.net/leonxu_sjtu
现在不同了, 产品说 CTS/VTS/GTS 还有 CTS-gsi 都要上, 你看第三世界的客户正向我们招手~
Widevine 这里就不细说了, 等手上的资料不再敏感的时候, 专门写一下 DRM 相关;
其实到了 Android 8.0, 首先要测的是 VTS: 比如 VtsTrebleVintfTest
如果 vendor 分区的 manifest.xml 添加了:
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<version>1.0</version>
<interface>
<name>ICryptoFactory</name>
<instance>widevine</instance>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>widevine</instance>
<instance>default</instance>
</interface>
</hal>
那就意味着 widevine 要集成到系统中, 当然你也可以直接删掉这两段, 但为了 GTS, widevine 还是要集成进去; 只是, 集成之后 VTS 很快就 PASS 了, GTS 却尼玛一脸坎坷:
主要是两个case : GtsMediaTestCases / GtsExoPlayerTestCases
run gts -m GtsMediaTestCases -t
com.google.android.media.gts.WidevineVP9WebMPlaybackTests#testVP9WebMCencSubSampleL3With720P30fps --ignore-business-logic-failure
run gts -m GtsExoPlayerTestCases -t com.google.android.exoplayer.gts.DashTest#testWidevineVp9Fixed360p --ignore-business-logic-failure
GtsMediaTestCases 其实有 15 个子case, failed 的 testVP9WebMCencSubSampleL3With720P30fps 报错如下:
07-10 12:23:15.652 3602 3707 I TestRunner: failed:testVP9WebMCencSubSampleL3With720P30fps(com.google.android.media.gts.WidevineVP9WebMPlaybackTests)
07-10 12:23:15.652 3602 3707 I TestRunner: ----- begin exception -----
07-10 12:23:15.656 3602 3707 I TestRunner: java.lang.Exception: Failed components: < Video Reached Seconds >
GtsExoPlayerTestCases 其实有 33 个子case, failed 的 testWidevineVp9Fixed360p 报错如下:
07-18 09:27:09 D/ModuleListener:ModuleListener.testFailed(com.google.android.exoplayer.gts.DashTest#testWidevineVp9Fixed360p, junit.framework.AssertionFailedError: Codec(DashTest:Video) was late decoding:
1558 buffers. Limit: 39.
at junit.framework.Assert.fail(Assert.java:50)
at junit.framework.Assert.assertTrue(Assert.java:20)
at com.google.android.exoplayer.gts.util.DecoderCountersUtil.assertDroppedOutputBufferLimit(DecoderCountersUtil.java:59)
多测了几遍, 发现 failed 的都是 Vp9 case ~ // MAGIC2. DO NOT TOUCH http://blog.csdn.net/leonxu_sjtu
Vp9 有啥特殊呢? 正好在我们用的这个平台, Vp9 没有硬件 VPU 支持 (vp9 是 google 刚推没几年, 所以各平台