TI中文支持网
TI专业的中文技术问题搜集分享网站

demos进行参数params扩展,没有成功创建编码句柄

您好:

我尝试对video.c里面的params结构体进行扩展,只扩展了一个参数,但是在调用_create函数的时候返回了错误。不知道是什么原因造成的,求助大家,谢谢!

下面是我相关程序的步骤:

1、设置默认参数值

const IVIDENC1_Params IVIDENC1_Params_DEFAULT = {
    sizeof(IVIDENC1_Params),           /* size */
    XDM_DEFAULT,                      /* encodingPreset */
    IVIDEO_LOW_DELAY,                 /* rateControlPreset */
    720,                              /* maxHeight */
    1280,                             /* maxWidth */
    30000,                            /* maxFrameRate */
    6000000,                          /* maxBitRate */
    XDM_BYTE,                         /* dataEndianness */
    0,                                /* maxInterFrameInterval */
    XDM_YUV_420P,                     /* inputChromaFormat */
    IVIDEO_PROGRESSIVE,               /* inputContentType */
    XDM_CHROMA_NA                     /* reconChromaFormat */
};

2、定义扩展结构体
typedef struct MYIVIDDEC_Params {
    IVIDENC1_Params videncParams;
    XDAS_Int32 profileIdc;
    
} MYIVIDDEC_Params;

3、在main函数里面定义params

IVIDENC1_Params          defaultParams       = IVIDENC1_Params_DEFAULT;

MYIVIDDEC_Params        params;

4、对params进行赋值

    params.videncParams = defaultParams;

    params.videncParams.size = sizeof(MYIVIDDEC_Params);

    params.videncParams.maxWidth        = 736;//envp->imageWidth;

    params.videncParams.maxHeight       = 576;//Dmai_roundUp(envp->imageHeight, CODECHEIGHTALIGN);

    params.videncParams.encodingPreset  = XDM_HIGH_SPEED;

    params.videncParams.inputChromaFormat = XDM_YUV_420SP;

    params.videncParams.maxFrameRate      = 25000;

    params.videncParams.maxBitRate        = 500000;

    params.videncParams.rateControlPreset = IVIDEO_NONE;

    params.profileIdc=66;//增加的参数赋值

5、调用create函数

VIDENC1_Handle          hEncode;

/* Create video encoder instance */
    hEncode = VIDENC1_create(hEngine, codecName,(VIDENC1_Params*)&params);

    if (hEncode == NULL) {
        printf("!!!!!!!!!!Failed to open video encode algorithm: %s (0x%x)\n",
                 codecName, Engine_getLastError(hEngine));
        free(hVe);
        return NULL;
    }

结果:返回!!!!!!!!!!Failed to open video encode algorithm: h264enc (0x0)

另外,视频格式选VideoStd_D1_PAL

            扩展结构体除了以上的MYIVIDDEC_Params,还用过IH264VENC_Params,同样出错;

            create函数除了以上的 VIDENC1_create,还用过Venc1_create,同样出错;

            create函数使用强制转换(IVIDENC1_Params*)&params,同样出错。

可能是什么原因引起的呢?

求助啊!!!!!!

谢谢!

mengyao liu:

回复 Chris Meng:

最后找到问题了,是参数设置的互相有冲突,所以进不去编码环节

还是非常感谢!!

赞(0)
未经允许不得转载:TI中文支持网 » demos进行参数params扩展,没有成功创建编码句柄
分享到: 更多 (0)