forked from rubenslte/android_kernel_samsung_msm8226
msm: vidc: Add support for VUI_DISPLAY_INFO
This is needed to get color primaries, transfer and matrix values from avc devoder. Issue: FP2P-432 Issue: FP2P-435 Change-Id: Id1d375c9f6e1c05fc9b8336162bb11cc12d6dea2
This commit is contained in:
committed by
Francescodario Cuzzocrea
parent
3ebffa120f
commit
d5edb9b824
@@ -369,6 +369,9 @@ static int get_hfi_extradata_index(enum hal_extradata_id index)
|
||||
case HAL_EXTRADATA_STREAM_USERDATA:
|
||||
ret = HFI_PROPERTY_PARAM_VDEC_STREAM_USERDATA_EXTRADATA;
|
||||
break;
|
||||
case HAL_EXTRADATA_VUI_DISPLAY_INFO:
|
||||
ret = HFI_PROPERTY_PARAM_VUI_DISPLAY_INFO_EXTRADATA;
|
||||
break;
|
||||
default:
|
||||
dprintk(VIDC_WARN, "Extradata index not found: %d\n", index);
|
||||
break;
|
||||
|
||||
@@ -73,6 +73,7 @@ static const char *const mpeg_video_vidc_extradata[] = {
|
||||
"Extradata digital zoom",
|
||||
"Extradata aspect ratio",
|
||||
"Extradata mpeg2 seqdisp",
|
||||
"Extradata display VUI",
|
||||
};
|
||||
static const char *const mpeg_vidc_video_alloc_mode_type[] = {
|
||||
"Buffer Allocation Static",
|
||||
@@ -212,7 +213,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
|
||||
.name = "Extradata Type",
|
||||
.type = V4L2_CTRL_TYPE_MENU,
|
||||
.minimum = V4L2_MPEG_VIDC_EXTRADATA_NONE,
|
||||
.maximum = V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA,
|
||||
.maximum = V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY,
|
||||
.default_value = V4L2_MPEG_VIDC_EXTRADATA_NONE,
|
||||
.menu_skip_mask = ~(
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_NONE) |
|
||||
@@ -234,7 +235,8 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP) |
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP) |
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_FRAME_BITS_INFO) |
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA)
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA) |
|
||||
(1 << V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY)
|
||||
),
|
||||
.qmenu = mpeg_video_vidc_extradata,
|
||||
.step = 0,
|
||||
|
||||
@@ -3292,6 +3292,9 @@ enum hal_extradata_id msm_comm_get_hal_extradata_index(
|
||||
case V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI:
|
||||
ret = HAL_EXTRADATA_METADATA_MBI;
|
||||
break;
|
||||
case V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY:
|
||||
ret = HAL_EXTRADATA_VUI_DISPLAY_INFO;
|
||||
break;
|
||||
case V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA:
|
||||
ret = HAL_EXTRADATA_STREAM_USERDATA;
|
||||
break;
|
||||
|
||||
@@ -207,6 +207,8 @@ struct hfi_extradata_header {
|
||||
(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x018)
|
||||
#define HFI_PROPERTY_PARAM_VDEC_FRAME_BITS_INFO_EXTRADATA \
|
||||
(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x019)
|
||||
#define HFI_PROPERTY_PARAM_VUI_DISPLAY_INFO_EXTRADATA \
|
||||
(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x01B)
|
||||
|
||||
#define HFI_PROPERTY_CONFIG_VDEC_OX_START \
|
||||
(HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x0000)
|
||||
|
||||
@@ -100,11 +100,12 @@ enum hal_extradata_id {
|
||||
HAL_EXTRADATA_METADATA_FILLER,
|
||||
HAL_EXTRADATA_ASPECT_RATIO,
|
||||
HAL_EXTRADATA_MPEG2_SEQDISP,
|
||||
HAL_EXTRADATA_STREAM_USERDATA,
|
||||
HAL_EXTRADATA_FRAME_QP,
|
||||
HAL_EXTRADATA_FRAME_BITS_INFO,
|
||||
HAL_EXTRADATA_LTR_INFO,
|
||||
HAL_EXTRADATA_METADATA_MBI,
|
||||
HAL_EXTRADATA_STREAM_USERDATA,
|
||||
HAL_EXTRADATA_VUI_DISPLAY_INFO,
|
||||
};
|
||||
|
||||
enum hal_property {
|
||||
|
||||
@@ -1849,6 +1849,7 @@ enum v4l2_mpeg_vidc_extradata {
|
||||
V4L2_MPEG_VIDC_EXTRADATA_LTR = 21,
|
||||
V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI = 22,
|
||||
V4L2_MPEG_VIDC_EXTRADATA_STREAM_USERDATA = 23,
|
||||
V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY = 24,
|
||||
};
|
||||
|
||||
#define V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE + 26)
|
||||
|
||||
@@ -185,6 +185,24 @@ struct msm_vidc_stream_userdata_payload {
|
||||
unsigned int data[1];
|
||||
};
|
||||
|
||||
struct msm_vidc_vui_display_info_payload {
|
||||
unsigned int video_signal_present_flag;
|
||||
unsigned int video_format;
|
||||
unsigned int bit_depth_y;
|
||||
unsigned int bit_depth_c;
|
||||
unsigned int video_full_range_flag;
|
||||
unsigned int color_description_present_flag;
|
||||
unsigned int color_primaries;
|
||||
unsigned int transfer_characteristics;
|
||||
unsigned int matrix_coefficients;
|
||||
unsigned int chroma_location_info_present_flag;
|
||||
unsigned int chroma_format_idc;
|
||||
unsigned int separate_color_plane_flag;
|
||||
unsigned int chroma_sample_loc_type_top_field;
|
||||
unsigned int chroma_sample_loc_type_bottom_field;
|
||||
};
|
||||
|
||||
|
||||
enum msm_vidc_extradata_type {
|
||||
EXTRADATA_NONE = 0x00000000,
|
||||
EXTRADATA_MB_QUANTIZATION = 0x00000001,
|
||||
@@ -207,6 +225,7 @@ enum msm_vidc_extradata_type {
|
||||
EXTRADATA_METADATA_FILLER = 0x7FE00002,
|
||||
MSM_VIDC_EXTRADATA_METADATA_LTR = 0x7F100004,
|
||||
EXTRADATA_METADATA_MBI = 0x7F100005,
|
||||
MSM_VIDC_EXTRADATA_VUI_DISPLAY_INFO = 0x7F100006,
|
||||
};
|
||||
enum msm_vidc_interlace_type {
|
||||
INTERLACE_FRAME_PROGRESSIVE = 0x01,
|
||||
@@ -226,4 +245,65 @@ enum msm_vidc_userdata_type {
|
||||
MSM_VIDC_USERDATA_TYPE_TOP_FIELD = 0x2,
|
||||
MSM_VIDC_USERDATA_TYPE_BOTTOM_FIELD = 0x3,
|
||||
};
|
||||
|
||||
enum msm_vidc_h264_color_primaries_values {
|
||||
MSM_VIDC_RESERVED_1 = 0,
|
||||
MSM_VIDC_BT709_5 = 1,
|
||||
MSM_VIDC_UNSPECIFIED = 2,
|
||||
MSM_VIDC_RESERVED_2 = 3,
|
||||
MSM_VIDC_BT470_6_M = 4,
|
||||
MSM_VIDC_BT601_6_625 = 5,
|
||||
MSM_VIDC_BT470_6_BG = MSM_VIDC_BT601_6_625,
|
||||
MSM_VIDC_BT601_6_525 = 6,
|
||||
MSM_VIDC_SMPTE_240M = 7,
|
||||
MSM_VIDC_GENERIC_FILM = 8,
|
||||
MSM_VIDC_BT2020 = 9,
|
||||
};
|
||||
|
||||
enum msm_vidc_vp9_color_primaries_values {
|
||||
MSM_VIDC_CS_UNKNOWN,
|
||||
MSM_VIDC_CS_BT_601,
|
||||
MSM_VIDC_CS_BT_709,
|
||||
MSM_VIDC_CS_SMPTE_170,
|
||||
MSM_VIDC_CS_SMPTE_240,
|
||||
MSM_VIDC_CS_BT_2020,
|
||||
MSM_VIDC_CS_RESERVED,
|
||||
MSM_VIDC_CS_RGB,
|
||||
};
|
||||
|
||||
enum msm_vidc_h264_matrix_coeff_values {
|
||||
MSM_VIDC_MATRIX_RGB = 0,
|
||||
MSM_VIDC_MATRIX_BT_709_5 = 1,
|
||||
MSM_VIDC_MATRIX_UNSPECIFIED = 2,
|
||||
MSM_VIDC_MATRIX_RESERVED = 3,
|
||||
MSM_VIDC_MATRIX_FCC_47 = 4,
|
||||
MSM_VIDC_MATRIX_601_6_625 = 5,
|
||||
MSM_VIDC_MATRIX_BT470_BG = MSM_VIDC_MATRIX_601_6_625,
|
||||
MSM_VIDC_MATRIX_601_6_525 = 6,
|
||||
MSM_VIDC_MATRIX_SMPTE_170M = MSM_VIDC_MATRIX_601_6_525,
|
||||
MSM_VIDC_MATRIX_SMPTE_240M = 7,
|
||||
MSM_VIDC_MATRIX_Y_CG_CO = 8,
|
||||
MSM_VIDC_MATRIX_BT_2020 = 9,
|
||||
MSM_VIDC_MATRIX_BT_2020_CONST = 10,
|
||||
};
|
||||
|
||||
enum msm_vidc_h264_transfer_chars_values {
|
||||
MSM_VIDC_TRANSFER_RESERVED_1 = 0,
|
||||
MSM_VIDC_TRANSFER_BT709_5 = 1,
|
||||
MSM_VIDC_TRANSFER_UNSPECIFIED = 2,
|
||||
MSM_VIDC_TRANSFER_RESERVED_2 = 3,
|
||||
MSM_VIDC_TRANSFER_BT_470_6_M = 4,
|
||||
MSM_VIDC_TRANSFER_BT_470_6_BG = 5,
|
||||
MSM_VIDC_TRANSFER_601_6_625 = 6,
|
||||
MSM_VIDC_TRANSFER_601_6_525 = MSM_VIDC_TRANSFER_601_6_625,
|
||||
MSM_VIDC_TRANSFER_SMPTE_240M = 7,
|
||||
MSM_VIDC_TRANSFER_LINEAR = 8,
|
||||
MSM_VIDC_TRANSFER_LOG_100_1 = 9,
|
||||
MSM_VIDC_TRANSFER_LOG_100_SQRT10_1 = 10,
|
||||
MSM_VIDC_TRANSFER_IEC_61966 = 11,
|
||||
MSM_VIDC_TRANSFER_BT_1361 = 12,
|
||||
MSM_VIDC_TRANSFER_SRGB = 13,
|
||||
MSM_VIDC_TRANSFER_BT_2020_10 = 14,
|
||||
MSM_VIDC_TRANSFER_BT_2020_12 = 15,
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user