在高通8916和8974平台上使用camera录像的时候,录像的格式是CAMERA_YUV_420_NV12。此格式对应的YUV格式是YUV420SP32M。
YUV32SP对应的大小:W * H * 3 / 2
YUV420SP32M这样的存储方式对应的文件存储格式以及大小计算方式如下:
#ifndef __MEDIA_INFO_H__
#define __MEDIA_INFO_H__
#ifndef MSM_MEDIA_ALIGN
#define MSM_MEDIA_ALIGN(__sz, __align) (((__sz) + (__align-1)) & (~(__align-1)))
#endif
enum color_fmts {
/* Venus NV12:
* YUV 4:2:0 image with a plane of 8 bit Y samples followed
* by an interleaved U/V plane containing 8 bit 2x2 subsampled
* colour difference samples.
*
* <-------- Y/UV_Stride -------->
* <------- Width ------->
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X ^ ^
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X | |
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X Height |
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X | Y_Scanlines
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X | |
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X | |
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X | |
* Y Y Y Y Y Y Y Y Y Y Y Y X X X X V |
* X X X X X X X X X X X X X X X X |
* X X X X X X X X X X X X X X X X |
* X X X X X X X X X X X X X X X X |
* X X X X X X X X X X X X X X X X V
* U V U V U V U V U V U V X X X X ^
* U V U V U V U V U V U V X X X X |
* U V U V U V U V U V U V X X X X |
* U V U V U V U V U V U V X X X X UV_Scanlines
* X X X X X X X X X X X X X X X X |
* X X X X X X X X X X X X X X X X V
* X X X X X X X X X X X X X X X X --> Buffer size alignment
*
* Y_Stride : Width aligned to 128
* UV_Stride : Width aligned to 128
* Y_Scanlines: Heigh