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, ¶ms); #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
