OMX_IndexParamVideoAvc对OMX视频解码器的重要性

时间:2013-12-24 00:36:00

标签: android video h.264 openmax

我对OMX_IndexParamVideoAvc视频解码器OMX的重要性进行了查询。具体来说,我的查询是:OMX Video Decoder是否应支持索引OMX_IndexParamVideoAvc作为getset功能的一部分?

背景

根据我的理解,从video encoder角度来看,这个索引更有用,因为OMXIL Client使用它来查询现有支持的底层组件,并进一步配置编码器作为客户端的需求

从规范的角度来看,我发现规范确实表明OMX_IndexParamVideoAvc对视频解码器的索引VPB+0的支持,如specification的第359页所示。在此部分中,仅填充profilelevel

我可能觉得这个索引可以用于OMX_GetParameter来检索最大值。组件支持的配置文件和级别。但是,也可以从OMX_IndexParamVideoProfileLevelQuerySupported检索相同内容。

因此,我的主要疑虑是:

  1. OMX video decoder是否支持索引OMX_IndexParamVideoAvc

  2. 如果支持此索引,那么当OMXIL客户端查询相同内容时,默认值应该是什么,比如LOADED状态?

  3. 只有在组件处于EXECUTING状态并且第一个带OMX_BUFFERFLAG_CODECONFIG的缓冲区已被解码后,才能在逻辑上填充此索引的点。在达到此状态之前,解码器是否应仅填充最大值。 profilelevel字段并将其他字段设置为零?

  4. 是否存在从OMX video decoder查询此索引的实际情况? android上的quick search显示encoders对此索引的主要支持。即使在AOSP来源中,Exynos实施对此索引的支持也适用于profilelevel。因此,我并不特别相信这个指数用于OMX video decoders

  5. 常见实施:

    当我尝试搜索常见的实现时,我发现了一些有趣的数据。 TI和Broadcomm编码器支持此索引(在某些情况下部分支持),如OMX_VENComx.broadcomm.video_encode所示。但是,类似于OMX_VDEComx.broadcommn.video_decode中的解码器搜索表明,解码器中没有明显支持此索引。这种理解的唯一例外是在三星的白羊座实现中找到,如decoder code here所示。

    任何指针/意见/建议都会非常有帮助。非常感谢提前。

1 个答案:

答案 0 :(得分:1)

我认为你是对的,它应该用于enc组件设置。

OMX_IndexParamVideoProfileLevelQuerySupported使用like here以及OMX_IndexParamVideoProfileLevelCurrent涵盖OMX_IndexParamVideoAvc的案例和目的是获取/设置其余OMX_VIDEO_PARAM_AVCTYPE

我认为通过OMX_IndexParamVideoAvc提供支持的最大值可能会产生误导。