前言:
大家好,今天给大家介绍的内容是rk平台的mpp编解码这块的内容,在rk目前看到有三套框架涉及到编解码内容:
-
1、rkmedia
-
2、rockit
-
3、mpp
这三种不同形式的编解码方式,后面再做详细的框架对比,今天我们主要是怎么移植mpp源码到开发板里面去。
这里主要是记录一下学习过程!
开始移植mpp源码
mpp源码一般在对应的sdk里面的external里面也有,我这里不用sdk里面的mpp源码,而是从rockchip官方仓库里面下载最新的mpp源码:
https://github.com/rockchip-linux/mpp/tree/release
现在我们开始来进行一定的修改:
上面我们修改这个路径下的两个文档内容:
最终内容内容修改如下:
接着还需要修改一个地方,不然到时候移植到开发板上,我们运行demo,发现终端没有任何的打印log,就让人很奇怪,所以需要在osal里面做一个log打印输出语句:
添加如下两条打印语句:
void os_log(const char* tag, const char* msg, va_list list)
{
char line[LINE_SZ] = {0};
snprintf(line, sizeof(line), "%s: %s", tag, msg);
vsyslog(LOG_INFO, line, list);
vfprintf(stdout, line, list);
}
void os_err(const char* tag, const char* msg, va_list list)
{
char line[LINE_SZ] = {0};
snprintf(line, sizeof(line), "%s: %s", tag, msg);
vsyslog(LOG_ERR, line, list);
vfprintf(stderr, line, list);
}
现在我们可以来开始进行编译了:
移植到开发板上执行测试解码:
传输到开发板上来:
我们可以直接执行这个测试程序,可以看到一些有用的参数说明:
开始测试:
好了,整个移植过程就结束了,下一期文章,我们开始构造属于自己的mpp工程,怎么解码码流到屏幕上去显示,循环播放演示以及mpp的整个架构和api的使用介绍,我们下期见!