2015年1月6日 由 Creater
/**
*  \brief FVID2 frame buffer structure.
*
*  Unless specified otherwise, all fields in this structure are
*
*  [IN]  for FVID2_queue(), FVID2_processFrames() operation.
*  [OUT] for FVID2_dequeue(), FVID2_getProcessedFrames() operation.
*
*/
typedef struct
{
/**<
FVID2 buffer pointers for supporting multiple addresses like
Y, U, V etc for a given frame. The interpretation of these pointers
depend on the format configured for the driver.
The first dimension represents the field and the second dimension
represents the color plane.
Not all pointers are valid for a given format.

Representation of YUV422 Planar Buffer:
Other pointers are not valid.

Representation of YUV422 Interleaved Buffer:
Other pointers are not valid.

Representation of YUV420SP or YUV422SP Buffer:
Other pointers are not valid.

Representation of RGB888 Buffer
Other pointers are not valid.

For progressive mode data formats
or when fields are processed by driver in frame mode.

Instead of using numerical for accessing the buffers, the application
can use the macros defined for each buffer formats like

UInt32              fid;
/**< Indicates whether this frame belong to top or bottom field.
For valid values see #FVID2_Fid. */
UInt32              channelNum;
/**< Channel number to which this FVID2 frame belongs to. */

UInt32              timeStamp;
/**< Time stamp returned by the driver, in units of msecs.
Only valid for frames received using FVID2_dequeue(). */
Ptr                 appData;
/**< Additional application parameter per frame. This is not modified by
driver. */

Ptr                 perFrameCfg;
/**< Per frame configuration parameters like scaling ratio, positioning,
cropping etc...
This should be set to NULL if not used.

This can be used by application to control driver behaviour on a per
frame basis, example changing scaling ratio for scalar driver.

This can be used by application to get per frame status, example
detected frame width, height from capture driver.

This could be set to NULL if not used. In this case, the driver will
use the last supplied configuration.

The exact structure type that is passed is driver specific. */

Ptr                 blankData;
/**< Blanking data associated with this video frame.
This could be set to NULL if not used. */

Ptr                 drvData;
/**< Used by driver. Application should not modify this. */

FVID2_SubFrameInfo    *subFrameInfo;
/**< Used for SubFrame level processing information exchange between
application and driver.
This could be set to NULL if sub-frame level processing  is not used. */

Ptr                 reserved;
/**< For future use. Not used currently. Set this to NULL. */

} FVID2_Frame;