diff options
author | Vineeta Srivastava <vsrivastava@google.com> | 2014-05-08 06:22:50 +0000 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2014-05-08 06:22:50 +0000 |
commit | 6260e9a11b21813c5beae11739c28b6ffed62cac (patch) | |
tree | dfb55ed8c6ed8e5ad42e72ceced6b2e0717b2caf /original-kernel-headers | |
parent | dff20dc79ec4b7113b068a19d60d7d7c8e722429 (diff) | |
download | msm8x74-6260e9a11b21813c5beae11739c28b6ffed62cac.tar.gz |
Revert "Revert "Revert "msm8x74: update video kernel headers"""
This reverts commit dff20dc79ec4b7113b068a19d60d7d7c8e722429.
Change-Id: If647be731c2552d4dd3d9fdf1171db902d9b575f
Diffstat (limited to 'original-kernel-headers')
-rw-r--r-- | original-kernel-headers/linux/msm_vidc_dec.h | 1 | ||||
-rw-r--r-- | original-kernel-headers/linux/msm_vidc_enc.h | 1 | ||||
-rw-r--r-- | original-kernel-headers/linux/videodev2.h | 179 | ||||
-rw-r--r-- | original-kernel-headers/media/msm_media_info.h | 355 | ||||
-rw-r--r-- | original-kernel-headers/media/msm_vidc.h | 130 |
5 files changed, 139 insertions, 527 deletions
diff --git a/original-kernel-headers/linux/msm_vidc_dec.h b/original-kernel-headers/linux/msm_vidc_dec.h index 6a1c3cb..35279bf 100644 --- a/original-kernel-headers/linux/msm_vidc_dec.h +++ b/original-kernel-headers/linux/msm_vidc_dec.h @@ -284,7 +284,6 @@ enum vdec_codec { VDEC_CODECTYPE_VC1 = 0xb, VDEC_CODECTYPE_VC1_RCV = 0xc, VDEC_CODECTYPE_HEVC = 0xd, - VDEC_CODECTYPE_MVC = 0xe, }; enum vdec_mpeg2_profile { diff --git a/original-kernel-headers/linux/msm_vidc_enc.h b/original-kernel-headers/linux/msm_vidc_enc.h index 4ce3db1..dcc2353 100644 --- a/original-kernel-headers/linux/msm_vidc_enc.h +++ b/original-kernel-headers/linux/msm_vidc_enc.h @@ -59,7 +59,6 @@ #define VEN_EXTRADATA_QCOMFILLER 0x002 #define VEN_EXTRADATA_SLICEINFO 0x100 #define VEN_EXTRADATA_LTRINFO 0x200 -#define VEN_EXTRADATA_MBINFO 0x400 /*ENCODER CONFIGURATION CONSTANTS*/ diff --git a/original-kernel-headers/linux/videodev2.h b/original-kernel-headers/linux/videodev2.h index e0e9503..e616e10 100644 --- a/original-kernel-headers/linux/videodev2.h +++ b/original-kernel-headers/linux/videodev2.h @@ -682,40 +682,30 @@ struct v4l2_buffer { }; /* Flags for 'flags' field */ -#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ -#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ -#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ -#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ -#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ -#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ +#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ +#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ +#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ +#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ +#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ +#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ /* Buffer is ready, but the data contained within is corrupted. */ -#define V4L2_BUF_FLAG_ERROR 0x0040 -#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ -#define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ +#define V4L2_BUF_FLAG_ERROR 0x0040 +#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ +#define V4L2_BUF_FLAG_INPUT 0x0200 /* input field is valid */ +#define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ /* Cache handling flags */ -#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 -#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 -/* Timestamp type */ -#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 -#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 -#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 -#define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000 -/* Vendor extensions */ -#define V4L2_QCOM_BUF_FLAG_CODECCONFIG 0x10000 -#define V4L2_QCOM_BUF_FLAG_EOSEQ 0x20000 -#define V4L2_QCOM_BUF_TIMESTAMP_INVALID 0x40000 -#define V4L2_QCOM_BUF_FLAG_IDRFRAME 0x80000 /*Image is a IDR-frame*/ -#define V4L2_QCOM_BUF_FLAG_DECODEONLY 0x100000 -#define V4L2_QCOM_BUF_DATA_CORRUPT 0x200000 -#define V4L2_QCOM_BUF_DROP_FRAME 0x400000 -#define V4L2_QCOM_BUF_INPUT_UNSUPPORTED 0x800000 -#define V4L2_QCOM_BUF_FLAG_EOS 0x1000000 -#define V4L2_QCOM_BUF_TS_DISCONTINUITY 0x2000000 -#define V4L2_QCOM_BUF_TS_ERROR 0x4000000 -#define V4L2_QCOM_BUF_FLAG_READONLY 0x8000000 -#define V4L2_MSM_VIDC_BUF_START_CODE_NOT_FOUND 0x10000000 -#define V4L2_MSM_BUF_FLAG_YUV_601_709_CLAMP 0x20000000 -#define V4L2_MSM_BUF_FLAG_MBAFF 0x40000000 +#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 +#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 +#define V4L2_BUF_FLAG_EOS 0x2000 +#define V4L2_QCOM_BUF_FLAG_CODECCONFIG 0x4000 +#define V4L2_QCOM_BUF_FLAG_EOSEQ 0x8000 +#define V4L2_QCOM_BUF_TIMESTAMP_INVALID 0x10000 +#define V4L2_QCOM_BUF_FLAG_IDRFRAME 0x20000 /* Image is a IDR-frame */ +#define V4L2_QCOM_BUF_FLAG_DECODEONLY 0x40000 +#define V4L2_QCOM_BUF_DATA_CORRUPT 0x80000 +#define V4L2_QCOM_BUF_DROP_FRAME 0x100000 +#define V4L2_QCOM_BUF_INPUT_UNSUPPORTED 0x200000 +#define V4L2_QCOM_BUF_FLAG_READONLY 0x400000 /* * O V E R L A Y P R E V I E W @@ -1561,7 +1551,6 @@ enum v4l2_mpeg_video_h264_level { V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13, V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14, V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15, - V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16, }; #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) @@ -1845,15 +1834,10 @@ enum v4l2_mpeg_vidc_extradata { V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO, V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB, V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER, - V4L2_MPEG_VIDC_EXTRADATA_INPUT_CROP, - V4L2_MPEG_VIDC_EXTRADATA_DIGITAL_ZOOM, - V4L2_MPEG_VIDC_EXTRADATA_ASPECT_RATIO, - V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP, - V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA, - V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP, - V4L2_MPEG_VIDC_EXTRADATA_FRAME_BITS_INFO, - V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI, - V4L2_MPEG_VIDC_EXTRADATA_LTR + V4L2_MPEG_VIDC_INDEX_EXTRADATA_INPUT_CROP, + V4L2_MPEG_VIDC_INDEX_EXTRADATA_DIGITAL_ZOOM, + V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO, + V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP }; #define V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE + 26) @@ -1920,117 +1904,6 @@ enum v4l2_mpeg_vidc_video_preserve_text_quality { #define V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_SEQ_HEADER \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 36) -#define V4L2_CID_MPEG_VIDC_VIDEO_LTRMODE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 37) - -enum v4l2_mpeg_vidc_video_ltrmode { - V4L2_MPEG_VIDC_VIDEO_LTR_MODE_DISABLE = 0, - V4L2_MPEG_VIDC_VIDEO_LTR_MODE_MANUAL = 1, - V4L2_MPEG_VIDC_VIDEO_LTR_MODE_PERIODIC = 2 -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 38) - -#define V4L2_CID_MPEG_VIDC_VIDEO_USELTRFRAME \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 39) - -#define V4L2_CID_MPEG_VIDC_VIDEO_MARKLTRFRAME \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 40) - -#define V4L2_CID_MPEG_VIDC_VIDEO_HIER_P_NUM_LAYERS \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 41) - -#define V4L2_CID_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 42) - -#define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MIN_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 43) -#define V4L2_CID_MPEG_VIDC_VIDEO_VP8_MAX_QP (V4L2_CID_MPEG_MSM_VIDC_BASE + 44) - -#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG4_TIME_RESOLUTION \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 45) -#define V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_MODE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 46) - -enum v4l2_mpeg_vidc_video_decoder_multi_stream { - V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_PRIMARY = 0, - V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_SECONDARY = 1, -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_MVC_BUFFER_LAYOUT \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 47) -enum v4l2_mpeg_vidc_video_mvc_layout { - V4L2_MPEG_VIDC_VIDEO_MVC_SEQUENTIAL = 0, - V4L2_MPEG_VIDC_VIDEO_MVC_TOP_BOTTOM = 1 -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_CONCEAL_COLOR \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 48) - -#define V4L2_CID_MPEG_VIDC_VIDEO_SCS_THRESHOLD \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 49) - -#define V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 50) -enum v4l2_mpeg_vidc_video_deinterlace { - V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_DISABLED = 0, - V4L2_CID_MPEG_VIDC_VIDEO_DEINTERLACE_ENABLED = 1 -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE+51) -enum v4l2_mpeg_vidc_video_mpeg2_level { - V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_0 = 0, - V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_1 = 1, - V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_2 = 2, - V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_3 = 3, -}; -#define V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_MSM_VIDC_BASE+52) -enum v4l2_mpeg_vidc_video_mpeg2_profile { - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SIMPLE = 0, - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_MAIN = 1, - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_422 = 2, - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 3, - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_SPATIAL_SCALABLE = 4, - V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_HIGH = 5, -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 53) -enum v4l2_mpeg_vidc_video_rate_control_timestamp_mode { - V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_HONOR = 0, - V4L2_MPEG_VIDC_VIDEO_RATE_CONTROL_TIMESTAMP_MODE_IGNORE = 1, -}; - -#define V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_INITIAL_QP \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 54) - -#define V4L2_CID_MPEG_VIDC_VIDEO_I_FRAME_QP \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 55) - -#define V4L2_CID_MPEG_VIDC_VIDEO_P_FRAME_QP \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 56) - -#define V4L2_CID_MPEG_VIDC_VIDEO_B_FRAME_QP \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 57) - -#define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_X_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 58) - -#define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_X_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 59) - -#define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_X_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 60) - -#define V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_Y_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 61) - -#define V4L2_CID_MPEG_VIDC_VIDEO_PFRAME_Y_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 62) - -#define V4L2_CID_MPEG_VIDC_VIDEO_BFRAME_Y_RANGE \ - (V4L2_CID_MPEG_MSM_VIDC_BASE + 63) - /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) #define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) diff --git a/original-kernel-headers/media/msm_media_info.h b/original-kernel-headers/media/msm_media_info.h index ae72558..42c3572 100644 --- a/original-kernel-headers/media/msm_media_info.h +++ b/original-kernel-headers/media/msm_media_info.h @@ -6,279 +6,94 @@ #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, }; -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; \ +}) + +#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 diff --git a/original-kernel-headers/media/msm_vidc.h b/original-kernel-headers/media/msm_vidc.h index 0a91e32..2164275 100644 --- a/original-kernel-headers/media/msm_vidc.h +++ b/original-kernel-headers/media/msm_vidc.h @@ -25,11 +25,10 @@ int msm_vidc_enum_fmt(void *instance, struct v4l2_fmtdesc *f); int msm_vidc_s_fmt(void *instance, struct v4l2_format *f); int msm_vidc_g_fmt(void *instance, struct v4l2_format *f); int msm_vidc_s_ctrl(void *instance, struct v4l2_control *a); -int msm_vidc_s_ext_ctrl(void *instance, struct v4l2_ext_controls *a); int msm_vidc_g_ctrl(void *instance, struct v4l2_control *a); int msm_vidc_reqbufs(void *instance, struct v4l2_requestbuffers *b); int msm_vidc_prepare_buf(void *instance, struct v4l2_buffer *b); -int msm_vidc_release_buffers(void *instance, int buffer_type); +int msm_vidc_release_buf(void *instance, struct v4l2_buffer *b); int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b); int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b); int msm_vidc_streamon(void *instance, enum v4l2_buf_type i); @@ -49,14 +48,6 @@ int msm_vidc_wait(void *instance); int msm_vidc_s_parm(void *instance, struct v4l2_streamparm *a); int msm_vidc_enum_framesizes(void *instance, struct v4l2_frmsizeenum *fsize); #endif -struct msm_vidc_extradata_header { - unsigned int size; - unsigned int:32; /** Keeping binary compatibility */ - unsigned int:32; /* with firmware and OpenMAX IL **/ - unsigned int type; /* msm_vidc_extradata_type */ - unsigned int data_size; - unsigned char data[1]; -}; struct msm_vidc_interlace_payload { unsigned int format; }; @@ -73,6 +64,7 @@ struct msm_vidc_concealmb_payload { struct msm_vidc_recoverysei_payload { unsigned int flags; }; + struct msm_vidc_aspect_ratio_payload { unsigned int size; unsigned int version; @@ -80,6 +72,7 @@ struct msm_vidc_aspect_ratio_payload { unsigned int aspect_width; unsigned int aspect_height; }; + struct msm_vidc_mpeg2_seqdisp_payload { unsigned int video_format; bool color_descp; @@ -89,30 +82,7 @@ struct msm_vidc_mpeg2_seqdisp_payload { unsigned int disp_width; unsigned int disp_height; }; -struct msm_vidc_input_crop_payload { - unsigned int size; - unsigned int version; - unsigned int port_index; - unsigned int left; - unsigned int top; - unsigned int width; - unsigned int height; -}; -struct msm_vidc_digital_zoom_payload { - unsigned int size; - unsigned int version; - unsigned int port_index; - unsigned int zoom_width; - unsigned int zoom_height; -}; -struct msm_vidc_extradata_index { - unsigned int type; - union { - struct msm_vidc_input_crop_payload input_crop; - struct msm_vidc_digital_zoom_payload digital_zoom; - struct msm_vidc_aspect_ratio_payload aspect_ratio; - }; -}; + struct msm_vidc_panscan_window { unsigned int panscan_height_offset; unsigned int panscan_width_offset; @@ -123,79 +93,35 @@ struct msm_vidc_panscan_window_payload { unsigned int num_panscan_windows; struct msm_vidc_panscan_window wnd[1]; }; -struct msm_vidc_stream_userdata_payload { - unsigned int type; - unsigned int data[1]; -}; -struct msm_vidc_frame_qp_payload { - unsigned int frame_qp; -}; -struct msm_vidc_frame_bits_info_payload { - unsigned int frame_bits; - unsigned int header_bits; -}; -struct msm_vidc_s3d_frame_packing_payload { - unsigned int fpa_id; - unsigned int cancel_flag; - unsigned int fpa_type; - unsigned int quin_cunx_flag; - unsigned int content_interprtation_type; - unsigned int spatial_flipping_flag; - unsigned int frame0_flipped_flag; - unsigned int field_views_flag; - unsigned int current_frame_is_frame0_flag; - unsigned int frame0_self_contained_flag; - unsigned int frame1_self_contained_flag; - unsigned int frame0_graid_pos_x; - unsigned int frame0_graid_pos_y; - unsigned int frame1_graid_pos_x; - unsigned int frame1_graid_pos_y; - unsigned int fpa_reserved_byte; - unsigned int fpa_repetition_period; - unsigned int fpa_extension_flag; -}; - enum msm_vidc_extradata_type { - MSM_VIDC_EXTRADATA_NONE = 0x00000000, - MSM_VIDC_EXTRADATA_MB_QUANTIZATION = 0x00000001, - MSM_VIDC_EXTRADATA_INTERLACE_VIDEO = 0x00000002, - MSM_VIDC_EXTRADATA_VC1_FRAMEDISP = 0x00000003, - MSM_VIDC_EXTRADATA_VC1_SEQDISP = 0x00000004, - MSM_VIDC_EXTRADATA_TIMESTAMP = 0x00000005, - MSM_VIDC_EXTRADATA_S3D_FRAME_PACKING = 0x00000006, - MSM_VIDC_EXTRADATA_FRAME_RATE = 0x00000007, - MSM_VIDC_EXTRADATA_PANSCAN_WINDOW = 0x00000008, - MSM_VIDC_EXTRADATA_RECOVERY_POINT_SEI = 0x00000009, - MSM_VIDC_EXTRADATA_MPEG2_SEQDISP = 0x0000000D, - MSM_VIDC_EXTRADATA_STREAM_USERDATA = 0x0000000E, - MSM_VIDC_EXTRADATA_FRAME_QP = 0x0000000F, - MSM_VIDC_EXTRADATA_FRAME_BITS_INFO = 0x00000010, - MSM_VIDC_EXTRADATA_INPUT_CROP = 0x0700000E, - MSM_VIDC_EXTRADATA_DIGITAL_ZOOM = 0x07000010, - MSM_VIDC_EXTRADATA_MULTISLICE_INFO = 0x7F100000, - MSM_VIDC_EXTRADATA_NUM_CONCEALED_MB = 0x7F100001, - MSM_VIDC_EXTRADATA_INDEX = 0x7F100002, - MSM_VIDC_EXTRADATA_ASPECT_RATIO = 0x7F100003, - MSM_VIDC_EXTRADATA_METADATA_LTR = 0x7F100004, - MSM_VIDC_EXTRADATA_METADATA_FILLER = 0x7FE00002, - MSM_VIDC_EXTRADATA_METADATA_MBI = 0x7F100005, + EXTRADATA_NONE = 0x00000000, + EXTRADATA_MB_QUANTIZATION = 0x00000001, + EXTRADATA_INTERLACE_VIDEO = 0x00000002, + EXTRADATA_VC1_FRAMEDISP = 0x00000003, + EXTRADATA_VC1_SEQDISP = 0x00000004, + EXTRADATA_TIMESTAMP = 0x00000005, + EXTRADATA_S3D_FRAME_PACKING = 0x00000006, + EXTRADATA_FRAME_RATE = 0x00000007, + EXTRADATA_PANSCAN_WINDOW = 0x00000008, + EXTRADATA_RECOVERY_POINT_SEI = 0x00000009, + EXTRADATA_MPEG2_SEQDISP = 0x0000000D, + EXTRADATA_MULTISLICE_INFO = 0x7F100000, + EXTRADATA_NUM_CONCEALED_MB = 0x7F100001, + EXTRADATA_INDEX = 0x7F100002, + EXTRADATA_ASPECT_RATIO = 0x7F100003, + EXTRADATA_METADATA_FILLER = 0x7FE00002, }; enum msm_vidc_interlace_type { - MSM_VIDC_INTERLACE_FRAME_PROGRESSIVE = 0x01, - MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST = 0x02, - MSM_VIDC_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST = 0x04, - MSM_VIDC_INTERLACE_FRAME_TOPFIELDFIRST = 0x08, - MSM_VIDC_INTERLACE_FRAME_BOTTOMFIELDFIRST = 0x10, + INTERLACE_FRAME_PROGRESSIVE = 0x01, + INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST = 0x02, + INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST = 0x04, + INTERLACE_FRAME_TOPFIELDFIRST = 0x08, + INTERLACE_FRAME_BOTTOMFIELDFIRST = 0x10, }; enum msm_vidc_recovery_sei { - MSM_VIDC_FRAME_RECONSTRUCTION_INCORRECT = 0x0, - MSM_VIDC_FRAME_RECONSTRUCTION_CORRECT = 0x01, - MSM_VIDC_FRAME_RECONSTRUCTION_APPROXIMATELY_CORRECT = 0x02, -}; -enum msm_vidc_userdata_type { - MSM_VIDC_USERDATA_TYPE_FRAME = 0x1, - MSM_VIDC_USERDATA_TYPE_TOP_FIELD = 0x2, - MSM_VIDC_USERDATA_TYPE_BOTTOM_FIELD = 0x3, + FRAME_RECONSTRUCTION_INCORRECT = 0x0, + FRAME_RECONSTRUCTION_CORRECT = 0x01, + FRAME_RECONSTRUCTION_APPROXIMATELY_CORRECT = 0x02, }; #endif |