想问一下,在MCFW的Capture中,看了一下HDVPSS_UserGuide.pdf中,我的格式就是如下图所示的交错模式
但是在读取FVID2_Frame->pFrame[frameId].addr[i][j]中的数据的时候,发现和预期的数据不一样。请教YUV的存储位置?
Chris Meng:
你好,
请参考HDVPSS驱动里面的fvid2.h的下面相关内容。
Ptr addr[FVID2_MAX_FIELDS][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. 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: Field 0 Y -> addr[0][0], Field 1 Y -> addr[1][0] Field 0 U -> addr[0][1], Field 1 U -> addr[1][1] Field 0 V -> addr[0][2], Field 1 V -> addr[1][2] Other pointers are not valid.
Representation of YUV422 Interleaved Buffer: Field 0 YUV -> addr[0][0], Field 1 YUV -> addr[1][0] Other pointers are not valid.
Representation of YUV420SP or YUV422SP Buffer: Field 0 Y -> addr[0][0], Field 1 Y -> addr[1][0] Field 0 UV -> addr[0][1], Field 1 UV -> addr[1][1] Other pointers are not valid.
Representation of RGB888 Buffer Field 0 RGB -> addr[0][0], Field 1 RGB -> addr[1][0], Other pointers are not valid.
For progressive mode data formats or when fields are processed by driver in frame mode. addr[1][x] is not used.
Instead of using numerical for accessing the buffers, the application can use the macros defined for each buffer formats like FVID2_YUV_INT_ADDR_IDX, FVID2_RGB_ADDR_IDX, FVID2_FID_TOP etc. */