Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
文章目录
- Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
-
- 一、前言
- 二、分析总结和修改
-
- 1、报错查看分析
-
- (1)编解码修改报错
- (2)虚拟屏修改报错
- 2、解决
- 三、其他
-
- 1、小结
- 2、Android16 EDLA 认证测试安装和卸载应用的监听设置
一、前言
Android EDLA最近测试爆一大堆 CtsMediaXXXCases 的报错,刚开始不确定是哪里修改导致的问题。
一些列Media模块的Failed项报错如下:
CtsMediaRecorderTestCases
CtsMediaAudioTestCases
CtsMediaV2TestCases
CtsMediaRecorderTestCases
CtsMediaMiscTestCases
CtsMediaEncoderTestCases
CtsMediaDecoderTestCases
CtsMediaCodecTestCases
CtsMediaEncoderTestCases
MctsMediaMiscTestCases
MctsMediaCodecTestCases
MctsMediaCodecTestCases
上面多个Media的模块,后面的MctsMediaXXX其实CtsMediaXXX测试内容项是一样的;Mcts表示企业设备;
后面多看一些日志和回退一些对策确认是Media编解码修改导致。
本文主要一些分析参考,有遇到类似的可以看看。
二、分析总结和修改
1、报错查看分析
(1)编解码修改报错
该报错的Failed项主要如下:
CtsMediaRecorderTestCases:

CtsMediaMiscTestCases:

CtsMediaEncoderTestCases:

CtsMediaDecoderTestCases:

CtsMediaAudioTestCases:

CtsMediaV2TestCases:

上面只能看出一些大概测试意图,看不出具体报错信息,
如果要看具体报错堆栈,需要查看具体报告或者重测该项查看result中的html文件报告;
比如:

能看到更多一点堆栈信息,再看logcat日志估计能看到更多相关信息。
上面的MediaXXX报错可能是和修改如下代码会导致:
//这个是AML方案的
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencComp.cpp
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencIntfImpl.cpp
修改一下参数值比如:
C2Color::MATRIX_UNSPECIFIED 变成 C2Color::MATRIX_BT709 或者 C2Color::MATRIX_BT601
这个主要是修改4K编解码参数或者优化视频转码与优化编码性能会涉及到的代码;
比如:安兔兔跑分视频转码失败,需要进行优化系统编解码,就需要修改上面的代码。
(2)虚拟屏修改报错
其实除了vendor目录,在framework目录下也有很多和视频编解码相关的代码:
release/frameworks/native/services$ ls
audiomanager automotive displayservice inputflinger surfaceflinger
release/frameworks/native/services$
上面的代码实现都是c/cpp代码.
比如修改:录屏问题,信源黑屏、虚拟屏等问题就需要适配优化一下上面目录的某些文件;
比如修改Android原生虚拟屏流程:
frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
一些关于:enableHalVirtualDisplays(false);的流程
可能会造成如下Failed:
CtsMediaCodecTestCases:

上面这个报错Failed编解码修改也会爆,可能其他修改也会影响到原生流程。
···
MctsMediaCodecTestCases:

CtsMediaHostTestCases:

CtsMediaProjectionSDK33TestCases:

上面几个报错看报错项 具体测试名称,就知道和虚拟屏Virtual相关。
2、解决
主要就是找到导致Failed相关的代码;
解决方法有如下几种:
(1)如果不是必要就该功能就去除功能;
(2)添加prop属性,测试某些项的时候,打开开关,跳过相关功能的逻辑代码;
(3)监听cts测试模块的应用安装,安装应用的时候,设置prop属性,跳过相关功能的逻辑代码;
比如:
测试CtsMediaCodecTestCases和MctsMediaCodecTestCases的模块应用包名是:android.media.codec.cts;
测试CtsMediaV2TestCases的模块应用包名是:android.mediav2.cts。
三、其他
1、小结
其实只要影响到原生的流程就可能会爆Failed项错误;
修改如下代码可能会报很多Failed项错误:
release/frameworks/native/services$ ls
audiomanager automotive displayservice inputflinger surfaceflinger
release/frameworks/native/services$
//这个是AML方案的
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencComp.cpp
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencIntfImpl.cpp
解决方法就是:去除该功能或者添加prop属性测试的时候跳过某项功能逻辑。
2、Android16 EDLA 认证测试安装和卸载应用的监听设置
Android EDLA认证项测试的时候,会出现自己修改的东西和认证项冲突。
这时候就要设置一个标识,如果是进行EDLA认证项的时候,就把自己的修改暂时去除。
虽然是逃避规则的手段,但是为了过认证也是没有办法,很多东西是不能两全的。
测试EDLA认证项的时候,会安装一些列应用app进行测试。
https://blog.csdn.net/wenzhi20102321/article/details/155283048
网硕互联帮助中心





评论前必须登录!
注册