我对OMX_IndexParamVideoAvc
视频解码器OMX
的重要性进行了查询。具体来说,我的查询是:OMX Video Decoder
是否应支持索引OMX_IndexParamVideoAvc
作为get
和set
功能的一部分?
背景
根据我的理解,从video encoder
角度来看,这个索引更有用,因为OMXIL Client
使用它来查询现有支持的底层组件,并进一步配置编码器作为客户端的需求
从规范的角度来看,我发现规范确实表明OMX_IndexParamVideoAvc
对视频解码器的索引VPB+0
的支持,如specification的第359页所示。在此部分中,仅填充profile
和level
。
我可能觉得这个索引可以用于OMX_GetParameter
来检索最大值。组件支持的配置文件和级别。但是,也可以从OMX_IndexParamVideoProfileLevelQuerySupported
检索相同内容。
因此,我的主要疑虑是:
OMX video decoder
是否支持索引OMX_IndexParamVideoAvc
?
如果支持此索引,那么当OMXIL
客户端查询相同内容时,默认值应该是什么,比如LOADED
状态?
只有在组件处于EXECUTING
状态并且第一个带OMX_BUFFERFLAG_CODECONFIG
的缓冲区已被解码后,才能在逻辑上填充此索引的点。在达到此状态之前,解码器是否应仅填充最大值。 profile
和level
字段并将其他字段设置为零?
是否存在从OMX video decoder
查询此索引的实际情况? android
上的quick search显示encoders
对此索引的主要支持。即使在AOSP
来源中,Exynos
实施对此索引的支持也适用于profile
和level
。因此,我并不特别相信这个指数用于OMX video decoders
。
常见实施:
当我尝试搜索常见的实现时,我发现了一些有趣的数据。 TI和Broadcomm编码器支持此索引(在某些情况下部分支持),如OMX_VENC
和omx.broadcomm.video_encode
所示。但是,类似于OMX_VDEC
和omx.broadcommn.video_decode
中的解码器搜索表明,解码器中没有明显支持此索引。这种理解的唯一例外是在三星的白羊座实现中找到,如decoder code here所示。
任何指针/意见/建议都会非常有帮助。非常感谢提前。
答案 0 :(得分:1)
我认为你是对的,它应该用于enc组件设置。
OMX_IndexParamVideoProfileLevelQuerySupported
使用like here以及OMX_IndexParamVideoProfileLevelCurrent
涵盖OMX_IndexParamVideoAvc
的案例和目的是获取/设置其余OMX_VIDEO_PARAM_AVCTYPE
我认为通过OMX_IndexParamVideoAvc
提供支持的最大值可能会产生误导。