Rayeager PX2开发板具有非常强大的多媒体处理能力,如果需要调用硬件加速针对普通媒体文件/码流进行解码,只需按照安卓标准调用多媒体相关接口即可。
针对一些行业用户的特殊需求,Rayeager PX2实际上也开放了接口可以对H.264等裸码流进行解码。
这里提供一份代码即可实现H.264裸码流的解码,如果您具有一定的Android系统开发经验,很快就能理解并进行相关改写。使用方法:
在PX2的Android编译环境根目录下将代码解压,并进入ChipSPARK_PX2_H264_DECODER文件夹,执行以下命令进行编译:
mm -B
即可生成可执行文件,路径为:out/target/product/rkpx2/system/bin/vpu_apiDemo
将该文件通过adb推送到PX2开发板上,并注意chmod 777赋予执行权限。
在adb shell中通过以下命令执行解码:
./vpu_apiDemo -i h264码流文件 -coding 7
其中-coding 7表示该文件为H.264编码,实际上该代码经过修改可以解码很多其它类型码流甚至进行编码工作。通过logcat可以看到相关的解码状态。
相关接口API在这个路径:/hardware/rk29/libon2/vpu_api.h
代码:
命令行参数:
vpu_apiDemo -i yuv数据文件 -o /mnt/sdcard/输出的264文件名 -coding 7 -t 2 -w 320 -h 240
其中-t 2是表示进行编码动作。
这是编译好的二进制文件,可以直接push进系统测试。你猜对了,这个文件也一样具有之前帖子提到的裸码流解码功能。