PDK API Guide for J721E
Fvid2_Frame Struct Reference

Detailed Description

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.

Data Fields

uint64_t addr [FVID2_MAX_PLANES]
 
uint32_t fid
 
uint32_t chNum
 
uint64_t timeStamp64
 
void * appData
 
void * perFrameCfg
 
void * drvData
 
Fvid2_SubFrameInfosubFrameInfo
 
uint32_t status
 

Field Documentation

◆ addr

uint64_t Fvid2_Frame::addr[FVID2_MAX_PLANES]

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. Not all pointers are valid for a given format.

Representation of YUV422 Interlaced Planar Buffer: Field 0 Y -> addr[0], Field 1 Y -> addr[3] Field 0 U -> addr[1], Field 1 U -> addr[4] Field 0 V -> addr[2], Field 1 V -> addr[5] Representation of YUV422 Progressive Planar Buffer: Y -> addr[0] U -> addr[1] V -> addr[2] Other pointers are not valid.

Representation of Interlaced YUV422 Interleaved Buffer: Field 0 YUV -> addr[0], Field 1 YUV -> addr[3] Representation of Progressive YUV422 Interleaved Buffer: YUV -> addr[0] Other pointers are not valid.

Representation of Interlaced YUV420SP or YUV422SP Buffer: Field 0 Y -> addr[0], Field 1 Y -> addr[3] Field 0 UV -> addr[1], Field 1 UV -> addr[4] Representation of Progressive YUV420SP or YUV422SP Buffer: Y -> addr[0] UV -> addr[1] Other pointers are not valid.

Representation of Interlaced RGB888 Buffer Field 0 RGB -> addr[0], Field 1 RGB -> addr[3], Representation of Progressive RGB888 Buffer RGB -> addr[0] Other pointers are not valid.

◆ fid

uint32_t Fvid2_Frame::fid

Indicates whether this frame belong to top or bottom field. For valid values see Fvid2_Fid.

◆ chNum

uint32_t Fvid2_Frame::chNum

Channel number to which this FVID2 frame belongs to.

◆ timeStamp64

uint64_t Fvid2_Frame::timeStamp64

64-bit Time stamp returned by the driver. The value and the unit is driver implementation dependent. But in general the time stamp stored is in micro-seconds. Refer to each driver implementation for the meaning and unit of the time stamp value. Only valid for frames received using Fvid2_dequeue().

◆ appData

void* Fvid2_Frame::appData

Additional application parameter per frame. This is not modified by driver.

◆ perFrameCfg

void* Fvid2_Frame::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 scaler 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.

◆ drvData

void* Fvid2_Frame::drvData

Used by driver. Application should not modify this.

◆ subFrameInfo

Fvid2_SubFrameInfo* Fvid2_Frame::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.

◆ status

uint32_t Fvid2_Frame::status

Status of the Frame, see Fvid2_FrameStatus for the valid values Updated by the driver