Loading drivers/media/platform/msm/vidc/hfi_packetization.c +4 −7 Original line number Diff line number Diff line Loading @@ -1225,6 +1225,10 @@ int create_pkt_cmd_session_set_property( HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT; hfi = (struct hfi_profile_level *) &pkt->rg_property_data[1]; /* There is an assumption here that HAL level is same as * HFI level */ hfi->level = prop->level; hfi->profile = hal_to_hfi_type(HAL_PARAM_PROFILE_LEVEL_CURRENT, prop->profile); Loading @@ -1235,13 +1239,6 @@ int create_pkt_cmd_session_set_property( prop->profile); } if (!hfi->level) { hfi->level = 1; dprintk(VIDC_WARN, "Level %d not supported, falling back to high\n", prop->level); } pkt->size += sizeof(u32) + sizeof(struct hfi_profile_level); break; } Loading drivers/media/platform/msm/vidc/msm_venc.c +7 −28 Original line number Diff line number Diff line Loading @@ -91,30 +91,8 @@ static const char *const h264_video_entropy_cabac_model[] = { NULL }; static const char *const h263_level[] = { "1.0", "2.0", "3.0", "4.0", "4.5", "5.0", "6.0", "7.0", }; static const char *const h263_profile[] = { "Baseline", "H320 Coding", "Backward Compatible", "ISWV2", "ISWV3", "High Compression", "Internet", "Interlace", "High Latency", }; static const char *const hevc_tier_level[] = { "Level unknown" "Main Tier Level 1", "Main Tier Level 2", "Main Tier Level 2.1", Loading Loading @@ -454,8 +432,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "H264 Level", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, .maximum = V4L2_MPEG_VIDEO_H264_LEVEL_5_2, .default_value = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, .maximum = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN, .default_value = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN, .menu_skip_mask = 0, }, { Loading Loading @@ -491,9 +469,9 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "HEVC Tier and Level", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1, .maximum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2, .maximum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN, .default_value = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN, .menu_skip_mask = ~( (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2) | Loading @@ -513,7 +491,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1) (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN) ), .qmenu = hevc_tier_level, }, Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +4 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,8 @@ int msm_comm_v4l2_to_hal(int id, int value) return HAL_H264_LEVEL_51; case V4L2_MPEG_VIDEO_H264_LEVEL_5_2: return HAL_H264_LEVEL_52; case V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN: return HAL_H264_LEVEL_UNKNOWN; default: goto unknown_value; } Loading Loading @@ -405,6 +407,8 @@ int msm_comm_v4l2_to_hal(int id, int value) return HAL_HEVC_HIGH_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1: return HAL_HEVC_HIGH_TIER_LEVEL_6_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN: return HAL_HEVC_TIER_LEVEL_UNKNOWN; default: goto unknown_value; } Loading drivers/media/platform/msm/vidc/vidc_hfi_api.h +2 −2 Original line number Diff line number Diff line Loading @@ -384,6 +384,7 @@ enum hal_h264_profile { }; enum hal_h264_level { HAL_H264_LEVEL_UNKNOWN = 0x00000000, HAL_H264_LEVEL_1 = 0x00000001, HAL_H264_LEVEL_1b = 0x00000002, HAL_H264_LEVEL_11 = 0x00000004, Loading @@ -401,7 +402,6 @@ enum hal_h264_level { HAL_H264_LEVEL_5 = 0x00004000, HAL_H264_LEVEL_51 = 0x00008000, HAL_H264_LEVEL_52 = 0x00010000, HAL_UNUSED_H264_LEVEL = 0x10000000, }; enum hal_hevc_profile { Loading @@ -412,6 +412,7 @@ enum hal_hevc_profile { }; enum hal_hevc_level { HAL_HEVC_TIER_LEVEL_UNKNOWN = 0x00000000, HAL_HEVC_MAIN_TIER_LEVEL_1 = 0x10000001, HAL_HEVC_MAIN_TIER_LEVEL_2 = 0x10000002, HAL_HEVC_MAIN_TIER_LEVEL_2_1 = 0x10000004, Loading @@ -438,7 +439,6 @@ enum hal_hevc_level { HAL_HEVC_HIGH_TIER_LEVEL_6 = 0x20000400, HAL_HEVC_HIGH_TIER_LEVEL_6_1 = 0x20000800, HAL_HEVC_HIGH_TIER_LEVEL_6_2 = 0x20001000, HAL_UNUSED_HEVC_TIER_LEVEL = 0x80000000, }; enum hal_hevc_tier { Loading include/uapi/linux/v4l2-controls.h +6 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,9 @@ enum v4l2_mpeg_video_h264_level { 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_MPEG_VIDEO_H264_LEVEL_UNKNOWN \ V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN = 17, }; #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) Loading Loading @@ -919,6 +922,9 @@ enum v4l2_mpeg_video_hevc_level { V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1 = 23, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2 = 24, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_2 = 25, #define V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN \ V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN = 26, }; #define V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS \ Loading Loading
drivers/media/platform/msm/vidc/hfi_packetization.c +4 −7 Original line number Diff line number Diff line Loading @@ -1225,6 +1225,10 @@ int create_pkt_cmd_session_set_property( HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT; hfi = (struct hfi_profile_level *) &pkt->rg_property_data[1]; /* There is an assumption here that HAL level is same as * HFI level */ hfi->level = prop->level; hfi->profile = hal_to_hfi_type(HAL_PARAM_PROFILE_LEVEL_CURRENT, prop->profile); Loading @@ -1235,13 +1239,6 @@ int create_pkt_cmd_session_set_property( prop->profile); } if (!hfi->level) { hfi->level = 1; dprintk(VIDC_WARN, "Level %d not supported, falling back to high\n", prop->level); } pkt->size += sizeof(u32) + sizeof(struct hfi_profile_level); break; } Loading
drivers/media/platform/msm/vidc/msm_venc.c +7 −28 Original line number Diff line number Diff line Loading @@ -91,30 +91,8 @@ static const char *const h264_video_entropy_cabac_model[] = { NULL }; static const char *const h263_level[] = { "1.0", "2.0", "3.0", "4.0", "4.5", "5.0", "6.0", "7.0", }; static const char *const h263_profile[] = { "Baseline", "H320 Coding", "Backward Compatible", "ISWV2", "ISWV3", "High Compression", "Internet", "Interlace", "High Latency", }; static const char *const hevc_tier_level[] = { "Level unknown" "Main Tier Level 1", "Main Tier Level 2", "Main Tier Level 2.1", Loading Loading @@ -454,8 +432,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "H264 Level", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, .maximum = V4L2_MPEG_VIDEO_H264_LEVEL_5_2, .default_value = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, .maximum = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN, .default_value = V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN, .menu_skip_mask = 0, }, { Loading Loading @@ -491,9 +469,9 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "HEVC Tier and Level", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1, .maximum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2, .maximum = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN, .default_value = V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN, .menu_skip_mask = ~( (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2) | Loading @@ -513,7 +491,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1) (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1) | (1 << V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN) ), .qmenu = hevc_tier_level, }, Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +4 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,8 @@ int msm_comm_v4l2_to_hal(int id, int value) return HAL_H264_LEVEL_51; case V4L2_MPEG_VIDEO_H264_LEVEL_5_2: return HAL_H264_LEVEL_52; case V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN: return HAL_H264_LEVEL_UNKNOWN; default: goto unknown_value; } Loading Loading @@ -405,6 +407,8 @@ int msm_comm_v4l2_to_hal(int id, int value) return HAL_HEVC_HIGH_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1: return HAL_HEVC_HIGH_TIER_LEVEL_6_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN: return HAL_HEVC_TIER_LEVEL_UNKNOWN; default: goto unknown_value; } Loading
drivers/media/platform/msm/vidc/vidc_hfi_api.h +2 −2 Original line number Diff line number Diff line Loading @@ -384,6 +384,7 @@ enum hal_h264_profile { }; enum hal_h264_level { HAL_H264_LEVEL_UNKNOWN = 0x00000000, HAL_H264_LEVEL_1 = 0x00000001, HAL_H264_LEVEL_1b = 0x00000002, HAL_H264_LEVEL_11 = 0x00000004, Loading @@ -401,7 +402,6 @@ enum hal_h264_level { HAL_H264_LEVEL_5 = 0x00004000, HAL_H264_LEVEL_51 = 0x00008000, HAL_H264_LEVEL_52 = 0x00010000, HAL_UNUSED_H264_LEVEL = 0x10000000, }; enum hal_hevc_profile { Loading @@ -412,6 +412,7 @@ enum hal_hevc_profile { }; enum hal_hevc_level { HAL_HEVC_TIER_LEVEL_UNKNOWN = 0x00000000, HAL_HEVC_MAIN_TIER_LEVEL_1 = 0x10000001, HAL_HEVC_MAIN_TIER_LEVEL_2 = 0x10000002, HAL_HEVC_MAIN_TIER_LEVEL_2_1 = 0x10000004, Loading @@ -438,7 +439,6 @@ enum hal_hevc_level { HAL_HEVC_HIGH_TIER_LEVEL_6 = 0x20000400, HAL_HEVC_HIGH_TIER_LEVEL_6_1 = 0x20000800, HAL_HEVC_HIGH_TIER_LEVEL_6_2 = 0x20001000, HAL_UNUSED_HEVC_TIER_LEVEL = 0x80000000, }; enum hal_hevc_tier { Loading
include/uapi/linux/v4l2-controls.h +6 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,9 @@ enum v4l2_mpeg_video_h264_level { 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_MPEG_VIDEO_H264_LEVEL_UNKNOWN \ V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN V4L2_MPEG_VIDEO_H264_LEVEL_UNKNOWN = 17, }; #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) Loading Loading @@ -919,6 +922,9 @@ enum v4l2_mpeg_video_hevc_level { V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1 = 23, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2 = 24, V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_2 = 25, #define V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN \ V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_UNKNOWN = 26, }; #define V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS \ Loading