diff options
author | Arun Kumar K <arun.kk@samsung.com> | 2012-10-03 21:19:06 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-10-05 21:42:17 -0400 |
commit | 2e81dde94316dfaa19f0b6f9d4131ef7eaf124a3 (patch) | |
tree | 729db0ebf3bdb55540b89c4410a35811f1bbdfc7 /include/linux/v4l2-controls.h | |
parent | 4d08f670e63200cc092724de8c95f81df606b1a5 (diff) |
[media] v4l: Add control definitions for new H264 encoder features
New controls are added for supporting H264 encoding features like:
- MVC frame packing,
- flexible macroblock ordering,
- arbitrary slice ordering,
- hierarchical coding.
Signed-off-by: Jeongtae Park <jtp.park@samsung.com>
Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Acked-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/linux/v4l2-controls.h')
-rw-r--r-- | include/linux/v4l2-controls.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h index e1b36809c21b..f56c945cecd4 100644 --- a/include/linux/v4l2-controls.h +++ b/include/linux/v4l2-controls.h | |||
@@ -349,6 +349,7 @@ enum v4l2_mpeg_video_multi_slice_mode { | |||
349 | #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) | 349 | #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) |
350 | #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) | 350 | #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) |
351 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) | 351 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) |
352 | #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) | ||
352 | 353 | ||
353 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) | 354 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
354 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) | 355 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
@@ -439,6 +440,46 @@ enum v4l2_mpeg_video_h264_vui_sar_idc { | |||
439 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, | 440 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, |
440 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, | 441 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, |
441 | }; | 442 | }; |
443 | #define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) | ||
444 | #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) | ||
445 | #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) | ||
446 | enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { | ||
447 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, | ||
448 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, | ||
449 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2, | ||
450 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3, | ||
451 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, | ||
452 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, | ||
453 | }; | ||
454 | #define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) | ||
455 | #define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) | ||
456 | enum v4l2_mpeg_video_h264_fmo_map_type { | ||
457 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, | ||
458 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, | ||
459 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2, | ||
460 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3, | ||
461 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4, | ||
462 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, | ||
463 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, | ||
464 | }; | ||
465 | #define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) | ||
466 | #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) | ||
467 | enum v4l2_mpeg_video_h264_fmo_change_dir { | ||
468 | V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, | ||
469 | V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, | ||
470 | }; | ||
471 | #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) | ||
472 | #define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) | ||
473 | #define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) | ||
474 | #define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) | ||
475 | #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) | ||
476 | #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) | ||
477 | enum v4l2_mpeg_video_h264_hierarchical_coding_type { | ||
478 | V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, | ||
479 | V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, | ||
480 | }; | ||
481 | #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) | ||
482 | #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) | ||
442 | #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) | 483 | #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) |
443 | #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) | 484 | #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) |
444 | #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) | 485 | #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) |