|
【Linux】
使用MPP库进行硬编码,程序结束在初始化过程中。
发表于 2022-1-3 23:04:43
浏览:4027
|
回复:0
打印
只看该作者
[复制链接]
楼主
参考mpi_enc_test程序,抽出主干程序,命令行参数的过程直接指定。如下:
- MPP_RET mpi_enc_test_cmd_update_by_args(MpiEncTestArgs* cmd,
- int argc,
- char** argv) {
- MPP_RET ret = MPP_NOK;
- RK_U32 i;
- char ext[50] = "yuv";
- char ext2[50] = "h264";
- cmd->file_input = "/nfs/bridge-far_cif.yuv";
- for (i = 0; i < MPP_ARRAY_ELEMS(map_ext_to_frm_fmt); i++) {
- Ext2FrmFmt* info = &map_ext_to_frm_fmt[i];
- if (!strcmp(ext, info->ext_name)) {
- cmd->format = info->format;
- LOG_DEBUG("encoder cmd format %d \n");
- }
- }
- cmd->file_output = "/nfs/bridge-far_cif.h264";
- for (i = 0; i < MPP_ARRAY_ELEMS(map_ext_to_coding); i++) {
- Ext2Coding *info = &map_ext_to_coding[i];
- if (!strcmp(ext2, info->ext_name)) {
- cmd->type = info->coding;
- LOG_DEBUG("info coding %d \n",info->coding);
- }
- }
- LOG_DEBUG("encoder cmd type %d \n", cmd->type);
- cmd->width = ENCODER_WIDTH;
- cmd->height = ENCODER_HEIGHT;
- // cmd->hor_stride =
- // cmd->ver_stride =
- for (i = 0; i < MPP_ARRAY_ELEMS(support_list); i++) {
- MppCodingTypeInfo *info = &support_list[i];
- if (MPP_CTX_ENC == info->type &&
- cmd->type == info->coding) {
- ret = MPP_OK;
- break;
- }
- }
- LOG_DEBUG("encoder cmd type %d \n", cmd->type);
- cmd->num_frames = 10;
- ret = MPP_OK;
-
- return ret;
- }
复制代码 查看初始化过程中的打印,发现现在的日志与test成功运行的日志,前面部分打印相同,成功运行截图:
报错截图:
看日志是因为,调用了_check_is_mpp_enc_ref_cfg函数,这个函数是参考mpi直接抄过来的,但是我在初始化的过程中并没有调用它,这是setup的时候会调用,但是我将掉用的程序已经注释,他还是会出现这个。 有点莫名,我开mpi中init的过程很简单,也没有会读取cfg的过程。
现在一直卡在这里,想问问大佬有没有解决方法。或者提供一些解决思路。
|
|