VCEANCB_LockBuffer

ImperX VCEANCB Functions

VCEANCB_LockBuffer

[This is preliminary documentation and subject to change.]

The VCEANCB_LockBuffer function gets raw bytes from snapped frame.

VCEANCB_Error VCEANCB_LockBuffer (
  HANDLE hVCEANCB, // Handle to card
  BYTE** ppBuffer, // Pointer to pointer to buffer
  DWORD* pdwSize // Pointer to size of buffer
);

Parameter:

hVCEANCB
[in] Handle to FrameLink card.
ppBuffer
[out] Pointer to pointer to buffer.
pdwSize
[out] Pointer to size of buffer

Return values:

If function succeeds, the return value is VCEANCB_Err_Success.

If function fails, the return value can be one of the following values.

VCEANCB_Err_badArgument hVCEANCB handle or ppBuffer pointer is bad (possibly NULL).
VCEANCB_Err_notGrabbed VCEANCB_SnapFrame was not called.
VCEANCB_Err_bufferBusy Snapping buffers are busy.

Remarks:

The buffer is a raw bytes in YUV 4:2:2 format received from digitizer for color image(see table bellow) or "Y only" format, where each byte represent Luma component of YUV data.

Cb0 Y0 Cr0 Y1 Cb2 Y2 Cr2 Y3

Even field placed at begin of returned buffer. Start of odd field could be found using next formula:

if(monochrome) { // For monochrome image
    sourceWidth = dwWidth;
    frameShift = dwWidth*(dwHeight/2)/512;
    if((dwWidth*(dwHeight/2))%512)
        frameShift++;
    frameShift*=512;
}
else { // For color image
    sourceWidth = 2*dwWidth;
    frameShift = dwWidth*dwHeight/512;
    if((dwWidth*dwHeight)%512)
        frameShift++;
    frameShift++;
    frameShift*=512;
}

Where:

monochrome
Monochrome flag. Used in VCEANCB_SnapData structure (corresponding PAL or NTSC field of VCEANCB_CameraConfig structure)
dwWidth
Width of image in pixels
dwHeight
Height of image in pixels
frameShift
Shift of odd field relative to start of buffer in bytes
sourceWidth
Width of line in source buffer in bytes

See also:

VCEANCB_SnapFrame, VCEANCB_UnlockBuffer