|
@@ -1,5203 +0,0 @@
|
|
|
-// SPDX-License-Identifier: GPL-2.0-only
|
|
|
-/*
|
|
|
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
- * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
|
|
- */
|
|
|
-
|
|
|
-#include <linux/of.h>
|
|
|
-#include <linux/io.h>
|
|
|
-#include <linux/sort.h>
|
|
|
-
|
|
|
-#include "msm_vidc_diwali.h"
|
|
|
-#include "msm_vidc_platform.h"
|
|
|
-#include "msm_vidc_debug.h"
|
|
|
-#include "msm_vidc_internal.h"
|
|
|
-#include "msm_vidc_core.h"
|
|
|
-#include "msm_vidc_control.h"
|
|
|
-#include "hfi_property.h"
|
|
|
-#include "msm_vidc_dt.h"
|
|
|
-
|
|
|
-#define DEFAULT_VIDEO_CONCEAL_COLOR_BLACK 0x8020010
|
|
|
-#define MINIMUM_FPS 1
|
|
|
-#define MAXIMUM_FPS 480
|
|
|
-#define MAXIMUM_FPS_V2 240
|
|
|
-#define MAX_LTR_FRAME_COUNT 2
|
|
|
-#define MAX_BASE_LAYER_PRIORITY_ID 63
|
|
|
-#define MIN_CHROMA_QP_OFFSET -12
|
|
|
-#define MAX_CHROMA_QP_OFFSET 0
|
|
|
-#define MAX_BITRATE 160000000
|
|
|
-#define MAX_BITRATE_V1 100000000
|
|
|
-#define DEFAULT_BITRATE 20000000
|
|
|
-#define MIN_QP_10BIT -12
|
|
|
-#define MIN_QP_8BIT 0
|
|
|
-#define MAX_QP 51
|
|
|
-#define DEFAULT_QP 20
|
|
|
-#define MAX_CONSTANT_QUALITY 100
|
|
|
-#define MIN_SLICE_BYTE_SIZE 512
|
|
|
-#define MAX_SLICE_BYTE_SIZE \
|
|
|
- ((MAX_BITRATE) >> 3)
|
|
|
-#define MAX_SLICE_BYTE_SIZE_V1 \
|
|
|
- ((MAX_BITRATE_V1) >> 3)
|
|
|
-#define MAX_SLICE_MB_SIZE \
|
|
|
- (((4096 + 15) >> 4) * ((2304 + 15) >> 4))
|
|
|
-
|
|
|
-#define UBWC_CONFIG(mc, ml, hbb, bs1, bs2, bs3, bsp) \
|
|
|
-{ \
|
|
|
- .max_channels = mc, \
|
|
|
- .mal_length = ml, \
|
|
|
- .highest_bank_bit = hbb, \
|
|
|
- .bank_swzl_level = bs1, \
|
|
|
- .bank_swz2_level = bs2, \
|
|
|
- .bank_swz3_level = bs3, \
|
|
|
- .bank_spreading = bsp, \
|
|
|
-}
|
|
|
-
|
|
|
-#define EFUSE_ENTRY(sa, s, m, sh, p) \
|
|
|
-{ \
|
|
|
- .start_address = sa, \
|
|
|
- .size = s, \
|
|
|
- .mask = m, \
|
|
|
- .shift = sh, \
|
|
|
- .purpose = p \
|
|
|
-}
|
|
|
-
|
|
|
-#define DDR_TYPE_LPDDR4 0x6
|
|
|
-#define DDR_TYPE_LPDDR4X 0x7
|
|
|
-#define DDR_TYPE_LPDDR5 0x8
|
|
|
-#define DDR_TYPE_LPDDR5X 0x9
|
|
|
-
|
|
|
-#define ENC MSM_VIDC_ENCODER
|
|
|
-#define DEC MSM_VIDC_DECODER
|
|
|
-#define H264 MSM_VIDC_H264
|
|
|
-#define HEVC MSM_VIDC_HEVC
|
|
|
-#define VP9 MSM_VIDC_VP9
|
|
|
-#define HEIC MSM_VIDC_HEIC
|
|
|
-#define CODECS_ALL (H264 | HEVC | VP9 | HEIC)
|
|
|
-
|
|
|
-static struct msm_platform_core_capability core_data_diwali_v0[] = {
|
|
|
- /* {type, value} */
|
|
|
- {ENC_CODECS, H264|HEVC|HEIC},
|
|
|
- {DEC_CODECS, H264|HEVC|VP9|HEIC},
|
|
|
- {MAX_SESSION_COUNT, 16},
|
|
|
- {MAX_NUM_720P_SESSIONS, 16},
|
|
|
- {MAX_NUM_1080P_SESSIONS, 8},
|
|
|
- {MAX_NUM_4K_SESSIONS, 4},
|
|
|
- {MAX_NUM_8K_SESSIONS, 1},
|
|
|
- {MAX_SECURE_SESSION_COUNT, 3},
|
|
|
- {MAX_RT_MBPF, 138240}, /* ((8192x4320)/256) */
|
|
|
- {MAX_MBPF, 175104}, /* (8192x4320)/256 + (4096x2304)/256*/
|
|
|
- /* max_load 3840x2176@120fps which is greater than 7680x4320@30fps */
|
|
|
- /* Concurrency: UHD@30 decode + uhd@30 encode */
|
|
|
- {MAX_MBPS, 3916800},
|
|
|
- {MAX_IMAGE_MBPF, 1048576}, /* (16384x16384)/256 */
|
|
|
- {MAX_MBPF_HQ, 8160}, /* ((1920x1088)/256) */
|
|
|
- {MAX_MBPS_HQ, 244800}, /* ((1920x1088)/256)@30fps */
|
|
|
- {MAX_MBPF_B_FRAME, 32640}, /* 3840x2176/256 */
|
|
|
- {MAX_MBPS_B_FRAME, 979200}, /* 3840x2176/256 MBs@30fps */
|
|
|
- {MAX_MBPS_ALL_INTRA, 489600}, /* ((1920x1088)/256)@60fps */
|
|
|
- {MAX_ENH_LAYER_COUNT, 5},
|
|
|
- {NUM_VPP_PIPE, 2},
|
|
|
- {SW_PC, 1},
|
|
|
- {FW_UNLOAD, 0},
|
|
|
- {HW_RESPONSE_TIMEOUT, HW_RESPONSE_TIMEOUT_VALUE}, /* 1000 ms */
|
|
|
- {SW_PC_DELAY, SW_PC_DELAY_VALUE }, /* 1500 ms (>HW_RESPONSE_TIMEOUT)*/
|
|
|
- {FW_UNLOAD_DELAY, FW_UNLOAD_DELAY_VALUE }, /* 3000 ms (>SW_PC_DELAY)*/
|
|
|
- // TODO: review below entries, and if required rename as PREFETCH
|
|
|
- {PREFIX_BUF_COUNT_PIX, 18},
|
|
|
- {PREFIX_BUF_SIZE_PIX, 13434880}, /* Calculated by VIDEO_RAW_BUFFER_SIZE for 4096x2160 UBWC */
|
|
|
- {PREFIX_BUF_COUNT_NON_PIX, 1},
|
|
|
- {PREFIX_BUF_SIZE_NON_PIX, 209715200}, /*
|
|
|
- * Internal buffer size is calculated for secure decode session
|
|
|
- * of resolution 4k (4096x2160)
|
|
|
- * Internal buf size = calculate_scratch_size() +
|
|
|
- * calculate_scratch1_size() + calculate_persist1_size()
|
|
|
- * Take maximum between VP9 10bit, HEVC 10bit, AVC secure
|
|
|
- * decoder sessions
|
|
|
- */
|
|
|
- {PAGEFAULT_NON_FATAL, 1},
|
|
|
- {PAGETABLE_CACHING, 0},
|
|
|
- {DCVS, 1},
|
|
|
- {DECODE_BATCH, 1},
|
|
|
- {DECODE_BATCH_TIMEOUT, 200},
|
|
|
- {STATS_TIMEOUT_MS, 2000},
|
|
|
- {AV_SYNC_WINDOW_SIZE, 40},
|
|
|
- {NON_FATAL_FAULTS, 1},
|
|
|
- {ENC_AUTO_FRAMERATE, 1},
|
|
|
- {MMRM, 0},
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_platform_core_capability core_data_diwali_v1[] = {
|
|
|
- /* {type, value} */
|
|
|
- {ENC_CODECS, H264|HEVC|HEIC},
|
|
|
- {DEC_CODECS, H264|HEVC|VP9|HEIC},
|
|
|
- {MAX_SESSION_COUNT, 16},
|
|
|
- {MAX_NUM_720P_SESSIONS, 16},
|
|
|
- {MAX_NUM_1080P_SESSIONS, 8},
|
|
|
- {MAX_NUM_4K_SESSIONS, 4},
|
|
|
- {MAX_SECURE_SESSION_COUNT, 3},
|
|
|
- {MAX_RT_MBPF, 130560}, /* ((3840x2176)/256) x 4 */
|
|
|
- {MAX_MBPF, 147456}, /* ((4096x2304)/256) x 4 */
|
|
|
- /* Concurrency: UHD@30 decode + uhd@30 encode */
|
|
|
- {MAX_MBPS, 2211840}, /* max_load 4096x2304@60fps */
|
|
|
- {MAX_IMAGE_MBPF, 1048576}, /* (16384x16384)/256 */
|
|
|
- {MAX_MBPF_HQ, 8160}, /* ((1920x1088)/256) */
|
|
|
- {MAX_MBPS_HQ, 244800}, /* ((1920x1088)/256)@30fps */
|
|
|
- {MAX_MBPF_B_FRAME, 32640}, /* 3840x2176/256 */
|
|
|
- {MAX_MBPS_B_FRAME, 979200}, /* 3840x2176/256 MBs@30fps */
|
|
|
- {MAX_MBPS_ALL_INTRA, 489600}, /* ((1920x1088)/256)@60fps */
|
|
|
- {MAX_ENH_LAYER_COUNT, 5},
|
|
|
- {NUM_VPP_PIPE, 2},
|
|
|
- {SW_PC, 1},
|
|
|
- {FW_UNLOAD, 0},
|
|
|
- {HW_RESPONSE_TIMEOUT, HW_RESPONSE_TIMEOUT_VALUE}, /* 1000 ms */
|
|
|
- {SW_PC_DELAY, SW_PC_DELAY_VALUE }, /* 1500 ms (>HW_RESPONSE_TIMEOUT)*/
|
|
|
- {FW_UNLOAD_DELAY, FW_UNLOAD_DELAY_VALUE }, /* 3000 ms (>SW_PC_DELAY)*/
|
|
|
- // TODO: review below entries, and if required rename as PREFETCH
|
|
|
- {PREFIX_BUF_COUNT_PIX, 18},
|
|
|
- {PREFIX_BUF_SIZE_PIX, 13434880}, /* Calculated by VIDEO_RAW_BUFFER_SIZE for 4096x2160 UBWC */
|
|
|
- {PREFIX_BUF_COUNT_NON_PIX, 1},
|
|
|
- {PREFIX_BUF_SIZE_NON_PIX, 209715200}, /*
|
|
|
- * Internal buffer size is calculated for secure decode session
|
|
|
- * of resolution 4k (4096x2160)
|
|
|
- * Internal buf size = calculate_scratch_size() +
|
|
|
- * calculate_scratch1_size() + calculate_persist1_size()
|
|
|
- * Take maximum between VP9 10bit, HEVC 10bit, AVC secure
|
|
|
- * decoder sessions
|
|
|
- */
|
|
|
- {PAGEFAULT_NON_FATAL, 1},
|
|
|
- {PAGETABLE_CACHING, 0},
|
|
|
- {DCVS, 1},
|
|
|
- {DECODE_BATCH, 1},
|
|
|
- {DECODE_BATCH_TIMEOUT, 200},
|
|
|
- {STATS_TIMEOUT_MS, 2000},
|
|
|
- {AV_SYNC_WINDOW_SIZE, 40},
|
|
|
- {NON_FATAL_FAULTS, 1},
|
|
|
- {ENC_AUTO_FRAMERATE, 1},
|
|
|
- {MMRM, 0},
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_platform_core_capability core_data_diwali_v2[] = {
|
|
|
- /* {type, value} */
|
|
|
- {ENC_CODECS, H264|HEVC|HEIC},
|
|
|
- {DEC_CODECS, H264|HEVC|VP9|HEIC},
|
|
|
- {MAX_SESSION_COUNT, 16},
|
|
|
- {MAX_NUM_720P_SESSIONS, 16},
|
|
|
- {MAX_NUM_1080P_SESSIONS, 8},
|
|
|
- {MAX_NUM_4K_SESSIONS, 4},
|
|
|
- {MAX_SECURE_SESSION_COUNT, 3},
|
|
|
- {MAX_RT_MBPF, 97920}, /* ((3840x2176)/256) x 3 */
|
|
|
- {MAX_MBPF, 110592}, /* ((4096x2304)/256) x 3 */
|
|
|
- /* Concurrency: UHD@30 decode + 1080p@30 encode */
|
|
|
- {MAX_MBPS, 1105920}, /* max_load 4096x2304@30fps*/
|
|
|
- {MAX_IMAGE_MBPF, 1048576}, /* (16384x16384)/256 */
|
|
|
- {MAX_MBPF_HQ, 8160}, /* ((1920x1088)/256) */
|
|
|
- {MAX_MBPS_HQ, 244800}, /* ((1920x1088)/256)@30fps */
|
|
|
- {MAX_MBPF_B_FRAME, 32640}, /* 3840x2176/256 */
|
|
|
- {MAX_MBPS_B_FRAME, 979200}, /* 3840x2176/256 MBs@30fps */
|
|
|
- {MAX_MBPS_ALL_INTRA, 489600}, /* ((1920x1088)/256)@60fps */
|
|
|
- {MAX_ENH_LAYER_COUNT, 5},
|
|
|
- {NUM_VPP_PIPE, 2},
|
|
|
- {SW_PC, 1},
|
|
|
- {FW_UNLOAD, 0},
|
|
|
- {HW_RESPONSE_TIMEOUT, HW_RESPONSE_TIMEOUT_VALUE}, /* 1000 ms */
|
|
|
- {SW_PC_DELAY, SW_PC_DELAY_VALUE }, /* 1500 ms (>HW_RESPONSE_TIMEOUT)*/
|
|
|
- {FW_UNLOAD_DELAY, FW_UNLOAD_DELAY_VALUE }, /* 3000 ms (>SW_PC_DELAY)*/
|
|
|
- // TODO: review below entries, and if required rename as PREFETCH
|
|
|
- {PREFIX_BUF_COUNT_PIX, 18},
|
|
|
- {PREFIX_BUF_SIZE_PIX, 13434880}, /* Calculated by VIDEO_RAW_BUFFER_SIZE for 4096x2160 UBWC */
|
|
|
- {PREFIX_BUF_COUNT_NON_PIX, 1},
|
|
|
- {PREFIX_BUF_SIZE_NON_PIX, 209715200}, /*
|
|
|
- * Internal buffer size is calculated for secure decode session
|
|
|
- * of resolution 4k (4096x2160)
|
|
|
- * Internal buf size = calculate_scratch_size() +
|
|
|
- * calculate_scratch1_size() + calculate_persist1_size()
|
|
|
- * Take maximum between VP9 10bit, HEVC 10bit, AVC secure
|
|
|
- * decoder sessions
|
|
|
- */
|
|
|
- {PAGEFAULT_NON_FATAL, 1},
|
|
|
- {PAGETABLE_CACHING, 0},
|
|
|
- {DCVS, 1},
|
|
|
- {DECODE_BATCH, 0},
|
|
|
- {DECODE_BATCH_TIMEOUT, 200},
|
|
|
- {STATS_TIMEOUT_MS, 2000},
|
|
|
- {AV_SYNC_WINDOW_SIZE, 40},
|
|
|
- {NON_FATAL_FAULTS, 1},
|
|
|
- {ENC_AUTO_FRAMERATE, 1},
|
|
|
- {MMRM, 0},
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_platform_inst_capability instance_data_diwali_v0[] = {
|
|
|
- /* {cap, domain, codec,
|
|
|
- * min, max, step_or_mask, value,
|
|
|
- * v4l2_id,
|
|
|
- * hfi_id,
|
|
|
- * flags,
|
|
|
- * parents,
|
|
|
- * children,
|
|
|
- * adjust, set}
|
|
|
- */
|
|
|
-
|
|
|
- {FRAME_WIDTH, DEC, CODECS_ALL, 96, 8192, 1, 1920},
|
|
|
- {FRAME_WIDTH, DEC, VP9, 96, 4096, 1, 1920},
|
|
|
- {FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920},
|
|
|
- {LOSSLESS_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, DEC, H264|HEVC|VP9, 96, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {FRAME_HEIGHT, DEC, CODECS_ALL, 96, 8192, 1, 1080},
|
|
|
- {FRAME_HEIGHT, DEC, VP9, 96, 4096, 1, 1080},
|
|
|
- {FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080},
|
|
|
- {LOSSLESS_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, DEC, H264|HEVC|VP9, 96, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {PIX_FMTS, ENC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {META_ROI_INFO}},
|
|
|
- {PIX_FMTS, ENC, HEVC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
|
|
- * Since parent -> children relationship for these cap_ids is
|
|
|
- * as follows:
|
|
|
- * META_ROI_INFO -> MIN_QUALITY -> BLUR_TYPES
|
|
|
- */
|
|
|
- PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
|
|
|
- B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, HEVC|HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, VP9,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, CODECS_ALL, 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MIN_BUFFERS_OUTPUT, ENC|DEC, CODECS_ALL,
|
|
|
- 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
|
|
- HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864},
|
|
|
- /* (8192 * 4320) / 256 */
|
|
|
- {MBPF, DEC, CODECS_ALL, 36, 138240, 1, 138240},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, DEC, VP9, 36, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {LOSSLESS_MBPF, ENC, H264|HEVC, 64, 36864, 1, 36864},
|
|
|
- /* Batch Mode Decode */
|
|
|
- /* (1920 * 1088) / 256 */
|
|
|
- {BATCH_MBPF, DEC, H264|HEVC|VP9, 64, 8160, 1, 8160},
|
|
|
- {BATCH_FPS, DEC, H264|HEVC|VP9, 1, 120, 1, 60},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {SECURE_MBPF, ENC|DEC, H264|HEVC|VP9, 64, 36864, 1, 36864},
|
|
|
- /* ((4096 * 2304) / 256) * 60 fps */
|
|
|
- {MBPS, ENC, CODECS_ALL, 64, 2211840, 1, 2211840},
|
|
|
- /* ((3840 * 2176) / 256) * 120 fps */
|
|
|
- {MBPS, DEC, CODECS_ALL, 36, 3916800, 1, 3916800},
|
|
|
- /* ((4096 * 2304) / 256) * 60 */
|
|
|
- {MBPS, DEC, VP9, 36, 2211840, 1, 2211840},
|
|
|
- /* ((1920 * 1088) / 256) * 30 fps */
|
|
|
- {POWER_SAVE_MBPS, ENC, CODECS_ALL, 0, 244800, 1, 244800},
|
|
|
-
|
|
|
- {FRAME_RATE, ENC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, ENC|DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {SCALE_FACTOR, ENC, H264|HEVC, 1, 8, 1, 8},
|
|
|
-
|
|
|
- {MB_CYCLES_VSP, ENC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, VP9, 60, 60, 1, 60},
|
|
|
- {MB_CYCLES_VPP, ENC, CODECS_ALL, 675, 675, 1, 675},
|
|
|
- {MB_CYCLES_VPP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_LP, ENC, CODECS_ALL, 320, 320, 1, 320},
|
|
|
- {MB_CYCLES_LP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_FW, ENC|DEC, CODECS_ALL, 326389, 326389, 1, 326389},
|
|
|
- {MB_CYCLES_FW_VPP, ENC|DEC, CODECS_ALL, 44156, 44156, 1, 44156},
|
|
|
-
|
|
|
- {SECURE_MODE, ENC|DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_SECURE,
|
|
|
- HFI_PROP_SECURE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {TS_REORDER, DEC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TS_REORDER},
|
|
|
-
|
|
|
- {HFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_HFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {VFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_VFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {ROTATION, ENC, CODECS_ALL,
|
|
|
- 0, 270, 90, 0,
|
|
|
- V4L2_CID_ROTATE,
|
|
|
- HFI_PROP_ROTATION,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_rotation},
|
|
|
-
|
|
|
- {SUPER_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 32, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_SUPERFRAME, 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {SLICE_INTERFACE, DEC, CODECS_ALL,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {HEADER_MODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME),
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
|
|
- HFI_PROP_SEQ_HEADER_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_header_mode},
|
|
|
-
|
|
|
- {PREPEND_SPSPPS_TO_IDR, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {WITHOUT_STARTCODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_nal_length},
|
|
|
-
|
|
|
- {NAL_LENGTH_FIELD, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_4,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_4),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_MENU | CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* TODO: Firmware introduced enumeration type for this
|
|
|
- * with and without seq header.
|
|
|
- */
|
|
|
- {REQUEST_I_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME,
|
|
|
- HFI_PROP_REQUEST_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_req_sync_frame},
|
|
|
-
|
|
|
- /* Enc: Keeping CABAC and CAVLC as same bitrate.
|
|
|
- * Dec: there's no use of Bitrate cap
|
|
|
- */
|
|
|
- {BIT_RATE, ENC, H264|HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE,
|
|
|
- HFI_PROP_TOTAL_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT, BITRATE_MODE}, {PEAK_BITRATE},
|
|
|
- msm_vidc_adjust_bitrate, msm_vidc_set_bitrate},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
|
|
- CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, MIN_QUALITY,
|
|
|
- VBV_DELAY, PEAK_BITRATE,SLICE_MODE, META_ROI_INFO,
|
|
|
- BLUR_TYPES, LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
|
|
- CONTENT_ADAPTIVE_CODING, BIT_RATE,
|
|
|
- BITRATE_BOOST, MIN_QUALITY, VBV_DELAY,
|
|
|
- PEAK_BITRATE, SLICE_MODE, META_ROI_INFO, BLUR_TYPES,
|
|
|
- LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LOSSLESS, ENC, HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU},
|
|
|
-
|
|
|
- {FRAME_SKIP_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT,
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT),
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {FRAME_RC_ENABLE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE},
|
|
|
-
|
|
|
- {CONSTANT_QUALITY, ENC, HEVC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 90,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
-
|
|
|
- {GOP_SIZE, ENC, CODECS_ALL,
|
|
|
- 0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_gop_size, msm_vidc_set_gop_size},
|
|
|
-
|
|
|
- {GOP_CLOSURE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_CLOSURE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {B_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 7, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_b_frame, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {BLUR_TYPES, ENC, H264|HEVC,
|
|
|
- VIDC_BLUR_NONE, VIDC_BLUR_ADAPTIVE,
|
|
|
- BIT(VIDC_BLUR_NONE) | BIT(VIDC_BLUR_EXTERNAL) | BIT(VIDC_BLUR_ADAPTIVE),
|
|
|
- VIDC_BLUR_ADAPTIVE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_TYPES,
|
|
|
- HFI_PROP_BLUR_TYPES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS, BITRATE_MODE, CONTENT_ADAPTIVE_CODING, MIN_QUALITY},
|
|
|
- {BLUR_RESOLUTION},
|
|
|
- msm_vidc_adjust_blur_type, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BLUR_RESOLUTION, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_RESOLUTION,
|
|
|
- HFI_PROP_BLUR_RESOLUTION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BLUR_TYPES},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_blur_resolution, msm_vidc_set_blur_resolution},
|
|
|
-
|
|
|
- {CSC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CSC},
|
|
|
-
|
|
|
- {CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
|
|
- HFI_PROP_CSC_MATRIX,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_csc_custom_matrix},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, ENC, H264 | HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {BITRATE_MODE},
|
|
|
- {STAGE},
|
|
|
- msm_vidc_adjust_lowlatency_mode, NULL},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {LTR_COUNT, ENC, H264|HEVC,
|
|
|
- 0, 2, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_LTR_COUNT,
|
|
|
- HFI_PROP_LTR_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ltr_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {USE_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- ((1 << MAX_LTR_FRAME_COUNT) - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES,
|
|
|
- HFI_PROP_LTR_USE,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_use_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {MARK_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- (MAX_LTR_FRAME_COUNT - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX,
|
|
|
- HFI_PROP_LTR_MARK,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_mark_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {BASELAYER_PRIORITY, ENC, H264,
|
|
|
- 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
|
|
- HFI_PROP_BASELAYER_PRIORITYID,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {IR_RANDOM, ENC, H264|HEVC,
|
|
|
- 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_INTRA_REFRESH_PERIOD,
|
|
|
- HFI_PROP_IR_RANDOM_PERIOD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ir_random, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {AU_DELIMITER, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
|
|
- HFI_PROP_AUD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_CONTENT_ADAPTIVE_CODING,
|
|
|
- HFI_PROP_CONTENT_ADAPTIVE_CODING,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {BLUR_TYPES},
|
|
|
- msm_vidc_adjust_cac,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {BITRATE_BOOST, ENC, H264|HEVC,
|
|
|
- 0, MAX_BITRATE_BOOST, 25, MAX_BITRATE_BOOST,
|
|
|
- V4L2_CID_MPEG_VIDC_QUALITY_BITRATE_BOOST,
|
|
|
- HFI_PROP_BITRATE_BOOST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_bitrate_boost,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, H264,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, HEVC,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
|
|
|
- META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {VBV_DELAY, ENC, H264|HEVC,
|
|
|
- 200, 300, 100, 300,
|
|
|
- V4L2_CID_MPEG_VIDEO_VBV_DELAY,
|
|
|
- HFI_PROP_VBV_DELAY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {PEAK_BITRATE, ENC, H264|HEVC,
|
|
|
- /* default peak bitrate is 10% larger than avrg bitrate */
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
|
|
|
- HFI_PROP_TOTAL_PEAK_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, BIT_RATE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_peak_bitrate,
|
|
|
- msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_min_qp, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_max_qp, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_i_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_p_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_b_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_ENABLE, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, HEVC,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, H264,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- /*
|
|
|
- * layer bitrate is treated as BIT_RATE cap sibling and
|
|
|
- * is handled in bitrate adjust and set functions
|
|
|
- */
|
|
|
- {L0_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L0_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {ENTROPY_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE,
|
|
|
- HFI_PROP_CABAC_SESSION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PROFILE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_entropy_mode, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {ENTROPY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- 0,
|
|
|
- HFI_PROP_CABAC_SESSION},
|
|
|
-
|
|
|
- /* H264 does not support 10 bit, PIX_FMTS would not be a Parent for this */
|
|
|
- {PROFILE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE, TRANSFORM_8X8},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, ENC|DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_profile, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_2),
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- {LEVEL, DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_6,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_6,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- /* TODO: Bring the VP9 Level upstream GKI change, and level cap here:
|
|
|
- * go/videogki
|
|
|
- */
|
|
|
-
|
|
|
- {HEVC_TIER, ENC|DEC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LF_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- DB_H264_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(DB_H264_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_MODE, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED,
|
|
|
- DB_HEVC_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(DB_HEVC_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2},
|
|
|
-
|
|
|
- {LF_BETA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA},
|
|
|
-
|
|
|
- {LF_BETA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2},
|
|
|
-
|
|
|
- {SLICE_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES,
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES),
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_slice_count, msm_vidc_set_slice_count},
|
|
|
-
|
|
|
- {SLICE_MAX_BYTES, ENC, H264|HEVC|HEIC,
|
|
|
- MIN_SLICE_BYTE_SIZE, MAX_SLICE_BYTE_SIZE,
|
|
|
- 1, MIN_SLICE_BYTE_SIZE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES,
|
|
|
- HFI_PROP_MULTI_SLICE_BYTES_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {SLICE_MAX_MB, ENC, H264|HEVC|HEIC,
|
|
|
- 1, MAX_SLICE_MB_SIZE, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB,
|
|
|
- HFI_PROP_MULTI_SLICE_MB_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- // TODO: MB level RC - mapping
|
|
|
- {MB_RC, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {TRANSFORM_8X8, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM,
|
|
|
- HFI_PROP_8X8_TRANSFORM,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PROFILE}, {0},
|
|
|
- msm_vidc_adjust_transform_8x8, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
|
|
|
- MIN_CHROMA_QP_OFFSET, MAX_CHROMA_QP_OFFSET,
|
|
|
- 1, MAX_CHROMA_QP_OFFSET,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
|
|
- HFI_PROP_CHROMA_QP_OFFSET,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_chroma_qp_index_offset,
|
|
|
- msm_vidc_set_chroma_qp_index_offset},
|
|
|
-
|
|
|
- {DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {DISPLAY_DELAY, DEC, H264|HEVC|VP9,
|
|
|
- 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {OUTPUT_ORDER, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_output_order, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- /* conceal color */
|
|
|
- {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_8BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_10BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- // TODO
|
|
|
- {STAGE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {STAGE, ENC, H264 | HEVC,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {LOWLATENCY_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {PIPE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_PIPE_1,
|
|
|
- MSM_VIDC_PIPE_2, 1,
|
|
|
- MSM_VIDC_PIPE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_PIPE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_pipe},
|
|
|
- {POC, DEC, H264, 0, 18, 1, 1},
|
|
|
- {QUALITY_MODE, ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_MAX_QUALITY_MODE,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE, 1,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE},
|
|
|
-
|
|
|
- {CODED_FRAMES, DEC, H264|HEVC|HEIC,
|
|
|
- CODED_FRAMES_PROGRESSIVE, CODED_FRAMES_INTERLACE,
|
|
|
- 1, CODED_FRAMES_PROGRESSIVE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CODED_FRAMES},
|
|
|
-
|
|
|
- {BIT_DEPTH, DEC, CODECS_ALL, BIT_DEPTH_8, BIT_DEPTH_10, 1, BIT_DEPTH_8,
|
|
|
- 0,
|
|
|
- HFI_PROP_LUMA_CHROMA_BIT_DEPTH},
|
|
|
-
|
|
|
- {CODEC_CONFIG, DEC, H264|HEVC|HEIC, 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_CODEC_CONFIG, 0,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {BITSTREAM_SIZE_OVERWRITE, DEC, CODECS_ALL, 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_MIN_BITSTREAM_SIZE_OVERWRITE},
|
|
|
-
|
|
|
- {THUMBNAIL_MODE, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_THUMBNAIL_MODE,
|
|
|
- HFI_PROP_THUMBNAIL_MODE,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {DEFAULT_HEADER, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_DEFAULT_HEADER},
|
|
|
-
|
|
|
- {RAP_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_START_FROM_RAP_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {SEQ_CHANGE_AT_SYNC_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {PRIORITY, DEC|ENC, CODECS_ALL,
|
|
|
- 0, 2, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDC_PRIORITY,
|
|
|
- HFI_PROP_SESSION_PRIORITY,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
|
|
-
|
|
|
- {ENC_IP_CR, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_ENC_INPUT_COMPRESSION_RATIO,
|
|
|
- 0, CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {DPB_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DPB_LIST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {ALL_INTRA, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {GOP_SIZE, B_FRAME},
|
|
|
- {LTR_COUNT, IR_RANDOM, SLICE_MODE},
|
|
|
- msm_vidc_adjust_all_intra, NULL},
|
|
|
-
|
|
|
- {META_LTR_MARK_USE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
|
|
|
- HFI_PROP_LTR_MARK_USE_DETAILS},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
|
|
|
- HFI_PROP_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {META_DPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_DPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_OPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_OPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_INTERLACE, DEC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
|
|
|
- HFI_PROP_INTERLACE_INFO},
|
|
|
-
|
|
|
- {META_TIMESTAMP, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
|
|
|
- HFI_PROP_TIMESTAMP},
|
|
|
-
|
|
|
- {META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
|
|
|
- HFI_PROP_CONEALED_MB_COUNT},
|
|
|
-
|
|
|
- {META_HIST_INFO, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
|
|
|
- HFI_PROP_HISTOGRAM_INFO},
|
|
|
-
|
|
|
- {META_SEI_MASTERING_DISP, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
|
|
|
- HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR},
|
|
|
-
|
|
|
- {META_SEI_CLL, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
|
|
|
- HFI_PROP_SEI_CONTENT_LIGHT_LEVEL},
|
|
|
-
|
|
|
- {META_HDR10PLUS, DEC | ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
|
|
|
- HFI_PROP_SEI_HDR10PLUS_USERDATA},
|
|
|
-
|
|
|
- {META_EVA_STATS, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
|
|
- HFI_PROP_EVA_STAT_INFO,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {ENH_LAYER_COUNT}},
|
|
|
-
|
|
|
- {META_BUF_TAG, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_DPB_TAG_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
|
|
|
- HFI_PROP_DPB_TAG_LIST},
|
|
|
-
|
|
|
- {META_OUTPUT_BUF_TAG, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
-
|
|
|
- {META_ENC_QP_METADATA, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
|
|
|
- HFI_PROP_ENC_QP_METADATA},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {MIN_QUALITY},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_DEC_QP_METADATA, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
|
|
|
- HFI_PROP_DEC_QP_METADATA},
|
|
|
-
|
|
|
- /* configure image properties */
|
|
|
- {FRAME_WIDTH, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {FRAME_HEIGHT, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, HEIC, 0, 64, 1, 1,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MBPF, DEC, HEIC, 36, 262144, 1, 262144 }, /* ((8192x8192)/256) */
|
|
|
- {MBPF, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256) */
|
|
|
- {MBPS, DEC, HEIC, 36, 262144, 1, 262144 }, /* ((8192x8192)/256)@1fps */
|
|
|
- {MBPS, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256)@1fps */
|
|
|
- {BITRATE_MODE, ENC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
- {TIME_DELTA_BASED_RC, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
- {CONSTANT_QUALITY, ENC, HEIC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
- {GRID, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_HEIC_GRID_ENABLE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {GOP_SIZE, ENC, HEIC,
|
|
|
- 0, INT_MAX, 1, 0 /* all intra */,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {B_FRAME, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {PIX_FMTS, ENC, HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
- {HEVC_TIER, ENC|DEC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
- {FRAME_RATE, ENC, HEIC,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (MINIMUM_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
- {META_SUBFRAME_OUTPUT, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
- {COMPLEXITY, ENC, H264 | HEVC,
|
|
|
- 0, 100,
|
|
|
- 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDC_VENC_COMPLEXITY},
|
|
|
- {META_MAX_NUM_REORDER_FRAMES, DEC, HEVC | H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
|
|
|
- HFI_PROP_MAX_NUM_REORDER_FRAMES},
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_platform_inst_capability instance_data_diwali_v1[] = {
|
|
|
- /* {cap, domain, codec,
|
|
|
- * min, max, step_or_mask, value,
|
|
|
- * v4l2_id,
|
|
|
- * hfi_id,
|
|
|
- * flags,
|
|
|
- * parents,
|
|
|
- * children,
|
|
|
- * adjust, set}
|
|
|
- */
|
|
|
-
|
|
|
- {FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920},
|
|
|
- {FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920},
|
|
|
- {LOSSLESS_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, DEC, H264|HEVC|VP9, 96, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080},
|
|
|
- {FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080},
|
|
|
- {LOSSLESS_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, DEC, H264|HEVC|VP9, 96, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {PIX_FMTS, ENC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {META_ROI_INFO}},
|
|
|
- {PIX_FMTS, ENC, HEVC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
|
|
- * Since parent -> children relationship for these cap_ids is
|
|
|
- * as follows:
|
|
|
- * META_ROI_INFO -> MIN_QUALITY -> BLUR_TYPES
|
|
|
- */
|
|
|
- PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
|
|
|
- B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, HEVC|HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, VP9,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, CODECS_ALL, 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MIN_BUFFERS_OUTPUT, ENC|DEC, CODECS_ALL,
|
|
|
- 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
|
|
- HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, DEC, CODECS_ALL, 36, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {LOSSLESS_MBPF, ENC, H264|HEVC, 64, 36864, 1, 36864},
|
|
|
- /* Batch Mode Decode */
|
|
|
- /* (1920 * 1088) / 256 */
|
|
|
- {BATCH_MBPF, DEC, H264|HEVC|VP9, 64, 8160, 1, 8160},
|
|
|
- {BATCH_FPS, DEC, H264|HEVC|VP9, 1, 120, 1, 60},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {SECURE_MBPF, ENC|DEC, H264|HEVC|VP9, 64, 36864, 1, 36864},
|
|
|
- /* ((4096 * 2304) / 256) * 60 fps */
|
|
|
- {MBPS, ENC, CODECS_ALL, 64, 2211840, 1, 2211840},
|
|
|
- /* ((4096 * 2304) / 256) * 60 fps */
|
|
|
- {MBPS, DEC, CODECS_ALL, 36, 2211840, 1, 2211840},
|
|
|
- /* ((1920 * 1088) / 256) * 30 fps */
|
|
|
- {POWER_SAVE_MBPS, ENC, CODECS_ALL, 0, 244800, 1, 244800},
|
|
|
-
|
|
|
- {FRAME_RATE, ENC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, ENC|DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {SCALE_FACTOR, ENC, H264|HEVC, 1, 8, 1, 8},
|
|
|
-
|
|
|
- {MB_CYCLES_VSP, ENC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, VP9, 60, 60, 1, 60},
|
|
|
- {MB_CYCLES_VPP, ENC, CODECS_ALL, 675, 675, 1, 675},
|
|
|
- {MB_CYCLES_VPP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_LP, ENC, CODECS_ALL, 320, 320, 1, 320},
|
|
|
- {MB_CYCLES_LP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_FW, ENC|DEC, CODECS_ALL, 326389, 326389, 1, 326389},
|
|
|
- {MB_CYCLES_FW_VPP, ENC|DEC, CODECS_ALL, 44156, 44156, 1, 44156},
|
|
|
-
|
|
|
- {SECURE_MODE, ENC|DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_SECURE,
|
|
|
- HFI_PROP_SECURE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {HFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_HFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {VFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_VFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {ROTATION, ENC, CODECS_ALL,
|
|
|
- 0, 270, 90, 0,
|
|
|
- V4L2_CID_ROTATE,
|
|
|
- HFI_PROP_ROTATION,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_rotation},
|
|
|
-
|
|
|
- {SUPER_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 32, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_SUPERFRAME, 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {SLICE_INTERFACE, DEC, CODECS_ALL,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {HEADER_MODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME),
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
|
|
- HFI_PROP_SEQ_HEADER_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_header_mode},
|
|
|
-
|
|
|
- {PREPEND_SPSPPS_TO_IDR, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {WITHOUT_STARTCODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_nal_length},
|
|
|
-
|
|
|
- {NAL_LENGTH_FIELD, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_4,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_4),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_MENU | CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* TODO: Firmware introduced enumeration type for this
|
|
|
- * with and without seq header.
|
|
|
- */
|
|
|
- {REQUEST_I_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME,
|
|
|
- HFI_PROP_REQUEST_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_req_sync_frame},
|
|
|
-
|
|
|
- /* Enc: Keeping CABAC and CAVLC as same bitrate.
|
|
|
- * Dec: there's no use of Bitrate cap
|
|
|
- */
|
|
|
- {BIT_RATE, ENC, H264|HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE,
|
|
|
- HFI_PROP_TOTAL_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT, BITRATE_MODE}, {PEAK_BITRATE},
|
|
|
- msm_vidc_adjust_bitrate, msm_vidc_set_bitrate},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
|
|
- CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, MIN_QUALITY,
|
|
|
- VBV_DELAY, PEAK_BITRATE,SLICE_MODE, META_ROI_INFO,
|
|
|
- BLUR_TYPES, LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
|
|
- CONTENT_ADAPTIVE_CODING, BIT_RATE,
|
|
|
- BITRATE_BOOST, MIN_QUALITY, VBV_DELAY,
|
|
|
- PEAK_BITRATE, SLICE_MODE, META_ROI_INFO, BLUR_TYPES,
|
|
|
- LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LOSSLESS, ENC, HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU},
|
|
|
-
|
|
|
- {FRAME_SKIP_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT,
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT),
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {FRAME_RC_ENABLE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE},
|
|
|
-
|
|
|
- {CONSTANT_QUALITY, ENC, HEVC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 90,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
-
|
|
|
- {GOP_SIZE, ENC, CODECS_ALL,
|
|
|
- 0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_gop_size, msm_vidc_set_gop_size},
|
|
|
-
|
|
|
- {GOP_CLOSURE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_CLOSURE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {B_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 7, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_b_frame, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {BLUR_TYPES, ENC, H264|HEVC,
|
|
|
- VIDC_BLUR_NONE, VIDC_BLUR_ADAPTIVE,
|
|
|
- BIT(VIDC_BLUR_NONE) | BIT(VIDC_BLUR_EXTERNAL) | BIT(VIDC_BLUR_ADAPTIVE),
|
|
|
- VIDC_BLUR_ADAPTIVE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_TYPES,
|
|
|
- HFI_PROP_BLUR_TYPES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS, BITRATE_MODE, CONTENT_ADAPTIVE_CODING, MIN_QUALITY},
|
|
|
- {BLUR_RESOLUTION},
|
|
|
- msm_vidc_adjust_blur_type, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BLUR_RESOLUTION, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_RESOLUTION,
|
|
|
- HFI_PROP_BLUR_RESOLUTION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BLUR_TYPES},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_blur_resolution, msm_vidc_set_blur_resolution},
|
|
|
-
|
|
|
- {CSC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CSC},
|
|
|
-
|
|
|
- {CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
|
|
- HFI_PROP_CSC_MATRIX,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_csc_custom_matrix},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, ENC, H264 | HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {BITRATE_MODE},
|
|
|
- {STAGE},
|
|
|
- msm_vidc_adjust_lowlatency_mode, NULL},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {LTR_COUNT, ENC, H264|HEVC,
|
|
|
- 0, 2, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_LTR_COUNT,
|
|
|
- HFI_PROP_LTR_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ltr_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {USE_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- ((1 << MAX_LTR_FRAME_COUNT) - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES,
|
|
|
- HFI_PROP_LTR_USE,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_use_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {MARK_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- (MAX_LTR_FRAME_COUNT - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX,
|
|
|
- HFI_PROP_LTR_MARK,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_mark_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {BASELAYER_PRIORITY, ENC, H264,
|
|
|
- 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
|
|
- HFI_PROP_BASELAYER_PRIORITYID,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {IR_RANDOM, ENC, H264|HEVC,
|
|
|
- 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_INTRA_REFRESH_PERIOD,
|
|
|
- HFI_PROP_IR_RANDOM_PERIOD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ir_random, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {AU_DELIMITER, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
|
|
- HFI_PROP_AUD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_CONTENT_ADAPTIVE_CODING,
|
|
|
- HFI_PROP_CONTENT_ADAPTIVE_CODING,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {BLUR_TYPES},
|
|
|
- msm_vidc_adjust_cac,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {BITRATE_BOOST, ENC, H264|HEVC,
|
|
|
- 0, MAX_BITRATE_BOOST, 25, MAX_BITRATE_BOOST,
|
|
|
- V4L2_CID_MPEG_VIDC_QUALITY_BITRATE_BOOST,
|
|
|
- HFI_PROP_BITRATE_BOOST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_bitrate_boost,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, H264,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, HEVC,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
|
|
|
- META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {VBV_DELAY, ENC, H264|HEVC,
|
|
|
- 200, 300, 100, 300,
|
|
|
- V4L2_CID_MPEG_VIDEO_VBV_DELAY,
|
|
|
- HFI_PROP_VBV_DELAY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {PEAK_BITRATE, ENC, H264|HEVC,
|
|
|
- /* default peak bitrate is 10% larger than avrg bitrate */
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
|
|
|
- HFI_PROP_TOTAL_PEAK_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, BIT_RATE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_peak_bitrate,
|
|
|
- msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_min_qp, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_max_qp, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_i_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_p_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_b_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_ENABLE, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, HEVC,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, H264,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- /*
|
|
|
- * layer bitrate is treated as BIT_RATE cap sibling and
|
|
|
- * is handled in bitrate adjust and set functions
|
|
|
- */
|
|
|
- {L0_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L0_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {ENTROPY_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE,
|
|
|
- HFI_PROP_CABAC_SESSION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PROFILE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_entropy_mode, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {ENTROPY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- 0,
|
|
|
- HFI_PROP_CABAC_SESSION},
|
|
|
-
|
|
|
- /* H264 does not support 10 bit, PIX_FMTS would not be a Parent for this */
|
|
|
- {PROFILE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE, TRANSFORM_8X8},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, ENC|DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_profile, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_2),
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- {LEVEL, DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- /* TODO: Bring the VP9 Level upstream GKI change, and level cap here:
|
|
|
- * go/videogki
|
|
|
- */
|
|
|
-
|
|
|
- {HEVC_TIER, ENC|DEC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LF_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- DB_H264_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(DB_H264_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_MODE, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED,
|
|
|
- DB_HEVC_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(DB_HEVC_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2},
|
|
|
-
|
|
|
- {LF_BETA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA},
|
|
|
-
|
|
|
- {LF_BETA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2},
|
|
|
-
|
|
|
- {SLICE_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES,
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES),
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_slice_count, msm_vidc_set_slice_count},
|
|
|
-
|
|
|
- {SLICE_MAX_BYTES, ENC, H264|HEVC|HEIC,
|
|
|
- MIN_SLICE_BYTE_SIZE, MAX_SLICE_BYTE_SIZE_V1,
|
|
|
- 1, MIN_SLICE_BYTE_SIZE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES,
|
|
|
- HFI_PROP_MULTI_SLICE_BYTES_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {SLICE_MAX_MB, ENC, H264|HEVC|HEIC,
|
|
|
- 1, MAX_SLICE_MB_SIZE, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB,
|
|
|
- HFI_PROP_MULTI_SLICE_MB_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- // TODO: MB level RC - mapping
|
|
|
- {MB_RC, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {TRANSFORM_8X8, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM,
|
|
|
- HFI_PROP_8X8_TRANSFORM,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PROFILE}, {0},
|
|
|
- msm_vidc_adjust_transform_8x8, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
|
|
|
- MIN_CHROMA_QP_OFFSET, MAX_CHROMA_QP_OFFSET,
|
|
|
- 1, MAX_CHROMA_QP_OFFSET,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
|
|
- HFI_PROP_CHROMA_QP_OFFSET,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_chroma_qp_index_offset,
|
|
|
- msm_vidc_set_chroma_qp_index_offset},
|
|
|
-
|
|
|
- {DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {DISPLAY_DELAY, DEC, H264|HEVC|VP9,
|
|
|
- 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {OUTPUT_ORDER, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_output_order, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- /* conceal color */
|
|
|
- {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_8BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_10BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- // TODO
|
|
|
- {STAGE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {STAGE, ENC, H264 | HEVC,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {LOWLATENCY_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {PIPE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_PIPE_1,
|
|
|
- MSM_VIDC_PIPE_2, 1,
|
|
|
- MSM_VIDC_PIPE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_PIPE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_pipe},
|
|
|
- {POC, DEC, H264, 0, 18, 1, 1},
|
|
|
- {QUALITY_MODE, ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_MAX_QUALITY_MODE,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE, 1,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE},
|
|
|
-
|
|
|
- {CODED_FRAMES, DEC, H264|HEVC|HEIC,
|
|
|
- CODED_FRAMES_PROGRESSIVE, CODED_FRAMES_INTERLACE,
|
|
|
- 1, CODED_FRAMES_PROGRESSIVE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CODED_FRAMES},
|
|
|
-
|
|
|
- {BIT_DEPTH, DEC, CODECS_ALL, BIT_DEPTH_8, BIT_DEPTH_10, 1, BIT_DEPTH_8,
|
|
|
- 0,
|
|
|
- HFI_PROP_LUMA_CHROMA_BIT_DEPTH},
|
|
|
-
|
|
|
- {CODEC_CONFIG, DEC, H264|HEVC|HEIC, 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_CODEC_CONFIG, 0,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {BITSTREAM_SIZE_OVERWRITE, DEC, CODECS_ALL, 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_MIN_BITSTREAM_SIZE_OVERWRITE},
|
|
|
-
|
|
|
- {THUMBNAIL_MODE, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_THUMBNAIL_MODE,
|
|
|
- HFI_PROP_THUMBNAIL_MODE,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {DEFAULT_HEADER, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_DEFAULT_HEADER},
|
|
|
-
|
|
|
- {RAP_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_START_FROM_RAP_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {SEQ_CHANGE_AT_SYNC_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {PRIORITY, DEC|ENC, CODECS_ALL,
|
|
|
- 0, 2, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDC_PRIORITY,
|
|
|
- HFI_PROP_SESSION_PRIORITY,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
|
|
-
|
|
|
- {ENC_IP_CR, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_ENC_INPUT_COMPRESSION_RATIO,
|
|
|
- 0, CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {DPB_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DPB_LIST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {ALL_INTRA, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {GOP_SIZE, B_FRAME},
|
|
|
- {LTR_COUNT, IR_RANDOM, SLICE_MODE},
|
|
|
- msm_vidc_adjust_all_intra, NULL},
|
|
|
-
|
|
|
- {META_LTR_MARK_USE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
|
|
|
- HFI_PROP_LTR_MARK_USE_DETAILS},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
|
|
|
- HFI_PROP_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {META_DPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_DPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_OPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_OPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_INTERLACE, DEC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
|
|
|
- HFI_PROP_INTERLACE_INFO},
|
|
|
-
|
|
|
- {META_TIMESTAMP, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
|
|
|
- HFI_PROP_TIMESTAMP},
|
|
|
-
|
|
|
- {META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
|
|
|
- HFI_PROP_CONEALED_MB_COUNT},
|
|
|
-
|
|
|
- {META_HIST_INFO, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
|
|
|
- HFI_PROP_HISTOGRAM_INFO},
|
|
|
-
|
|
|
- {META_SEI_MASTERING_DISP, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
|
|
|
- HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR},
|
|
|
-
|
|
|
- {META_SEI_CLL, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
|
|
|
- HFI_PROP_SEI_CONTENT_LIGHT_LEVEL},
|
|
|
-
|
|
|
- {META_HDR10PLUS, DEC | ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
|
|
|
- HFI_PROP_SEI_HDR10PLUS_USERDATA},
|
|
|
-
|
|
|
- {META_EVA_STATS, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
|
|
- HFI_PROP_EVA_STAT_INFO,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {ENH_LAYER_COUNT}},
|
|
|
-
|
|
|
- {META_BUF_TAG, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_DPB_TAG_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
|
|
|
- HFI_PROP_DPB_TAG_LIST},
|
|
|
-
|
|
|
- {META_OUTPUT_BUF_TAG, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
-
|
|
|
- {META_ENC_QP_METADATA, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
|
|
|
- HFI_PROP_ENC_QP_METADATA},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {MIN_QUALITY},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_DEC_QP_METADATA, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
|
|
|
- HFI_PROP_DEC_QP_METADATA},
|
|
|
-
|
|
|
- /* configure image properties */
|
|
|
- {FRAME_WIDTH, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {FRAME_HEIGHT, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, HEIC, 0, 64, 1, 1,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MBPF, DEC, HEIC, 36, 65536, 1, 65536 }, /* ((4096x4096)/256) */
|
|
|
- {MBPF, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256) */
|
|
|
- {MBPS, DEC, HEIC, 36, 65536, 1, 65536 }, /* ((4096x4096)/256)@1fps */
|
|
|
- {MBPS, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256)@1fps */
|
|
|
- {BITRATE_MODE, ENC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
- {TIME_DELTA_BASED_RC, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
- {CONSTANT_QUALITY, ENC, HEIC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
- {GRID, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_HEIC_GRID_ENABLE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {GOP_SIZE, ENC, HEIC,
|
|
|
- 0, INT_MAX, 1, 0 /* all intra */,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {B_FRAME, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {PIX_FMTS, ENC, HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
- {HEVC_TIER, ENC|DEC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
- {FRAME_RATE, ENC, HEIC,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
|
|
|
- 1, (MINIMUM_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
- {META_SUBFRAME_OUTPUT, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
- {COMPLEXITY, ENC, H264 | HEVC,
|
|
|
- 0, 100,
|
|
|
- 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDC_VENC_COMPLEXITY},
|
|
|
- {META_MAX_NUM_REORDER_FRAMES, DEC, HEVC | H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
|
|
|
- HFI_PROP_MAX_NUM_REORDER_FRAMES},
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_platform_inst_capability instance_data_diwali_v2[] = {
|
|
|
- /* {cap, domain, codec,
|
|
|
- * min, max, step_or_mask, value,
|
|
|
- * v4l2_id,
|
|
|
- * hfi_id,
|
|
|
- * flags,
|
|
|
- * parents,
|
|
|
- * children,
|
|
|
- * adjust, set}
|
|
|
- */
|
|
|
-
|
|
|
- {FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920},
|
|
|
- {FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920},
|
|
|
- {LOSSLESS_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, DEC, H264|HEVC|VP9, 96, 4096, 1, 1920},
|
|
|
- {SECURE_FRAME_WIDTH, ENC, H264|HEVC, 128, 4096, 1, 1920},
|
|
|
- {FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080},
|
|
|
- {FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080},
|
|
|
- {LOSSLESS_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, DEC, H264|HEVC|VP9, 96, 4096, 1, 1080},
|
|
|
- {SECURE_FRAME_HEIGHT, ENC, H264|HEVC, 128, 4096, 1, 1080},
|
|
|
- {PIX_FMTS, ENC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {META_ROI_INFO}},
|
|
|
- {PIX_FMTS, ENC, HEVC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- /* Since CTSEncodeDecode test cannot handle BT 709LR,
|
|
|
- * disabled HW RGBA encoding.
|
|
|
- * | MSM_VIDC_FMT_RGBA8888 | MSM_VIDC_FMT_RGBA8888C,
|
|
|
- */
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
|
|
- * Since parent -> children relationship for these cap_ids is
|
|
|
- * as follows:
|
|
|
- * META_ROI_INFO -> MIN_QUALITY -> BLUR_TYPES
|
|
|
- */
|
|
|
- PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
|
|
|
- B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, HEVC|HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, H264,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {PIX_FMTS, DEC, VP9,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_NV21 | MSM_VIDC_FMT_NV12C |
|
|
|
- MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
|
|
- MSM_VIDC_FMT_NV12C},
|
|
|
-
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, CODECS_ALL, 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MIN_BUFFERS_OUTPUT, ENC|DEC, CODECS_ALL,
|
|
|
- 0, 64, 1, 4,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
|
|
- HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {MBPF, DEC, CODECS_ALL, 36, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {LOSSLESS_MBPF, ENC, H264|HEVC, 64, 36864, 1, 36864},
|
|
|
- /* (4096 * 2304) / 256 */
|
|
|
- {SECURE_MBPF, ENC|DEC, H264|HEVC|VP9, 64, 36864, 1, 36864},
|
|
|
- /* ((4096 * 2304) / 256) * 30 fps */
|
|
|
- {MBPS, ENC, CODECS_ALL, 64, 1105920, 1, 1105920},
|
|
|
- /* ((4096 * 2176) / 256) * 30 fps */
|
|
|
- {MBPS, DEC, CODECS_ALL, 36, 1105920, 1, 1105920},
|
|
|
- /* ((1920 * 1088) / 256) * 30 fps */
|
|
|
- {POWER_SAVE_MBPS, ENC, CODECS_ALL, 0, 244800, 1, 244800},
|
|
|
-
|
|
|
- {FRAME_RATE, ENC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS<< 16), (MAXIMUM_FPS_V2 << 16),
|
|
|
- 1, (DEFAULT_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS_V2 << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {FRAME_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, ENC|DEC, CODECS_ALL,
|
|
|
- (MINIMUM_FPS<< 16), (MAXIMUM_FPS_V2 << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {OPERATING_RATE, DEC, VP9,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_VP9_FPS << 16),
|
|
|
- 1, (DEFAULT_FPS << 16)},
|
|
|
-
|
|
|
- {SCALE_FACTOR, ENC, H264|HEVC, 1, 8, 1, 8},
|
|
|
-
|
|
|
- {MB_CYCLES_VSP, ENC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, CODECS_ALL, 25, 25, 1, 25},
|
|
|
- {MB_CYCLES_VSP, DEC, VP9, 60, 60, 1, 60},
|
|
|
- {MB_CYCLES_VPP, ENC, CODECS_ALL, 675, 675, 1, 675},
|
|
|
- {MB_CYCLES_VPP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_LP, ENC, CODECS_ALL, 320, 320, 1, 320},
|
|
|
- {MB_CYCLES_LP, DEC, CODECS_ALL, 200, 200, 1, 200},
|
|
|
- {MB_CYCLES_FW, ENC|DEC, CODECS_ALL, 326389, 326389, 1, 326389},
|
|
|
- {MB_CYCLES_FW_VPP, ENC|DEC, CODECS_ALL, 44156, 44156, 1, 44156},
|
|
|
-
|
|
|
- {SECURE_MODE, ENC|DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_SECURE,
|
|
|
- HFI_PROP_SECURE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {HFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_HFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {VFLIP, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_VFLIP,
|
|
|
- HFI_PROP_FLIP,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_flip},
|
|
|
-
|
|
|
- {ROTATION, ENC, CODECS_ALL,
|
|
|
- 0, 270, 90, 0,
|
|
|
- V4L2_CID_ROTATE,
|
|
|
- HFI_PROP_ROTATION,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_rotation},
|
|
|
-
|
|
|
- {SUPER_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 32, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_SUPERFRAME, 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {0},
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {SLICE_INTERFACE, DEC, CODECS_ALL,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {HEADER_MODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME),
|
|
|
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
|
|
- HFI_PROP_SEQ_HEADER_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_header_mode},
|
|
|
-
|
|
|
- {PREPEND_SPSPPS_TO_IDR, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {WITHOUT_STARTCODE, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_nal_length},
|
|
|
-
|
|
|
- {NAL_LENGTH_FIELD, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_4,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_SIZE_4),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_SIZE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD,
|
|
|
- HFI_PROP_NAL_LENGTH_FIELD,
|
|
|
- CAP_FLAG_MENU | CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- /* TODO: Firmware introduced enumeration type for this
|
|
|
- * with and without seq header.
|
|
|
- */
|
|
|
- {REQUEST_I_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 0, 0, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME,
|
|
|
- HFI_PROP_REQUEST_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_req_sync_frame},
|
|
|
-
|
|
|
- /* Enc: Keeping CABAC and CAVLC as same bitrate.
|
|
|
- * Dec: there's no use of Bitrate cap
|
|
|
- */
|
|
|
- {BIT_RATE, ENC, H264|HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE,
|
|
|
- HFI_PROP_TOTAL_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT, BITRATE_MODE}, {PEAK_BITRATE},
|
|
|
- msm_vidc_adjust_bitrate, msm_vidc_set_bitrate},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
|
|
- CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, MIN_QUALITY,
|
|
|
- VBV_DELAY, PEAK_BITRATE,SLICE_MODE, META_ROI_INFO,
|
|
|
- BLUR_TYPES, LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BITRATE_MODE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
- P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
|
|
- CONTENT_ADAPTIVE_CODING, BIT_RATE,
|
|
|
- BITRATE_BOOST, MIN_QUALITY, VBV_DELAY,
|
|
|
- PEAK_BITRATE, SLICE_MODE, META_ROI_INFO, BLUR_TYPES,
|
|
|
- LOWLATENCY_MODE},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LOSSLESS, ENC, HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU},
|
|
|
-
|
|
|
- {FRAME_SKIP_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT,
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT),
|
|
|
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {FRAME_RC_ENABLE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE},
|
|
|
-
|
|
|
- {CONSTANT_QUALITY, ENC, HEVC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 90,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
-
|
|
|
- {GOP_SIZE, ENC, CODECS_ALL,
|
|
|
- 0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_gop_size, msm_vidc_set_gop_size},
|
|
|
-
|
|
|
- {GOP_CLOSURE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_CLOSURE,
|
|
|
- 0},
|
|
|
-
|
|
|
- {B_FRAME, ENC, H264|HEVC,
|
|
|
- 0, 7, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {ENH_LAYER_COUNT},
|
|
|
- {ALL_INTRA},
|
|
|
- msm_vidc_adjust_b_frame, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {BLUR_TYPES, ENC, H264|HEVC,
|
|
|
- VIDC_BLUR_NONE, VIDC_BLUR_ADAPTIVE,
|
|
|
- BIT(VIDC_BLUR_NONE) | BIT(VIDC_BLUR_EXTERNAL) | BIT(VIDC_BLUR_ADAPTIVE),
|
|
|
- VIDC_BLUR_ADAPTIVE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_TYPES,
|
|
|
- HFI_PROP_BLUR_TYPES,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS, BITRATE_MODE, CONTENT_ADAPTIVE_CODING, MIN_QUALITY},
|
|
|
- {BLUR_RESOLUTION},
|
|
|
- msm_vidc_adjust_blur_type, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {BLUR_RESOLUTION, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_BLUR_RESOLUTION,
|
|
|
- HFI_PROP_BLUR_RESOLUTION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BLUR_TYPES},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_blur_resolution, msm_vidc_set_blur_resolution},
|
|
|
-
|
|
|
- {CSC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CSC},
|
|
|
-
|
|
|
- {CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
|
|
- HFI_PROP_CSC_MATRIX,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_csc_custom_matrix},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, ENC, H264 | HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- 0,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {BITRATE_MODE},
|
|
|
- {STAGE},
|
|
|
- msm_vidc_adjust_lowlatency_mode, NULL},
|
|
|
-
|
|
|
- {LOWLATENCY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {LTR_COUNT, ENC, H264|HEVC,
|
|
|
- 0, 2, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_LTR_COUNT,
|
|
|
- HFI_PROP_LTR_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ltr_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {USE_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- ((1 << MAX_LTR_FRAME_COUNT) - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES,
|
|
|
- HFI_PROP_LTR_USE,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_use_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {MARK_LTR, ENC, H264|HEVC,
|
|
|
- INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- (MAX_LTR_FRAME_COUNT - 1),
|
|
|
- 1, INVALID_DEFAULT_MARK_OR_USE_LTR,
|
|
|
- V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX,
|
|
|
- HFI_PROP_LTR_MARK,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_mark_ltr, msm_vidc_set_use_and_mark_ltr},
|
|
|
-
|
|
|
- {BASELAYER_PRIORITY, ENC, H264,
|
|
|
- 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
|
|
- HFI_PROP_BASELAYER_PRIORITYID,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {IR_RANDOM, ENC, H264|HEVC,
|
|
|
- 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_INTRA_REFRESH_PERIOD,
|
|
|
- HFI_PROP_IR_RANDOM_PERIOD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_ir_random, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {AU_DELIMITER, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
|
|
- HFI_PROP_AUD,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_CONTENT_ADAPTIVE_CODING,
|
|
|
- HFI_PROP_CONTENT_ADAPTIVE_CODING,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {BLUR_TYPES},
|
|
|
- msm_vidc_adjust_cac,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {BITRATE_BOOST, ENC, H264|HEVC,
|
|
|
- 0, MAX_BITRATE_BOOST, 25, MAX_BITRATE_BOOST,
|
|
|
- V4L2_CID_MPEG_VIDC_QUALITY_BITRATE_BOOST,
|
|
|
- HFI_PROP_BITRATE_BOOST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, MIN_QUALITY},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_bitrate_boost,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, H264,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {MIN_QUALITY, ENC, HEVC,
|
|
|
- 0, MAX_SUPPORTED_MIN_QUALITY, 70, MAX_SUPPORTED_MIN_QUALITY,
|
|
|
- 0,
|
|
|
- HFI_PROP_MAINTAIN_MIN_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
|
|
|
- META_ROI_INFO},
|
|
|
- {CONTENT_ADAPTIVE_CODING, BITRATE_BOOST, BLUR_TYPES},
|
|
|
- msm_vidc_adjust_min_quality,
|
|
|
- msm_vidc_set_vbr_related_properties},
|
|
|
-
|
|
|
- {VBV_DELAY, ENC, H264|HEVC,
|
|
|
- 200, 300, 100, 300,
|
|
|
- V4L2_CID_MPEG_VIDEO_VBV_DELAY,
|
|
|
- HFI_PROP_VBV_DELAY,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {PEAK_BITRATE, ENC, H264|HEVC,
|
|
|
- /* default peak bitrate is 10% larger than avrg bitrate */
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
|
|
|
- HFI_PROP_TOTAL_PEAK_BITRATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, BIT_RATE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_peak_bitrate,
|
|
|
- msm_vidc_set_cbr_related_properties},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {MIN_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_min_qp, msm_vidc_set_min_qp},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {I_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {P_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {B_FRAME_MIN_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {MAX_FRAME_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PIX_FMTS}, {0},
|
|
|
- msm_vidc_adjust_hevc_max_qp, msm_vidc_set_max_qp},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {P_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {B_FRAME_MAX_QP, ENC, HEVC|HEIC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_i_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {I_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_p_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {P_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, HEVC,
|
|
|
- MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_hevc_b_frame_qp, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {B_FRAME_QP, ENC, H264,
|
|
|
- MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP,
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_frame_qp},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_TYPE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P),
|
|
|
- V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
-
|
|
|
- {LAYER_ENABLE, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING,
|
|
|
- HFI_PROP_LAYER_ENCODING_TYPE,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, HEVC,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- {ENH_LAYER_COUNT, ENC, H264,
|
|
|
- 0, 5, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER,
|
|
|
- HFI_PROP_LAYER_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE, META_EVA_STATS},
|
|
|
- {GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY},
|
|
|
- msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
-
|
|
|
- /*
|
|
|
- * layer bitrate is treated as BIT_RATE cap sibling and
|
|
|
- * is handled in bitrate adjust and set functions
|
|
|
- */
|
|
|
- {L0_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, HEVC,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L0_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER1,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L1_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER2,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L2_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER3,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L3_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER4,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L4_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER5,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {L5_BR, ENC, H264,
|
|
|
- 1, MAX_BITRATE_V1, 1, DEFAULT_BITRATE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR,
|
|
|
- HFI_PROP_BITRATE_LAYER6,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_dynamic_layer_bitrate,
|
|
|
- msm_vidc_set_dynamic_layer_bitrate},
|
|
|
-
|
|
|
- {ENTROPY_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE,
|
|
|
- HFI_PROP_CABAC_SESSION,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PROFILE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_entropy_mode, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {ENTROPY_MODE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
|
|
|
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
|
|
|
- 0,
|
|
|
- HFI_PROP_CABAC_SESSION},
|
|
|
-
|
|
|
- /* H264 does not support 10 bit, PIX_FMTS would not be a Parent for this */
|
|
|
- {PROFILE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE, TRANSFORM_8X8},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {ENTROPY_MODE},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, ENC|DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_profile, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {PROFILE, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_2),
|
|
|
- V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
|
|
- HFI_PROP_PROFILE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, VP9,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_1),
|
|
|
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
|
|
|
- V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, DEC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2),
|
|
|
- V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- {LEVEL, DEC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LEVEL, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
|
|
- HFI_PROP_LEVEL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_level},
|
|
|
-
|
|
|
- /* TODO: Bring the VP9 Level upstream GKI change, and level cap here:
|
|
|
- * go/videogki
|
|
|
- */
|
|
|
-
|
|
|
- {HEVC_TIER, ENC|DEC, HEVC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
-
|
|
|
- {LF_MODE, ENC, H264,
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- DB_H264_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(DB_H264_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_MODE, ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED,
|
|
|
- DB_HEVC_DISABLE_SLICE_BOUNDARY,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED) |
|
|
|
- BIT(DB_HEVC_DISABLE_SLICE_BOUNDARY),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
|
|
- HFI_PROP_DEBLOCKING_MODE,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_deblock_mode},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA},
|
|
|
-
|
|
|
- {LF_ALPHA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2},
|
|
|
-
|
|
|
- {LF_BETA, ENC, H264,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA},
|
|
|
-
|
|
|
- {LF_BETA, ENC, HEVC|HEIC,
|
|
|
- -6, 6, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2},
|
|
|
-
|
|
|
- {SLICE_MODE, ENC, H264|HEVC|HEIC,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES,
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB) |
|
|
|
- BIT(V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES),
|
|
|
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {BITRATE_MODE, ALL_INTRA}, {0},
|
|
|
- msm_vidc_adjust_slice_count, msm_vidc_set_slice_count},
|
|
|
-
|
|
|
- {SLICE_MAX_BYTES, ENC, H264|HEVC|HEIC,
|
|
|
- MIN_SLICE_BYTE_SIZE, MAX_SLICE_BYTE_SIZE_V1,
|
|
|
- 1, MIN_SLICE_BYTE_SIZE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES,
|
|
|
- HFI_PROP_MULTI_SLICE_BYTES_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {SLICE_MAX_MB, ENC, H264|HEVC|HEIC,
|
|
|
- 1, MAX_SLICE_MB_SIZE, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB,
|
|
|
- HFI_PROP_MULTI_SLICE_MB_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- // TODO: MB level RC - mapping
|
|
|
- {MB_RC, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT},
|
|
|
-
|
|
|
- {TRANSFORM_8X8, ENC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM,
|
|
|
- HFI_PROP_8X8_TRANSFORM,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {PROFILE}, {0},
|
|
|
- msm_vidc_adjust_transform_8x8, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
|
|
|
- MIN_CHROMA_QP_OFFSET, MAX_CHROMA_QP_OFFSET,
|
|
|
- 1, MAX_CHROMA_QP_OFFSET,
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
|
|
- HFI_PROP_CHROMA_QP_OFFSET,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_chroma_qp_index_offset,
|
|
|
- msm_vidc_set_chroma_qp_index_offset},
|
|
|
-
|
|
|
- {DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {DISPLAY_DELAY, DEC, H264|HEVC|VP9,
|
|
|
- 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {OUTPUT_ORDER, DEC, H264|HEVC|VP9,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DECODE_ORDER_OUTPUT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_output_order, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_input_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
|
|
|
- DEFAULT_MAX_HOST_BUF_COUNT, DEFAULT_MAX_HOST_BURST_BUF_COUNT,
|
|
|
- 1, DEFAULT_MAX_HOST_BUF_COUNT,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_HOST_MAX_COUNT,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {SUPER_FRAME}, {0},
|
|
|
- msm_vidc_adjust_output_buf_host_max_count, msm_vidc_set_u32},
|
|
|
-
|
|
|
- /* conceal color */
|
|
|
- {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_8BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
|
|
- DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
|
|
- V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
|
|
- HFI_PROP_CONCEAL_COLOR_10BIT,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32_packed},
|
|
|
-
|
|
|
- // TODO
|
|
|
- {STAGE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {STAGE, ENC, H264 | HEVC,
|
|
|
- MSM_VIDC_STAGE_1,
|
|
|
- MSM_VIDC_STAGE_2, 1,
|
|
|
- MSM_VIDC_STAGE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_STAGE,
|
|
|
- CAP_FLAG_NONE,
|
|
|
- {LOWLATENCY_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_stage},
|
|
|
-
|
|
|
- {PIPE, DEC|ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_PIPE_1,
|
|
|
- MSM_VIDC_PIPE_2, 1,
|
|
|
- MSM_VIDC_PIPE_2,
|
|
|
- 0,
|
|
|
- HFI_PROP_PIPE,
|
|
|
- 0,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_pipe},
|
|
|
- {POC, DEC, H264, 0, 18, 1, 1},
|
|
|
- {QUALITY_MODE, ENC, CODECS_ALL,
|
|
|
- MSM_VIDC_MAX_QUALITY_MODE,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE, 1,
|
|
|
- MSM_VIDC_POWER_SAVE_MODE},
|
|
|
-
|
|
|
- {CODED_FRAMES, DEC, H264|HEVC|HEIC,
|
|
|
- CODED_FRAMES_PROGRESSIVE, CODED_FRAMES_INTERLACE,
|
|
|
- 1, CODED_FRAMES_PROGRESSIVE,
|
|
|
- 0,
|
|
|
- HFI_PROP_CODED_FRAMES},
|
|
|
-
|
|
|
- {BIT_DEPTH, DEC, CODECS_ALL, BIT_DEPTH_8, BIT_DEPTH_10, 1, BIT_DEPTH_8,
|
|
|
- 0,
|
|
|
- HFI_PROP_LUMA_CHROMA_BIT_DEPTH},
|
|
|
-
|
|
|
- {CODEC_CONFIG, DEC, H264|HEVC|HEIC, 0, 1, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_CODEC_CONFIG, 0,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {BITSTREAM_SIZE_OVERWRITE, DEC, CODECS_ALL, 0, INT_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_MIN_BITSTREAM_SIZE_OVERWRITE},
|
|
|
-
|
|
|
- {THUMBNAIL_MODE, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_THUMBNAIL_MODE,
|
|
|
- HFI_PROP_THUMBNAIL_MODE,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {OUTPUT_ORDER},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {DEFAULT_HEADER, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_DEFAULT_HEADER},
|
|
|
-
|
|
|
- {RAP_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DEC_START_FROM_RAP_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
-
|
|
|
- {SEQ_CHANGE_AT_SYNC_FRAME, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {PRIORITY, DEC|ENC, CODECS_ALL,
|
|
|
- 0, 2, 1, 1,
|
|
|
- V4L2_CID_MPEG_VIDC_PRIORITY,
|
|
|
- HFI_PROP_SESSION_PRIORITY,
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
|
|
-
|
|
|
- {ENC_IP_CR, ENC, CODECS_ALL,
|
|
|
- 0, S32_MAX, 1, 0,
|
|
|
- V4L2_CID_MPEG_VIDC_ENC_INPUT_COMPRESSION_RATIO,
|
|
|
- 0, CAP_FLAG_DYNAMIC_ALLOWED},
|
|
|
-
|
|
|
- {DPB_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_DPB_LIST,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, NULL},
|
|
|
-
|
|
|
- {ALL_INTRA, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {GOP_SIZE, B_FRAME},
|
|
|
- {LTR_COUNT, IR_RANDOM, SLICE_MODE},
|
|
|
- msm_vidc_adjust_all_intra, NULL},
|
|
|
-
|
|
|
- {META_LTR_MARK_USE, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS,
|
|
|
- HFI_PROP_LTR_MARK_USE_DETAILS},
|
|
|
-
|
|
|
- {META_SEQ_HDR_NAL, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL,
|
|
|
- HFI_PROP_METADATA_SEQ_HEADER_NAL},
|
|
|
-
|
|
|
- {META_DPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_DPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_OPB_MISR, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR,
|
|
|
- HFI_PROP_OPB_LUMA_CHROMA_MISR},
|
|
|
-
|
|
|
- {META_INTERLACE, DEC, H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_INTERLACE,
|
|
|
- HFI_PROP_INTERLACE_INFO},
|
|
|
-
|
|
|
- {META_TIMESTAMP, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP,
|
|
|
- HFI_PROP_TIMESTAMP},
|
|
|
-
|
|
|
- {META_CONCEALED_MB_CNT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT,
|
|
|
- HFI_PROP_CONEALED_MB_COUNT},
|
|
|
-
|
|
|
- {META_HIST_INFO, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
|
|
|
- HFI_PROP_HISTOGRAM_INFO},
|
|
|
-
|
|
|
- {META_SEI_MASTERING_DISP, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
|
|
|
- HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR},
|
|
|
-
|
|
|
- {META_SEI_CLL, DEC|ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
|
|
|
- HFI_PROP_SEI_CONTENT_LIGHT_LEVEL},
|
|
|
-
|
|
|
- {META_HDR10PLUS, DEC | ENC, HEVC|HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS,
|
|
|
- HFI_PROP_SEI_HDR10PLUS_USERDATA},
|
|
|
-
|
|
|
- {META_EVA_STATS, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
|
|
- HFI_PROP_EVA_STAT_INFO,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {ENH_LAYER_COUNT}},
|
|
|
-
|
|
|
- {META_BUF_TAG, DEC | ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_DPB_TAG_LIST, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DPB_TAG_LIST,
|
|
|
- HFI_PROP_DPB_TAG_LIST},
|
|
|
-
|
|
|
- {META_OUTPUT_BUF_TAG, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_BUFFER_TAG},
|
|
|
-
|
|
|
- {META_SUBFRAME_OUTPUT, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
-
|
|
|
- {META_ENC_QP_METADATA, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA,
|
|
|
- HFI_PROP_ENC_QP_METADATA},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {0},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_ROI_INFO, ENC, H264|HEVC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
|
|
- HFI_PROP_ROI_INFO,
|
|
|
- CAP_FLAG_INPUT_PORT,
|
|
|
- {BITRATE_MODE, PIX_FMTS},
|
|
|
- {MIN_QUALITY},
|
|
|
- msm_vidc_adjust_roi_info, NULL},
|
|
|
-
|
|
|
- {META_DEC_QP_METADATA, DEC, CODECS_ALL,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
|
|
|
- HFI_PROP_DEC_QP_METADATA},
|
|
|
-
|
|
|
- /* configure image properties */
|
|
|
- {FRAME_WIDTH, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {FRAME_HEIGHT, ENC, HEIC, 128, 16384, 1, 16384},
|
|
|
- {MIN_BUFFERS_INPUT, ENC|DEC, HEIC, 0, 64, 1, 1,
|
|
|
- V4L2_CID_MIN_BUFFERS_FOR_OUTPUT},
|
|
|
- {MBPF, DEC, HEIC, 36, 65536, 1, 65536 }, /* ((4096x4096)/256) */
|
|
|
- {MBPF, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256) */
|
|
|
- {MBPS, DEC, HEIC, 36, 65536, 1, 65536 }, /* ((4096x4096)/256)@1fps */
|
|
|
- {MBPS, ENC, HEIC, 64, 1048576, 1, 1048576}, /* ((16384x16384)/256)@1fps */
|
|
|
- {BITRATE_MODE, ENC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
- V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
- HFI_PROP_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
|
|
- msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
- {TIME_DELTA_BASED_RC, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
|
|
- HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
|
|
- {CONSTANT_QUALITY, ENC, HEIC,
|
|
|
- 1, MAX_CONSTANT_QUALITY, 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
- HFI_PROP_CONSTANT_QUALITY,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
|
|
|
- CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {BITRATE_MODE}, {0},
|
|
|
- NULL, msm_vidc_set_constant_quality},
|
|
|
- {GRID, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 0,
|
|
|
- HFI_PROP_HEIC_GRID_ENABLE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {GOP_SIZE, ENC, HEIC,
|
|
|
- 0, INT_MAX, 1, 0 /* all intra */,
|
|
|
- V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
|
- HFI_PROP_MAX_GOP_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT |
|
|
|
- CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {B_FRAME, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
- {PIX_FMTS, ENC, HEIC,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
|
|
- MSM_VIDC_FMT_NV12,
|
|
|
- 0, 0,
|
|
|
- 0,
|
|
|
- {0},
|
|
|
- {PROFILE}},
|
|
|
- {HEVC_TIER, ENC|DEC, HEIC,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN),
|
|
|
- V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
|
|
- HFI_PROP_TIER,
|
|
|
- CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0},
|
|
|
- {0},
|
|
|
- NULL, msm_vidc_set_u32_enum},
|
|
|
- {FRAME_RATE, ENC, HEIC,
|
|
|
- (MINIMUM_FPS << 16), (MAXIMUM_FPS_V2 << 16),
|
|
|
- 1, (MINIMUM_FPS << 16),
|
|
|
- 0,
|
|
|
- HFI_PROP_FRAME_RATE,
|
|
|
- CAP_FLAG_OUTPUT_PORT,
|
|
|
- {0}, {0},
|
|
|
- NULL, msm_vidc_set_q16},
|
|
|
- {META_SUBFRAME_OUTPUT, ENC, HEIC,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
|
|
- HFI_PROP_SUBFRAME_OUTPUT},
|
|
|
- {COMPLEXITY, ENC, H264 | HEVC,
|
|
|
- 0, 100,
|
|
|
- 1, 100,
|
|
|
- V4L2_CID_MPEG_VIDC_VENC_COMPLEXITY},
|
|
|
- {META_MAX_NUM_REORDER_FRAMES, DEC, HEVC | H264,
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
- V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
|
|
|
- HFI_PROP_MAX_NUM_REORDER_FRAMES},
|
|
|
-};
|
|
|
-
|
|
|
-static struct allowed_clock_rates_table clock_data_diwali_v1[] = {
|
|
|
- {240000000}, {338000000}, {366000000}
|
|
|
-};
|
|
|
-
|
|
|
-static struct allowed_clock_rates_table clock_data_diwali_v2[] = {
|
|
|
- {200000000}
|
|
|
-};
|
|
|
-
|
|
|
-/*
|
|
|
- * Custom conversion coefficients for resolution: 176x144 negative
|
|
|
- * coeffs are converted to s4.9 format
|
|
|
- * (e.g. -22 converted to ((1 << 13) - 22)
|
|
|
- * 3x3 transformation matrix coefficients in s4.9 fixed point format
|
|
|
- */
|
|
|
-static u32 vpe_csc_custom_matrix_coeff[MAX_MATRIX_COEFFS] = {
|
|
|
- 440, 8140, 8098, 0, 460, 52, 0, 34, 463
|
|
|
-};
|
|
|
-
|
|
|
-/* offset coefficients in s9 fixed point format */
|
|
|
-static u32 vpe_csc_custom_bias_coeff[MAX_BIAS_COEFFS] = {
|
|
|
- 53, 0, 4
|
|
|
-};
|
|
|
-
|
|
|
-/* clamping value for Y/U/V([min,max] for Y/U/V) */
|
|
|
-static u32 vpe_csc_custom_limit_coeff[MAX_LIMIT_COEFFS] = {
|
|
|
- 16, 235, 16, 240, 16, 240
|
|
|
-};
|
|
|
-
|
|
|
-/* Default UBWC config for LPDDR5 */
|
|
|
-static struct msm_vidc_ubwc_config_data ubwc_config_diwali[] = {
|
|
|
- UBWC_CONFIG(8, 32, 15, 0, 1, 1, 1),
|
|
|
-};
|
|
|
-
|
|
|
-/* Default bus bandwidth for non_real time session based on priority */
|
|
|
-static u32 bus_bw_nrt[] = {
|
|
|
- 15000000,
|
|
|
- 11000000,
|
|
|
-};
|
|
|
-
|
|
|
-static struct msm_vidc_efuse_data efuse_data_diwali[] = {
|
|
|
- /* IRIS_4K60_FMAX_LIMIT_EFUSE - max 4K@60 */
|
|
|
- EFUSE_ENTRY(0x221C811C, 4, 0x80, 0x7, SKU_VERSION),
|
|
|
- /* IRIS_MULTIPIPE_DISABLE - max 4K@30 */
|
|
|
- EFUSE_ENTRY(0x221C8118, 4, 0x80, 0x6, SKU_VERSION),
|
|
|
-};
|
|
|
-
|
|
|
-static const struct msm_vidc_platform_data diwali_data = {
|
|
|
- .core_data = core_data_diwali_v0,
|
|
|
- .core_data_size = ARRAY_SIZE(core_data_diwali_v0),
|
|
|
- .instance_data = instance_data_diwali_v0,
|
|
|
- .instance_data_size = ARRAY_SIZE(instance_data_diwali_v0),
|
|
|
- .csc_data.vpe_csc_custom_bias_coeff = vpe_csc_custom_bias_coeff,
|
|
|
- .csc_data.vpe_csc_custom_matrix_coeff = vpe_csc_custom_matrix_coeff,
|
|
|
- .csc_data.vpe_csc_custom_limit_coeff = vpe_csc_custom_limit_coeff,
|
|
|
- .ubwc_config = ubwc_config_diwali,
|
|
|
- .bus_bw_nrt = bus_bw_nrt,
|
|
|
- .efuse_data = efuse_data_diwali,
|
|
|
- .efuse_data_size = ARRAY_SIZE(efuse_data_diwali),
|
|
|
- .sku_version = 0,
|
|
|
-};
|
|
|
-
|
|
|
-static int msm_vidc_read_efuse(struct msm_vidc_core *core)
|
|
|
-{
|
|
|
- int rc = 0;
|
|
|
- void __iomem *base;
|
|
|
- u32 i = 0, efuse = 0, efuse_data_count = 0;
|
|
|
- struct msm_vidc_efuse_data *efuse_data = NULL;
|
|
|
- struct msm_vidc_platform_data *platform_data;
|
|
|
-
|
|
|
- if (!core || !core->platform || !core->pdev) {
|
|
|
- d_vpr_e("%s: invalid params\n", __func__);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- platform_data = &core->platform->data;
|
|
|
- efuse_data = platform_data->efuse_data;
|
|
|
- efuse_data_count = platform_data->efuse_data_size;
|
|
|
-
|
|
|
- if (!efuse_data)
|
|
|
- return 0;
|
|
|
-
|
|
|
- for (i = 0; i < efuse_data_count; i++) {
|
|
|
- switch ((efuse_data[i]).purpose) {
|
|
|
- case SKU_VERSION:
|
|
|
- base = devm_ioremap(&core->pdev->dev, (efuse_data[i]).start_address,
|
|
|
- (efuse_data[i]).size);
|
|
|
- if (!base) {
|
|
|
- d_vpr_e("failed efuse: start %#x, size %d\n",
|
|
|
- (efuse_data[i]).start_address,
|
|
|
- (efuse_data[i]).size);
|
|
|
- return -EINVAL;
|
|
|
- } else {
|
|
|
- efuse = readl_relaxed(base);
|
|
|
- platform_data->sku_version =
|
|
|
- (efuse & (efuse_data[i]).mask) >>
|
|
|
- (efuse_data[i]).shift;
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- if (platform_data->sku_version) {
|
|
|
- d_vpr_h("efuse 0x%x, platform version 0x%x\n",
|
|
|
- efuse, platform_data->sku_version);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- return rc;
|
|
|
-}
|
|
|
-
|
|
|
-static void msm_vidc_ddr_ubwc_config(
|
|
|
- struct msm_vidc_platform_data *platform_data, u32 hbb_override_val)
|
|
|
-{
|
|
|
- uint32_t ddr_type = DDR_TYPE_LPDDR5;
|
|
|
-
|
|
|
- ddr_type = of_fdt_get_ddrtype();
|
|
|
- if (ddr_type == -ENOENT) {
|
|
|
- d_vpr_e("Failed to get ddr type, use LPDDR5\n");
|
|
|
- }
|
|
|
-
|
|
|
- if (platform_data->ubwc_config &&
|
|
|
- (ddr_type == DDR_TYPE_LPDDR4 ||
|
|
|
- ddr_type == DDR_TYPE_LPDDR4X))
|
|
|
- platform_data->ubwc_config->highest_bank_bit = hbb_override_val;
|
|
|
-
|
|
|
- d_vpr_h("DDR Type 0x%x hbb 0x%x\n",
|
|
|
- ddr_type, platform_data->ubwc_config ?
|
|
|
- platform_data->ubwc_config->highest_bank_bit : -1);
|
|
|
-}
|
|
|
-
|
|
|
-static int msm_vidc_init_data(struct msm_vidc_core *core)
|
|
|
-{
|
|
|
- int rc = 0, i = 0;
|
|
|
- struct msm_vidc_platform_data *platform_data = NULL;
|
|
|
-
|
|
|
- if (!core || !core->platform || !core->dt) {
|
|
|
- d_vpr_e("%s: invalid params\n", __func__);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
- d_vpr_h("%s: initialize diwali data\n", __func__);
|
|
|
-
|
|
|
- core->platform->data = diwali_data;
|
|
|
- platform_data = &core->platform->data;
|
|
|
-
|
|
|
- /* Check for sku version */
|
|
|
- rc = msm_vidc_read_efuse(core);
|
|
|
- if (rc) {
|
|
|
- d_vpr_e("%s: Failed to read efuse\n", __func__);
|
|
|
- return rc;
|
|
|
- }
|
|
|
-
|
|
|
- if (platform_data->sku_version == SKU_VERSION_1) {
|
|
|
- platform_data->core_data = core_data_diwali_v1;
|
|
|
- platform_data->core_data_size =
|
|
|
- ARRAY_SIZE(core_data_diwali_v1);
|
|
|
- platform_data->instance_data = instance_data_diwali_v1;
|
|
|
- platform_data->instance_data_size =
|
|
|
- ARRAY_SIZE(instance_data_diwali_v1);
|
|
|
- /* Overide with SKU clock data into dt */
|
|
|
- core->dt->allowed_clks_tbl = clock_data_diwali_v1;
|
|
|
- core->dt->allowed_clks_tbl_size =
|
|
|
- ARRAY_SIZE(clock_data_diwali_v1);
|
|
|
- } else if (platform_data->sku_version == SKU_VERSION_2) {
|
|
|
- platform_data->core_data = core_data_diwali_v2;
|
|
|
- platform_data->core_data_size =
|
|
|
- ARRAY_SIZE(core_data_diwali_v2);
|
|
|
- platform_data->instance_data = instance_data_diwali_v2;
|
|
|
- platform_data->instance_data_size =
|
|
|
- ARRAY_SIZE(instance_data_diwali_v2);
|
|
|
- /* Overide with SKU clock data into dt */
|
|
|
- core->dt->allowed_clks_tbl = clock_data_diwali_v2;
|
|
|
- core->dt->allowed_clks_tbl_size =
|
|
|
- ARRAY_SIZE(clock_data_diwali_v2);
|
|
|
- }
|
|
|
-
|
|
|
- if (platform_data->sku_version) {
|
|
|
- sort(core->dt->allowed_clks_tbl, core->dt->allowed_clks_tbl_size,
|
|
|
- sizeof(*core->dt->allowed_clks_tbl), cmp, NULL);
|
|
|
- d_vpr_h("Updated allowed clock rates\n");
|
|
|
- for (i = 0; i < core->dt->allowed_clks_tbl_size; i++)
|
|
|
- d_vpr_h(" %d\n", core->dt->allowed_clks_tbl[i]);
|
|
|
- }
|
|
|
-
|
|
|
- /* Check for DDR variant */
|
|
|
- msm_vidc_ddr_ubwc_config(&core->platform->data, 0xe);
|
|
|
-
|
|
|
- return rc;
|
|
|
-}
|
|
|
-
|
|
|
-int msm_vidc_init_platform_diwali(struct msm_vidc_core *core, struct device *dev)
|
|
|
-{
|
|
|
- int rc = 0;
|
|
|
-
|
|
|
- rc = msm_vidc_init_data(core);
|
|
|
- if (rc)
|
|
|
- return rc;
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-int msm_vidc_deinit_platform_diwali(struct msm_vidc_core *core, struct device *dev)
|
|
|
-{
|
|
|
- /* do nothing */
|
|
|
- return 0;
|
|
|
-}
|