RE: Reg. two out buffers in encoding of DM6446

2009-07-07 Thread Tivy, Robert
You must have a bug somewhere with respect to your buffer pointers.  The 
virtual addresses that CMEM is complaining about are not ones that would be 
returned by Memory_contigAlloc on a Linux system.  However, CMEM_getPhys() (the 
user front end to the kernel support) is often used for more than just 
CMEM-allocated buffers, so your pointer bug is not necessarily with the CMEM 
buffer.

Can you enable CMEM debug and rerun?  You can do so with
var cmem = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM');
cmem.debug = true;
in your appname.cfg file.  This should give you a better idea of where these 
pointers are coming from.  You could also enable the environment variable 
CE_DEBUG, setting it to 2 or 3, to give you some trace of what's happening.

Regards,

- Rob


From: davinci-linux-open-source-bounces+rtivy=ti@linux.davincidsp.com 
[mailto:davinci-linux-open-source-bounces+rtivy=ti@linux.davincidsp.com] On 
Behalf Of kirthika varadarajan
Sent: Monday, July 06, 2009 4:05 AM
To: Davinci-linux-open-source@linux.davincidsp.com
Subject: Reg. two out buffers in encoding of DM6446

  Hi,
  I want to read the motion vector in another buffer which i pass from 
application.
 Already i am allocating the memory using Memory_ContigAlloc()

XDAS_Int32 inBufSizeArray[1];
XDAS_Int8  OutPutBuffers[2];
OutPutBuffers[0] = outBuf;
OutPutBuffers[1] = MotionVecData;
XDAS_Int32  outBufSizeArray[2];
XDAS_Int32  status;
XDM_BufDesc inBufDesc;
XDM_BufDesc outBufDesc;
VIDENC_InArgs   inArgs;
VIDENC_OutArgs  outArgs;
inBufSizeArray[0]   = inBufSize;
outBufSizeArray[0]  = outBufMaxSize; //Encoded data
outBufSizeArray[1]  = MotionVecSize; //Motion vector
inBufDesc.numBufs   = 1;
inBufDesc.bufSizes  = inBufSizeArray;
inBufDesc.bufs  = (XDAS_Int8 **) inBuf;
outBufDesc.numBufs  = 2;
 outBufDesc.bufSizes = outBufSizeArray;
outBufDesc.bufs = OutPutBuffers;
inArgs.size = sizeof(VIDENC_InArgs);
outArgs.size= sizeof(VIDENC_OutArgs);
/* Encode video buffer */
status = VIDENC_process(hEncode,inBufDesc,outBufDesc,inArgs, outArgs);
if (status != VIDENC_EOK)
{
ERR(VIDENC_process() failed with a fatal error (%ld ext: 
%#lx)\n,status, outArgs.extendedError);
return FAILURE;
}
*outBufSize = outArgs.bytesGenerated;
EncodedFrameType = outArgs.encodedFrameType;
return SUCCESS;

In the codec i am copying the data in two output buffers.
outBufs-bufs[0] -encoded data
outBufs-bufs[1] -Motion vec data.

When ever i call the encode_process()
 I am getting the following error

Memory Allocated for Motion Vector
crop.c.left=0
crop.c.top=0
crop.c.width=640
Capturing 640x480 video (cropped to 640x480)
CMEMK Error: GETPHYS: Failed to convert virtual 0x0 to physical.
CMEMK Error: GETPHYS: Failed to convert virtual 0xa8bff to physical.
Jpeg Encode Error: VIDENC_process() failed with a fatal error (-2 ext: 0

Struck some where.
Suggest me.



___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source


Reg. two out buffers in encoding of DM6446

2009-07-06 Thread kirthika varadarajan
  Hi,
  I want to read the motion vector in another buffer which i pass from
application.
 Already i am allocating the memory using Memory_ContigAlloc()

XDAS_Int32 inBufSizeArray[1];
XDAS_Int8  OutPutBuffers[2];
OutPutBuffers[0] = outBuf;
OutPutBuffers[1] = MotionVecData;
XDAS_Int32  outBufSizeArray[2];
XDAS_Int32  status;
XDM_BufDesc inBufDesc;
XDM_BufDesc outBufDesc;
VIDENC_InArgs   inArgs;
VIDENC_OutArgs  outArgs;
inBufSizeArray[0]   = inBufSize;
outBufSizeArray[0]  = outBufMaxSize; //Encoded data
outBufSizeArray[1]  = MotionVecSize; //Motion vector
inBufDesc.numBufs   = 1;
inBufDesc.bufSizes  = inBufSizeArray;
inBufDesc.bufs  = (XDAS_Int8 **) inBuf;
outBufDesc.numBufs  = 2;
 outBufDesc.bufSizes = outBufSizeArray;
outBufDesc.bufs = OutPutBuffers;
inArgs.size = sizeof(VIDENC_InArgs);
outArgs.size= sizeof(VIDENC_OutArgs);
/* Encode video buffer */
status = VIDENC_process(hEncode,inBufDesc,outBufDesc,inArgs,
outArgs);
if (status != VIDENC_EOK)
{
ERR(VIDENC_process() failed with a fatal error (%ld ext:
%#lx)\n,status, outArgs.extendedError);
return FAILURE;
}
*outBufSize = outArgs.bytesGenerated;
EncodedFrameType = outArgs.encodedFrameType;
return SUCCESS;

In the codec i am copying the data in two output buffers.
outBufs-bufs[0] -encoded data
 outBufs-bufs[1] -Motion vec data.

When ever i call the encode_process()
 I am getting the following error

Memory Allocated for Motion Vector
crop.c.left=0
crop.c.top=0
crop.c.width=640
Capturing 640x480 video (cropped to 640x480)
CMEMK Error: GETPHYS: Failed to convert virtual 0x0 to physical.
CMEMK Error: GETPHYS: Failed to convert virtual 0xa8bff to physical.
Jpeg Encode Error: VIDENC_process() failed with a fatal error (-2 ext: 0

Struck some where.
Suggest me.
___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source