Stephen Berry wrote:
the routine follows. The call to VIDENC1_control is the routine that segfaults. I'm not using the ividEncfxns->algControl call...

#if 1
    ext_params.videncParams.size = sizeof(IMP4VENC_Params);

hEncode = (VIDENC1_Handle) ALG_create(1, (IALG_Fxns *)& MP4VENC_TI_IMP4VENC,
                                       (IALG_Handle) NULL,
                                       (IALG_Params *) & ext_params);

can you tell me why you use ALG_create and not VIDENC1_create()?

#else
    /* Create video encoder instance */
    hEncode = VIDENC1_create(hEngine, algName, &params);
#endif


//    return SUCCESS;

    dynamicParams.size                = sizeof(VIDENC1_DynamicParams);
    dynamicParams.inputHeight         = height;
    dynamicParams.inputWidth          = width;
    dynamicParams.targetBitRate       = bitrate < 0 ? 0 : bitrate;
//    dynamicParams.intraFrameInterval  = 30;
    dynamicParams.intraFrameInterval  = 0; // I frame only
    dynamicParams.generateHeader      = XDM_ENCODE_AU;
    dynamicParams.captureWidth        = 0;
//XXX    dynamicParams.forceIFrame         = 0;

    if (gblGetYFactor() == NTSCSTD) {
        dynamicParams.targetFrameRate = 30000;
        dynamicParams.refFrameRate    = 30000;
    }
    else {
        dynamicParams.targetFrameRate = 25000;
        dynamicParams.refFrameRate    = 25000;
    }

    /* Set video encoder dynamic parameters */
    encStatus.size = sizeof(VIDENC1_Status);
    encStatus.data.buf = NULL;

/* Set Dynamic Params */
#if 0
    ividEncfxns = (IALG_Fxns *)hEncode->fxns ;

    status = ividEncfxns->algControl((VIDENC1_Handle)hEncode, XDM_SETPARAMS,
                                  (VIDENC1_DynamicParams *)& ext_params,
                                  (VIDENC1_Status *)&encStatus);
#endif status = VIDENC1_control((VIDENC1_Handle)hEncode, XDM_SETPARAMS, &dynamicParams,
                            &encStatus);

    if (status != VIDENC1_EOK) {
        ERR("XDM_SETPARAMS failed, status=%ld\n", status);
        return FAILURE;
    }

    *hEncodePtr = hEncode;

    return SUCCESS;
}



_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to