You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[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>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
4d08f670e6
commit
2e81dde943
@@ -384,6 +384,25 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
||||
"Extended SAR",
|
||||
NULL,
|
||||
};
|
||||
static const char * const h264_fp_arrangement_type[] = {
|
||||
"Checkerboard",
|
||||
"Column",
|
||||
"Row",
|
||||
"Side by Side",
|
||||
"Top Bottom",
|
||||
"Temporal",
|
||||
NULL,
|
||||
};
|
||||
static const char * const h264_fmo_map_type[] = {
|
||||
"Interleaved Slices",
|
||||
"Scattered Slices",
|
||||
"Foreground with Leftover",
|
||||
"Box Out",
|
||||
"Raster Scan",
|
||||
"Wipe Scan",
|
||||
"Explicit",
|
||||
NULL,
|
||||
};
|
||||
static const char * const mpeg_mpeg4_level[] = {
|
||||
"0",
|
||||
"0b",
|
||||
@@ -508,6 +527,10 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
||||
return h264_profile;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC:
|
||||
return vui_sar_idc;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE:
|
||||
return h264_fp_arrangement_type;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE:
|
||||
return h264_fmo_map_type;
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL:
|
||||
return mpeg_mpeg4_level;
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE:
|
||||
@@ -643,6 +666,22 @@ const char *v4l2_ctrl_get_name(u32 id)
|
||||
case V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH: return "Horizontal Size of SAR";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE: return "Aspect Ratio VUI Enable";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC: return "VUI Aspect Ratio IDC";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING: return "H264 Enable Frame Packing SEI";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0: return "H264 Set Curr. Frame as Frame0";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE: return "H264 FP Arrangement Type";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO: return "H264 Flexible MB Ordering";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE: return "H264 Map Type for FMO";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP: return "H264 FMO Number of Slice Groups";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION: return "H264 FMO Direction of Change";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE: return "H264 FMO Size of 1st Slice Grp";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH: return "H264 FMO No. of Consecutive MBs";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_ASO: return "H264 Arbitrary Slice Ordering";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER: return "H264 ASO Slice Order";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING: return "Enable H264 Hierarchical Coding";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE: return "H264 Hierarchical Coding Type";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER:return "H264 Number of HC Layers";
|
||||
case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP:
|
||||
return "H264 Set QP Value for HC Layers";
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP: return "MPEG4 I-Frame QP Value";
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP: return "MPEG4 P-Frame QP Value";
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP: return "MPEG4 B-Frame QP Value";
|
||||
@@ -657,6 +696,7 @@ const char *v4l2_ctrl_get_name(u32 id)
|
||||
case V4L2_CID_MPEG_VIDEO_VBV_SIZE: return "VBV Buffer Size";
|
||||
case V4L2_CID_MPEG_VIDEO_DEC_PTS: return "Video Decoder PTS";
|
||||
case V4L2_CID_MPEG_VIDEO_DEC_FRAME: return "Video Decoder Frame Count";
|
||||
case V4L2_CID_MPEG_VIDEO_VBV_DELAY: return "Initial Delay for VBV Control";
|
||||
|
||||
/* CAMERA controls */
|
||||
/* Keep the order of the 'case's the same as in videodev2.h! */
|
||||
@@ -854,6 +894,8 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
||||
case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE:
|
||||
case V4L2_CID_MPEG_VIDEO_H264_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC:
|
||||
case V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE:
|
||||
case V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE:
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE:
|
||||
case V4L2_CID_JPEG_CHROMA_SUBSAMPLING:
|
||||
|
||||
Reference in New Issue
Block a user