Loading include/uapi/media/msm_media_info.h +40 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,41 @@ enum color_fmts { * + UV_Stride * UV_Scanlines, 4096) */ COLOR_FMT_NV12, /* 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 . . . . ^ ^ * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . V * U V U V U V U V U V U V . . . . ^ * U V U V U V U V U V U V . . . . | * U V U V U V U V U V U V . . . . | * U V U V U V U V U V U V . . . . UV_Scanlines * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . V * . . . . . . . . . . . . . . . . --> Buffer size alignment * * Y_Stride : Width aligned to 128 * UV_Stride : Width aligned to 128 * Y_Scanlines: Height aligned to 32 * UV_Scanlines: Height/2 aligned to 16 * Total size = align(Y_Stride * Y_Scanlines * + UV_Stride * UV_Scanlines, 4096) */ COLOR_FMT_NV12_128, /* Venus NV21: * YUV 4:2:0 image with a plane of 8 bit Y samples followed * by an interleaved V/U plane containing 8 bit 2x2 subsampled Loading Loading @@ -806,6 +841,7 @@ static inline unsigned int VENUS_Y_STRIDE(unsigned int color_fmt, alignment = 512; stride = MSM_MEDIA_ALIGN(width, alignment); break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: alignment = 128; stride = MSM_MEDIA_ALIGN(width, alignment); Loading Loading @@ -852,6 +888,7 @@ static inline unsigned int VENUS_UV_STRIDE(unsigned int color_fmt, alignment = 512; stride = MSM_MEDIA_ALIGN(width, alignment); break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: alignment = 128; stride = MSM_MEDIA_ALIGN(width, alignment); Loading Loading @@ -896,6 +933,7 @@ static inline unsigned int VENUS_Y_SCANLINES(unsigned int color_fmt, case COLOR_FMT_NV12_512: alignment = 512; break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: case COLOR_FMT_P010: alignment = 32; Loading Loading @@ -935,6 +973,7 @@ static inline unsigned int VENUS_UV_SCANLINES(unsigned int color_fmt, case COLOR_FMT_NV12_512: alignment = 256; break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_BPP10_UBWC: case COLOR_FMT_P010_UBWC: case COLOR_FMT_P010: Loading Loading @@ -1235,6 +1274,7 @@ static inline unsigned int VENUS_BUFFER_SIZE(unsigned int color_fmt, case COLOR_FMT_NV12: case COLOR_FMT_P010: case COLOR_FMT_NV12_512: case COLOR_FMT_NV12_128: y_plane = y_stride * y_sclines; uv_plane = uv_stride * uv_sclines; size = y_plane + uv_plane; Loading Loading
include/uapi/media/msm_media_info.h +40 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,41 @@ enum color_fmts { * + UV_Stride * UV_Scanlines, 4096) */ COLOR_FMT_NV12, /* 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 . . . . ^ ^ * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . V * U V U V U V U V U V U V . . . . ^ * U V U V U V U V U V U V . . . . | * U V U V U V U V U V U V . . . . | * U V U V U V U V U V U V . . . . UV_Scanlines * . . . . . . . . . . . . . . . . | * . . . . . . . . . . . . . . . . V * . . . . . . . . . . . . . . . . --> Buffer size alignment * * Y_Stride : Width aligned to 128 * UV_Stride : Width aligned to 128 * Y_Scanlines: Height aligned to 32 * UV_Scanlines: Height/2 aligned to 16 * Total size = align(Y_Stride * Y_Scanlines * + UV_Stride * UV_Scanlines, 4096) */ COLOR_FMT_NV12_128, /* Venus NV21: * YUV 4:2:0 image with a plane of 8 bit Y samples followed * by an interleaved V/U plane containing 8 bit 2x2 subsampled Loading Loading @@ -806,6 +841,7 @@ static inline unsigned int VENUS_Y_STRIDE(unsigned int color_fmt, alignment = 512; stride = MSM_MEDIA_ALIGN(width, alignment); break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: alignment = 128; stride = MSM_MEDIA_ALIGN(width, alignment); Loading Loading @@ -852,6 +888,7 @@ static inline unsigned int VENUS_UV_STRIDE(unsigned int color_fmt, alignment = 512; stride = MSM_MEDIA_ALIGN(width, alignment); break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: alignment = 128; stride = MSM_MEDIA_ALIGN(width, alignment); Loading Loading @@ -896,6 +933,7 @@ static inline unsigned int VENUS_Y_SCANLINES(unsigned int color_fmt, case COLOR_FMT_NV12_512: alignment = 512; break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_UBWC: case COLOR_FMT_P010: alignment = 32; Loading Loading @@ -935,6 +973,7 @@ static inline unsigned int VENUS_UV_SCANLINES(unsigned int color_fmt, case COLOR_FMT_NV12_512: alignment = 256; break; case COLOR_FMT_NV12_128: case COLOR_FMT_NV12_BPP10_UBWC: case COLOR_FMT_P010_UBWC: case COLOR_FMT_P010: Loading Loading @@ -1235,6 +1274,7 @@ static inline unsigned int VENUS_BUFFER_SIZE(unsigned int color_fmt, case COLOR_FMT_NV12: case COLOR_FMT_P010: case COLOR_FMT_NV12_512: case COLOR_FMT_NV12_128: y_plane = y_stride * y_sclines; uv_plane = uv_stride * uv_sclines; size = y_plane + uv_plane; Loading