summaryrefslogtreecommitdiff
path: root/original-kernel-headers
diff options
context:
space:
mode:
authorVineeta Srivastava <vsrivastava@google.com>2014-05-08 06:22:50 +0000
committerVineeta Srivastava <vsrivastava@google.com>2014-05-08 06:22:50 +0000
commit6260e9a11b21813c5beae11739c28b6ffed62cac (patch)
treedfb55ed8c6ed8e5ad42e72ceced6b2e0717b2caf /original-kernel-headers
parentdff20dc79ec4b7113b068a19d60d7d7c8e722429 (diff)
downloadmsm8x74-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.h1
-rw-r--r--original-kernel-headers/linux/msm_vidc_enc.h1
-rw-r--r--original-kernel-headers/linux/videodev2.h179
-rw-r--r--original-kernel-headers/media/msm_media_info.h355
-rw-r--r--original-kernel-headers/media/msm_vidc.h130
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