summaryrefslogtreecommitdiff
path: root/kernel-headers/media/msm_media_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel-headers/media/msm_media_info.h')
-rw-r--r--kernel-headers/media/msm_media_info.h305
1 files changed, 29 insertions, 276 deletions
diff --git a/kernel-headers/media/msm_media_info.h b/kernel-headers/media/msm_media_info.h
index ae72558..8297787 100644
--- a/kernel-headers/media/msm_media_info.h
+++ b/kernel-headers/media/msm_media_info.h
@@ -1,284 +1,37 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ *** To edit the content of this header, modify the corresponding
+ *** source file (e.g. under external/kernel-headers/original/) then
+ *** run bionic/libc/kernel/tools/update_all.py
+ ***
+ *** Any manual change here will be lost the next time this script will
+ *** be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
#ifndef __MEDIA_INFO_H__
#define __MEDIA_INFO_H__
-
#ifndef MSM_MEDIA_ALIGN
#define MSM_MEDIA_ALIGN(__sz, __align) (((__sz) + (__align-1)) & (~(__align-1)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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: Height aligned to 32
- * UV_Scanlines: Height/2 aligned to 16
- * Total size = align((Y_Stride * Y_Scanlines
- * + UV_Stride * UV_Scanlines + 4096), 4096)
- */
- COLOR_FMT_NV12,
-
- /* 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
- * 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
- * V U V U V U V U V U V U X X X X ^
- * V U V U V U V U V U V U X X X X |
- * V U V U V U V U V U V U X X X X |
- * V U V U V U V U V U V U 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 --> Padding & 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), 4096)
- */
- COLOR_FMT_NV21,
- /* Venus NV12_MVTB:
- * Two YUV 4:2:0 images/views one after the other
- * in a top-bottom layout, same as NV12
- * 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 | View_1
- * 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 V
- * 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 | View_2
- * 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 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: Height aligned to 32
- * UV_Scanlines: Height/2 aligned to 16
- * View_1 begin at: 0 (zero)
- * View_2 begin at: Y_Stride * Y_Scanlines + UV_Stride * UV_Scanlines
- * Total size = align((2*(Y_Stride * Y_Scanlines)
- * + 2*(UV_Stride * UV_Scanlines) + 4096), 4096)
- */
- COLOR_FMT_NV12_MVTB,
+ COLOR_FMT_NV12,
+ COLOR_FMT_NV21,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
-
-static inline unsigned int VENUS_Y_STRIDE(int color_fmt, int width)
-{
- unsigned int alignment, stride = 0;
- if (!width)
- goto invalid_input;
-
- switch (color_fmt) {
- case COLOR_FMT_NV21:
- case COLOR_FMT_NV12:
- case COLOR_FMT_NV12_MVTB:
- alignment = 128;
- stride = MSM_MEDIA_ALIGN(width, alignment);
- break;
- default:
- break;
- }
-invalid_input:
- return stride;
-}
-
-static inline unsigned int VENUS_UV_STRIDE(int color_fmt, int width)
-{
- unsigned int alignment, stride = 0;
- if (!width)
- goto invalid_input;
-
- switch (color_fmt) {
- case COLOR_FMT_NV21:
- case COLOR_FMT_NV12:
- case COLOR_FMT_NV12_MVTB:
- alignment = 128;
- stride = MSM_MEDIA_ALIGN(width, alignment);
- break;
- default:
- break;
- }
-invalid_input:
- return stride;
-}
-
-static inline unsigned int VENUS_Y_SCANLINES(int color_fmt, int height)
-{
- unsigned int alignment, sclines = 0;
- if (!height)
- goto invalid_input;
-
- switch (color_fmt) {
- case COLOR_FMT_NV21:
- case COLOR_FMT_NV12:
- case COLOR_FMT_NV12_MVTB:
- alignment = 32;
- sclines = MSM_MEDIA_ALIGN(height, alignment);
- break;
- default:
- break;
- }
-invalid_input:
- return sclines;
-}
-
-static inline unsigned int VENUS_UV_SCANLINES(int color_fmt, int height)
-{
- unsigned int alignment, sclines = 0;
- if (!height)
- goto invalid_input;
-
- switch (color_fmt) {
- case COLOR_FMT_NV21:
- case COLOR_FMT_NV12:
- case COLOR_FMT_NV12_MVTB:
- alignment = 16;
- sclines = MSM_MEDIA_ALIGN(((height + 1) >> 1), alignment);
- break;
- default:
- break;
- }
-invalid_input:
- return sclines;
-}
-
-static inline unsigned int VENUS_BUFFER_SIZE(
- int color_fmt, int width, int height)
-{
- unsigned int uv_alignment;
- unsigned int size = 0;
- unsigned int y_plane, uv_plane, y_stride,
- uv_stride, y_sclines, uv_sclines;
- if (!width || !height)
- goto invalid_input;
-
- y_stride = VENUS_Y_STRIDE(color_fmt, width);
- uv_stride = VENUS_UV_STRIDE(color_fmt, width);
- y_sclines = VENUS_Y_SCANLINES(color_fmt, height);
- uv_sclines = VENUS_UV_SCANLINES(color_fmt, height);
- switch (color_fmt) {
- case COLOR_FMT_NV21:
- case COLOR_FMT_NV12:
- uv_alignment = 4096;
- y_plane = y_stride * y_sclines;
- uv_plane = uv_stride * uv_sclines + uv_alignment;
- size = y_plane + uv_plane;
- size = MSM_MEDIA_ALIGN(size, 4096);
- break;
- case COLOR_FMT_NV12_MVTB:
- uv_alignment = 4096;
- y_plane = y_stride * y_sclines;
- uv_plane = uv_stride * uv_sclines;
- size = y_plane + uv_plane;
- size = 2 * size + uv_alignment;
- size = MSM_MEDIA_ALIGN(size, 4096);
- break;
- default:
- break;
- }
-invalid_input:
- return size;
-}
-
-static inline unsigned int VENUS_VIEW2_OFFSET(
- int color_fmt, int width, int height)
-{
- unsigned int offset = 0;
- unsigned int y_plane, uv_plane, y_stride,
- uv_stride, y_sclines, uv_sclines;
- if (!width || !height)
- goto invalid_input;
-
- y_stride = VENUS_Y_STRIDE(color_fmt, width);
- uv_stride = VENUS_UV_STRIDE(color_fmt, width);
- y_sclines = VENUS_Y_SCANLINES(color_fmt, height);
- uv_sclines = VENUS_UV_SCANLINES(color_fmt, height);
- switch (color_fmt) {
- case COLOR_FMT_NV12_MVTB:
- y_plane = y_stride * y_sclines;
- uv_plane = uv_stride * uv_sclines;
- offset = y_plane + uv_plane;
- break;
- default:
- break;
- }
-invalid_input:
- return offset;
-}
-
+#define VENUS_Y_STRIDE(__color_fmt, __width) ({ unsigned int __alignment, __stride = 0; if (__width) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 128; __stride = MSM_MEDIA_ALIGN(__width, __alignment); break; default: break; } } __stride; })
+#define VENUS_UV_STRIDE(__color_fmt, __width) ({ unsigned int __alignment, __stride = 0; if (__width) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 128; __stride = MSM_MEDIA_ALIGN(__width, __alignment); break; default: break; } } __stride; })
+#define VENUS_Y_SCANLINES(__color_fmt, __height) ({ unsigned int __alignment, __sclines = 0; if (__height) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 32; __sclines = MSM_MEDIA_ALIGN(__height, __alignment); break; default: break; } } __sclines; })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VENUS_UV_SCANLINES(__color_fmt, __height) ({ unsigned int __alignment, __sclines = 0; if (__height) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 16; __sclines = MSM_MEDIA_ALIGN(((__height + 1) >> 1), __alignment); break; default: break; } } __sclines; })
+#define VENUS_BUFFER_SIZE( __color_fmt, __width, __height) ({ unsigned int __uv_alignment; unsigned int __size = 0; unsigned int __y_plane, __uv_plane, __y_stride, __uv_stride, __y_sclines, __uv_sclines; if (__width && __height) { __y_stride = VENUS_Y_STRIDE(__color_fmt, __width); __uv_stride = VENUS_UV_STRIDE(__color_fmt, __width); __y_sclines = VENUS_Y_SCANLINES(__color_fmt, __height); __uv_sclines = VENUS_UV_SCANLINES(__color_fmt, __height); switch (__color_fmt) { case COLOR_FMT_NV12: __uv_alignment = 4096; __y_plane = __y_stride * __y_sclines; __uv_plane = __uv_stride * __uv_sclines + __uv_alignment; __size = __y_plane + __uv_plane; __size = MSM_MEDIA_ALIGN(__size, 4096); break; default: break; } } __size; })
#endif
+