Android Codec 集成和 video Overlay
2010-07-01 15:05:00 来源:WEB开发网除了omx封装外其他两种方式我没仔细看过,Node方式PV还没提供文档,而mio集成方式在doc里面有它的开发文档。
B、Video Overlay
Android原来是video playback的输出是使用的Isurface接口,也就是说它是用surfaceflinger来实现window的合并的,SW merge必然导致播放的效率低下,而且资源消耗很高。FSL在这里实现了硬件overlay的方式来播放视频,就是使用ipu进行硬件的merge,说穿了就是把vpu解码后的数据直接送到ipu的overlay buffer。
这里涉及到两个底层的lib,一个就是libipu.so,还一个是libvpu.so,vpu负责解码,而ipu负责显示。在这里要改变的主要是两个地方,首先要获得vpu解码后的数据,这里主要涉及到下面目录中的文件:
/external/opencore/nodes/pvomxbasedecnode/src/pvmf_omx_basedec_node.h
/external/opencore/nodes/pvomxbasedecnode/include/pvmf_omx_basedec_node.cpp
/external/opencore/nodes/pvomxvideodecnode/src/pvmf_omx_ideodec_node.cpp
然后就是将数据送到overlay buffer,这部分修改的内容实际上就是实现了ipu 的一个sequence,这个sequence的内容可以参照:
/external/fsl_imx_lib/ipu/mxc_ipu_hl_lib.h
具体的修改内容在下面几个文件:
/android/android_surface_output.cpp
/android/android_surface_outpur.h
更多精彩
赞助商链接