使用MPP库进行硬编码,程序结束在初始化过程中。
参考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 = "yuv";
char ext2 = "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;
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;
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;
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的过程。
现在一直卡在这里,想问问大佬有没有解决方法。或者提供一些解决思路。
页:
[1]