The XDM_GETVERSION in the following code is not returning anything useful in the return "status":
for(i=0; i<3; i++)
{
char Version[128];
/* Setting the sizes of Base Class Objects*/
decParams.size = sizeof(IAUDDEC1_Params);
status.size = sizeof(IAUDDEC1_Status);
dynamicparams.size = sizeof(IAUDDEC1_DynamicParams);
inargs.size = sizeof(IAUDDEC1_InArgs);
outargs.size = sizeof(IAUDDEC1_OutArgs);
status.data.buf = Version;
status.data.bufSize = sizeof(Version);
/*Set creationtime params */
decParams.outputPCMWidth = 16;
decParams.pcmFormat = IAUDIO_INTERLEAVED;
decParams.dataEndianness = XDM_LE_16;
/* Create an instance of the algorithm */
if ((DecoderHandle = (IALG_Handle )ALG_create((IALG_Fxns *)&MP3DEC_TII_IMP3DEC,NULL, (IALG_Params *)&decParams)) != NULL)
{
IAUDDEC1_Fxns *iaudDecFxns;
XDAS_Int16 nch,testVal;
XDAS_Int32 channelMode = 1;
XDAS_Int32 frameCnt=0,nDecodedSamples = 0,testCompliance=0;
Layer2DecoderConfig[i].DecoderInputData = &Mp1L2_Data[0];
Layer2DecoderConfig[i].NumInputFrames = sizeof(Mp1L2_Data);
Layer2DecoderConfig[i].NumInputFrames /= MP1L2_FRAME_SIZE;
SYS_error("MOST EXCELLENT", 0); // Write something so know trace$buf is being written to
/* Assigning Algorithm handle fxns field to iaudDecfxns*/
iaudDecFxns = (IAUDDEC1_Fxns *)DecoderHandle->fxns;
/* Get Buffer information */
iaudDecFxns->control((IAUDDEC1_Handle)DecoderHandle, XDM_GETBUFINFO,&dynamicparams, &status);
/* "Attempt" to get VERSION information */
iaudDecFxns->control((IAUDDEC1_Handle)DecoderHandle, XDM_GETVERSION,&dynamicparams, &status);
}
}