[DESCRIPTION]
类似如下fail:
android.video.cts.VideoEncoderDecoderTest#testH263Other0Perf0176x0144
12-07 10:22:05.220 9023 9038 I TestRunner: junit.framework.AssertionFailedError: Expected achievable frame rates for OMX.MTK.VIDEO.ENCODER.H263 video/3gpp 176x144: [500.0, 800.0].
12-07 10:22:05.220 9023 9038 I TestRunner: Measured frame rate: [94.65796753231714, 121.91648510569422].
12-07 10:22:05.220 9023 9038 I TestRunner: junit.framework.AssertionFailedError: Expected achievable frame rates for OMX.MTK.VIDEO.ENCODER.H263 video/3gpp 176x144: [500.0, 800.0].
12-07 10:22:05.220 9023 9038 I TestRunner: Measured frame rate: [94.65796753231714, 121.91648510569422].
[SOLUTION]
按google的说法,是先做测试,然后反推出相关的参数,可以参考如下Google 官方link:
以上面的fail为例:
可以看出项目OMX.MTK.VIDEO.ENCODER.H263 video/3gpp 176x144实际的frame rates只有[94.65796753231714, 121.91648510569422],说明项目中OMX.MTK.VIDEO.ENCODER.H263 [500.0, 800.0]的配置确实太高了,所以在media_codecs_performance.xml中调整一个合适的range ,比如[90,300]就可以pass了
<MediaCodec name="OMX.MTK.VIDEO.ENCODER.H263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="90-300" />