Merge "video: driver: Enable bitwise operations for metadata controls"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
1cc8fd9df1
10
Kbuild
10
Kbuild
@@ -8,12 +8,6 @@ LINUXINCLUDE += -include $(VIDEO_ROOT)/config/waipio_video.h \
|
||||
-I$(VIDEO_ROOT)/driver/platform/waipio/inc
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_DIWALI), y)
|
||||
include $(VIDEO_ROOT)/config/diwali_video.conf
|
||||
LINUXINCLUDE += -include $(VIDEO_ROOT)/config/diwali_video.h \
|
||||
-I$(VIDEO_ROOT)/driver/platform/diwali/inc
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_KALAMA), y)
|
||||
include $(VIDEO_ROOT)/config/kalama_video.conf
|
||||
LINUXINCLUDE += -include $(VIDEO_ROOT)/config/kalama_video.h \
|
||||
@@ -37,10 +31,6 @@ ifeq ($(CONFIG_MSM_VIDC_KALAMA), y)
|
||||
msm_video-objs += driver/platform/kalama/src/msm_vidc_kalama.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_MSM_VIDC_DIWALI), y)
|
||||
msm_video-objs += driver/platform/diwali/src/msm_vidc_diwali.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_MSM_VIDC_IRIS2), y)
|
||||
LINUXINCLUDE += -I$(VIDEO_ROOT)/driver/variant/iris2/inc
|
||||
msm_video-objs += driver/variant/iris2/src/msm_vidc_buffer_iris2.o \
|
||||
|
@@ -1,4 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
export CONFIG_MSM_VIDC_DIWALI=y
|
||||
export CONFIG_MSM_VIDC_IRIS2=y
|
@@ -1,7 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2020-2021,, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#define CONFIG_MSM_VIDC_DIWALI 1
|
||||
#define CONFIG_MSM_VIDC_IRIS2 1
|
@@ -1,26 +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.
|
||||
*/
|
||||
|
||||
#ifndef _MSM_VIDC_DIWALI_H_
|
||||
#define _MSM_VIDC_DIWALI_H_
|
||||
|
||||
#include "msm_vidc_core.h"
|
||||
|
||||
#if defined(CONFIG_MSM_VIDC_DIWALI)
|
||||
int msm_vidc_init_platform_diwali(struct msm_vidc_core *core, struct device *dev);
|
||||
int msm_vidc_deinit_platform_diwali(struct msm_vidc_core *core, struct device *dev);
|
||||
#else
|
||||
int msm_vidc_init_platform_diwali(struct msm_vidc_core *core, struct device *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
int msm_vidc_deinit_platform_diwali(struct msm_vidc_core *core, struct device *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _MSM_VIDC_DIWALI_H_
|
File diff suppressed because it is too large
Load Diff
@@ -279,13 +279,13 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
NULL, msm_vidc_set_u32},
|
||||
|
||||
/*
|
||||
* Client will enable V4L2_CID_MPEG_VIDC_INPUT_METADATA_OUTBUF_FENCE
|
||||
* Client will enable V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE
|
||||
* to get fence_id in input metadata buffer done.
|
||||
*/
|
||||
{INPUT_META_OUTBUF_FENCE, DEC, CODECS_ALL,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_INPUT_METADATA_OUTBUF_FENCE,
|
||||
{META_OUTBUF_FENCE, DEC, CODECS_ALL,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE,
|
||||
HFI_PROP_FENCE},
|
||||
|
||||
/*
|
||||
@@ -372,12 +372,6 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
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,
|
||||
@@ -1594,14 +1588,14 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
NULL, msm_vidc_set_u32},
|
||||
|
||||
{META_BITSTREAM_RESOLUTION, DEC, AV1,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_BITSTREAM_RESOLUTION,
|
||||
HFI_PROP_BITSTREAM_RESOLUTION},
|
||||
|
||||
{META_CROP_OFFSETS, DEC, AV1,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_CROP_OFFSETS,
|
||||
HFI_PROP_CROP_OFFSETS},
|
||||
|
||||
@@ -1633,74 +1627,74 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
NULL, 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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO,
|
||||
HFI_PROP_HISTOGRAM_INFO},
|
||||
|
||||
{META_SEI_MASTERING_DISP, DEC|ENC, HEVC|HEIC|AV1,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR,
|
||||
HFI_PROP_SEI_MASTERING_DISPLAY_COLOUR},
|
||||
|
||||
{META_SEI_CLL, DEC|ENC, HEVC|HEIC|AV1,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL,
|
||||
HFI_PROP_SEI_CONTENT_LIGHT_LEVEL},
|
||||
|
||||
{META_HDR10PLUS, DEC | ENC, HEVC|HEIC|AV1,
|
||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
||||
HFI_PROP_EVA_STAT_INFO,
|
||||
0,
|
||||
@@ -1708,38 +1702,38 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
{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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
||||
HFI_PROP_ROI_INFO,
|
||||
CAP_FLAG_INPUT_PORT,
|
||||
@@ -1748,8 +1742,8 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
||||
HFI_PROP_ROI_INFO,
|
||||
CAP_FLAG_INPUT_PORT,
|
||||
@@ -1758,8 +1752,8 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
|
||||
HFI_PROP_DEC_QP_METADATA},
|
||||
|
||||
@@ -1852,8 +1846,8 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
{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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
||||
HFI_PROP_SUBFRAME_OUTPUT},
|
||||
{COMPLEXITY, ENC, H264 | HEVC,
|
||||
@@ -1861,8 +1855,8 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
|
||||
HFI_PROP_MAX_NUM_REORDER_FRAMES},
|
||||
};
|
||||
|
@@ -332,12 +332,6 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
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,
|
||||
@@ -1491,74 +1485,74 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
NULL, 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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
||||
HFI_PROP_EVA_STAT_INFO,
|
||||
0,
|
||||
@@ -1566,38 +1560,38 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
{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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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,
|
||||
V4L2_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
||||
HFI_PROP_ROI_INFO,
|
||||
CAP_FLAG_INPUT_PORT,
|
||||
@@ -1606,8 +1600,8 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO,
|
||||
HFI_PROP_ROI_INFO,
|
||||
CAP_FLAG_INPUT_PORT,
|
||||
@@ -1616,8 +1610,8 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA,
|
||||
HFI_PROP_DEC_QP_METADATA},
|
||||
|
||||
@@ -1710,8 +1704,8 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
{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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
|
||||
HFI_PROP_SUBFRAME_OUTPUT},
|
||||
{COMPLEXITY, ENC, H264 | HEVC,
|
||||
@@ -1719,8 +1713,8 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
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_MPEG_VIDC_META_DISABLE, V4L2_MPEG_VIDC_META_MAX,
|
||||
1, V4L2_MPEG_VIDC_META_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES,
|
||||
HFI_PROP_MAX_NUM_REORDER_FRAMES},
|
||||
};
|
||||
|
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <media/v4l2_vidc_extensions.h>
|
||||
#include "msm_vidc_internal.h"
|
||||
#include "msm_vidc_core.h"
|
||||
#include "msm_vidc_inst.h"
|
||||
@@ -100,18 +101,68 @@ static inline is_internal_buffer(enum msm_vidc_buffer_type buffer_type)
|
||||
buffer_type == MSM_VIDC_BUF_PARTIAL_DATA;
|
||||
}
|
||||
|
||||
static inline bool is_meta_rx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
if (inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_ENABLE &&
|
||||
inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_RX_INPUT)
|
||||
enabled = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
static inline bool is_meta_rx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
if (inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_ENABLE &&
|
||||
inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_RX_OUTPUT)
|
||||
enabled = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
static inline bool is_meta_tx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
if (inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_ENABLE &&
|
||||
inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_TX_INPUT)
|
||||
enabled = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
static inline bool is_meta_tx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
if (inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_ENABLE &&
|
||||
inst->capabilities->cap[cap].value & V4L2_MPEG_VIDC_META_TX_OUTPUT)
|
||||
enabled = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
static inline bool is_input_meta_enabled(struct msm_vidc_inst *inst)
|
||||
{
|
||||
bool enabled = false;
|
||||
|
||||
if (is_decode_session(inst)) {
|
||||
enabled = inst->capabilities->cap[META_BUF_TAG].value ?
|
||||
true : false;
|
||||
enabled = is_meta_tx_inp_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_rx_inp_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_tx_inp_enabled(inst, META_OUTBUF_FENCE) ||
|
||||
is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE);
|
||||
} else if (is_encode_session(inst)) {
|
||||
enabled = (inst->capabilities->cap[META_SEQ_HDR_NAL].value ||
|
||||
inst->capabilities->cap[META_EVA_STATS].value ||
|
||||
inst->capabilities->cap[META_BUF_TAG].value ||
|
||||
inst->capabilities->cap[META_ROI_INFO].value);
|
||||
enabled = is_meta_tx_inp_enabled(inst, META_SEQ_HDR_NAL) ||
|
||||
is_meta_rx_inp_enabled(inst, META_SEQ_HDR_NAL) ||
|
||||
is_meta_tx_inp_enabled(inst, META_EVA_STATS) ||
|
||||
is_meta_rx_inp_enabled(inst, META_EVA_STATS) ||
|
||||
is_meta_tx_inp_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_rx_inp_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_tx_inp_enabled(inst, META_ROI_INFO) ||
|
||||
is_meta_rx_inp_enabled(inst, META_ROI_INFO);
|
||||
}
|
||||
return enabled;
|
||||
}
|
||||
@@ -121,23 +172,37 @@ static inline bool is_output_meta_enabled(struct msm_vidc_inst *inst)
|
||||
bool enabled = false;
|
||||
|
||||
if (is_decode_session(inst)) {
|
||||
enabled = (inst->capabilities->cap[META_BITSTREAM_RESOLUTION].value ||
|
||||
inst->capabilities->cap[META_CROP_OFFSETS].value ||
|
||||
inst->capabilities->cap[META_DPB_MISR].value ||
|
||||
inst->capabilities->cap[META_OPB_MISR].value ||
|
||||
inst->capabilities->cap[META_INTERLACE].value ||
|
||||
inst->capabilities->cap[META_CONCEALED_MB_CNT].value ||
|
||||
inst->capabilities->cap[META_HIST_INFO].value ||
|
||||
inst->capabilities->cap[META_SEI_MASTERING_DISP].value ||
|
||||
inst->capabilities->cap[META_SEI_CLL].value ||
|
||||
inst->capabilities->cap[META_BUF_TAG].value ||
|
||||
inst->capabilities->cap[META_DPB_TAG_LIST].value ||
|
||||
inst->capabilities->cap[META_SUBFRAME_OUTPUT].value ||
|
||||
inst->capabilities->cap[META_MAX_NUM_REORDER_FRAMES].value);
|
||||
enabled = is_meta_tx_out_enabled(inst, META_BITSTREAM_RESOLUTION) ||
|
||||
is_meta_rx_out_enabled(inst, META_BITSTREAM_RESOLUTION) ||
|
||||
is_meta_tx_out_enabled(inst, META_CROP_OFFSETS) ||
|
||||
is_meta_rx_out_enabled(inst, META_CROP_OFFSETS) ||
|
||||
is_meta_tx_out_enabled(inst, META_DPB_MISR) ||
|
||||
is_meta_rx_out_enabled(inst, META_DPB_MISR) ||
|
||||
is_meta_tx_out_enabled(inst, META_OPB_MISR) ||
|
||||
is_meta_rx_out_enabled(inst, META_OPB_MISR) ||
|
||||
is_meta_tx_out_enabled(inst, META_INTERLACE) ||
|
||||
is_meta_rx_out_enabled(inst, META_INTERLACE) ||
|
||||
is_meta_tx_out_enabled(inst, META_CONCEALED_MB_CNT) ||
|
||||
is_meta_rx_out_enabled(inst, META_CONCEALED_MB_CNT) ||
|
||||
is_meta_tx_out_enabled(inst, META_SEI_MASTERING_DISP) ||
|
||||
is_meta_rx_out_enabled(inst, META_SEI_MASTERING_DISP) ||
|
||||
is_meta_tx_out_enabled(inst, META_SEI_CLL) ||
|
||||
is_meta_rx_out_enabled(inst, META_SEI_CLL) ||
|
||||
is_meta_tx_out_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_rx_out_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_tx_out_enabled(inst, META_DPB_TAG_LIST) ||
|
||||
is_meta_rx_out_enabled(inst, META_DPB_TAG_LIST) ||
|
||||
is_meta_tx_out_enabled(inst, META_SUBFRAME_OUTPUT) ||
|
||||
is_meta_rx_out_enabled(inst, META_SUBFRAME_OUTPUT) ||
|
||||
is_meta_tx_out_enabled(inst, META_MAX_NUM_REORDER_FRAMES) ||
|
||||
is_meta_rx_out_enabled(inst, META_MAX_NUM_REORDER_FRAMES);
|
||||
} else if (is_encode_session(inst)) {
|
||||
enabled = (inst->capabilities->cap[META_LTR_MARK_USE].value ||
|
||||
inst->capabilities->cap[META_BUF_TAG].value);
|
||||
enabled = is_meta_tx_out_enabled(inst, META_LTR_MARK_USE) ||
|
||||
is_meta_rx_out_enabled(inst, META_LTR_MARK_USE) ||
|
||||
is_meta_tx_out_enabled(inst, META_BUF_TAG) ||
|
||||
is_meta_rx_out_enabled(inst, META_BUF_TAG);
|
||||
}
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
|
@@ -376,7 +376,7 @@ enum msm_vidc_inst_capability_type {
|
||||
MB_CYCLES_FW,
|
||||
MB_CYCLES_FW_VPP,
|
||||
SECURE_MODE,
|
||||
INPUT_META_OUTBUF_FENCE,
|
||||
META_OUTBUF_FENCE,
|
||||
FENCE_ID,
|
||||
FENCE_FD,
|
||||
TS_REORDER,
|
||||
|
@@ -932,7 +932,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst,
|
||||
u32 i, count = 0;
|
||||
struct msm_vidc_inst_capability *capability;
|
||||
static const u32 metadata_input_list[] = {
|
||||
INPUT_META_OUTBUF_FENCE,
|
||||
META_OUTBUF_FENCE,
|
||||
/*
|
||||
* when fence enabled, client needs output buffer_tag
|
||||
* in input metadata buffer done.
|
||||
@@ -971,7 +971,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst,
|
||||
payload[0] = HFI_MODE_METADATA;
|
||||
if (port == INPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_input_list); i++) {
|
||||
if (capability->cap[metadata_input_list[i]].value &&
|
||||
if (is_meta_rx_inp_enabled(inst, metadata_input_list[i]) &&
|
||||
msm_vidc_allow_metadata(inst, metadata_input_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_input_list[i]].hfi_id;
|
||||
@@ -980,7 +980,7 @@ static int msm_vdec_subscribe_metadata(struct msm_vidc_inst *inst,
|
||||
}
|
||||
} else if (port == OUTPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_output_list); i++) {
|
||||
if (capability->cap[metadata_output_list[i]].value &&
|
||||
if (is_meta_rx_out_enabled(inst, metadata_output_list[i]) &&
|
||||
msm_vidc_allow_metadata(inst, metadata_output_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_output_list[i]].hfi_id;
|
||||
@@ -1029,7 +1029,7 @@ static int msm_vdec_set_delivery_mode_metadata(struct msm_vidc_inst *inst,
|
||||
|
||||
if (port == INPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_input_list); i++) {
|
||||
if (capability->cap[metadata_input_list[i]].value) {
|
||||
if (is_meta_tx_inp_enabled(inst, metadata_input_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_input_list[i]].hfi_id;
|
||||
count++;
|
||||
@@ -1037,7 +1037,7 @@ static int msm_vdec_set_delivery_mode_metadata(struct msm_vidc_inst *inst,
|
||||
}
|
||||
} else if (port == OUTPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_output_list); i++) {
|
||||
if (capability->cap[metadata_output_list[i]].value &&
|
||||
if (is_meta_tx_out_enabled(inst, metadata_output_list[i]) &&
|
||||
msm_vidc_allow_metadata(inst, metadata_output_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_output_list[i]].hfi_id;
|
||||
@@ -1069,7 +1069,7 @@ static int msm_vdec_set_delivery_mode_property(struct msm_vidc_inst *inst,
|
||||
u32 i, count = 0;
|
||||
struct msm_vidc_inst_capability *capability;
|
||||
static const u32 property_output_list[] = {
|
||||
INPUT_META_OUTBUF_FENCE,
|
||||
META_OUTBUF_FENCE,
|
||||
};
|
||||
static const u32 property_input_list[] = {};
|
||||
|
||||
@@ -1092,6 +1092,20 @@ static int msm_vdec_set_delivery_mode_property(struct msm_vidc_inst *inst,
|
||||
}
|
||||
} else if (port == OUTPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(property_output_list); i++) {
|
||||
if (property_output_list[i] == META_OUTBUF_FENCE &&
|
||||
is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE)) {
|
||||
/*
|
||||
* if output buffer fence enabled via
|
||||
* META_OUTBUF_FENCE, then driver will send
|
||||
* fence id via HFI_PROP_FENCE to firmware.
|
||||
* So enable HFI_PROP_FENCE property as
|
||||
* delivery mode property.
|
||||
*/
|
||||
payload[count + 1] =
|
||||
capability->cap[property_output_list[i]].hfi_id;
|
||||
count++;
|
||||
continue;
|
||||
}
|
||||
if (capability->cap[property_output_list[i]].value) {
|
||||
payload[count + 1] =
|
||||
capability->cap[property_output_list[i]].hfi_id;
|
||||
@@ -2055,7 +2069,7 @@ int msm_vdec_qbuf(struct msm_vidc_inst *inst, struct vb2_buffer *vb2)
|
||||
}
|
||||
|
||||
if (vb2->type == OUTPUT_META_PLANE) {
|
||||
if (inst->capabilities->cap[META_DPB_TAG_LIST].value) {
|
||||
if (is_meta_rx_out_enabled(inst, META_DPB_TAG_LIST)) {
|
||||
/*
|
||||
* vb2 is not allowing client to pass data in output meta plane.
|
||||
* adjust the bytesused as client will send buffer tag metadata
|
||||
|
@@ -681,7 +681,8 @@ static int msm_venc_metadata_delivery(struct msm_vidc_inst *inst,
|
||||
u32 payload[32] = {0};
|
||||
u32 i, count = 0;
|
||||
struct msm_vidc_inst_capability *capability;
|
||||
static const u32 metadata_list[] = {
|
||||
static const u32 metadata_output_list[] = {};
|
||||
static const u32 metadata_input_list[] = {
|
||||
META_SEI_MASTERING_DISP,
|
||||
META_SEI_CLL,
|
||||
META_HDR10PLUS,
|
||||
@@ -699,12 +700,26 @@ static int msm_venc_metadata_delivery(struct msm_vidc_inst *inst,
|
||||
|
||||
capability = inst->capabilities;
|
||||
payload[0] = HFI_MODE_METADATA;
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_list); i++) {
|
||||
if (capability->cap[metadata_list[i]].value) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_list[i]].hfi_id;
|
||||
count++;
|
||||
|
||||
if (port == INPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_input_list); i++) {
|
||||
if (is_meta_tx_inp_enabled(inst, metadata_input_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_input_list[i]].hfi_id;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} else if (port == OUTPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_output_list); i++) {
|
||||
if (is_meta_tx_out_enabled(inst, metadata_output_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_output_list[i]].hfi_id;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
i_vpr_e(inst, "%s: invalid port: %d\n", __func__, port);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rc = venus_hfi_session_command(inst,
|
||||
@@ -726,7 +741,8 @@ static int msm_venc_metadata_subscription(struct msm_vidc_inst *inst,
|
||||
u32 payload[32] = {0};
|
||||
u32 i, count = 0;
|
||||
struct msm_vidc_inst_capability *capability;
|
||||
static const u32 metadata_list[] = {
|
||||
static const u32 metadata_input_list[] = {};
|
||||
static const u32 metadata_output_list[] = {
|
||||
META_LTR_MARK_USE,
|
||||
META_SEQ_HDR_NAL,
|
||||
META_TIMESTAMP,
|
||||
@@ -743,12 +759,26 @@ static int msm_venc_metadata_subscription(struct msm_vidc_inst *inst,
|
||||
|
||||
capability = inst->capabilities;
|
||||
payload[0] = HFI_MODE_METADATA;
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_list); i++) {
|
||||
if (capability->cap[metadata_list[i]].value) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_list[i]].hfi_id;
|
||||
count++;
|
||||
|
||||
if (port == INPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_input_list); i++) {
|
||||
if (is_meta_rx_inp_enabled(inst, metadata_input_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_input_list[i]].hfi_id;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} else if (port == OUTPUT_PORT) {
|
||||
for (i = 0; i < ARRAY_SIZE(metadata_output_list); i++) {
|
||||
if (is_meta_rx_out_enabled(inst, metadata_output_list[i])) {
|
||||
payload[count + 1] =
|
||||
capability->cap[metadata_output_list[i]].hfi_id;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
i_vpr_e(inst, "%s: invalid port: %d\n", __func__, port);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rc = venus_hfi_session_command(inst,
|
||||
|
@@ -82,8 +82,11 @@ static bool is_meta_ctrl(u32 id)
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_DEC_QP_METADATA ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_BITSTREAM_RESOLUTION ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_CROP_OFFSETS);
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_CROP_OFFSETS ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_MAX_NUM_REORDER_FRAMES ||
|
||||
id == V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE);
|
||||
}
|
||||
|
||||
static const char *const mpeg_video_rate_control[] = {
|
||||
@@ -420,18 +423,42 @@ static bool is_parent_available(struct msm_vidc_inst *inst,
|
||||
int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap_id,
|
||||
s32 adjusted_val, const char *func)
|
||||
{
|
||||
int prev_value = 0;
|
||||
bool is_updated = false;
|
||||
|
||||
if (!inst || !inst->capabilities) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (inst->capabilities->cap[cap_id].value != adjusted_val)
|
||||
prev_value = inst->capabilities->cap[cap_id].value;
|
||||
|
||||
if (is_meta_ctrl(inst->capabilities->cap[cap_id].v4l2_id)) {
|
||||
/*
|
||||
* cumulative control value if client set same metadata
|
||||
* control multiple times.
|
||||
*/
|
||||
if (adjusted_val & V4L2_MPEG_VIDC_META_ENABLE) {
|
||||
/* enable metadata */
|
||||
inst->capabilities->cap[cap_id].value |= adjusted_val;
|
||||
} else {
|
||||
/* disable metadata */
|
||||
inst->capabilities->cap[cap_id].value &= ~adjusted_val;
|
||||
}
|
||||
if (prev_value != (prev_value | adjusted_val))
|
||||
is_updated = true;
|
||||
} else {
|
||||
inst->capabilities->cap[cap_id].value = adjusted_val;
|
||||
if (prev_value != adjusted_val)
|
||||
is_updated = true;
|
||||
}
|
||||
|
||||
if (is_updated) {
|
||||
i_vpr_h(inst,
|
||||
"%s: updated database: name: %s, value: %#x -> %#x\n",
|
||||
func, cap_name(cap_id),
|
||||
inst->capabilities->cap[cap_id].value, adjusted_val);
|
||||
|
||||
inst->capabilities->cap[cap_id].value = adjusted_val;
|
||||
prev_value, adjusted_val);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1047,11 +1074,13 @@ static int msm_vidc_update_static_property(struct msm_vidc_inst *inst,
|
||||
* To subscribe HFI_PROP_DPB_TAG_LIST
|
||||
* data in FBD, HFI_PROP_BUFFER_TAG data
|
||||
* must be delivered via FTB. Hence, update
|
||||
* META_OUTPUT_BUF_TAG when META_DPB_TAG_LIST
|
||||
* is updated.
|
||||
* META_OUTPUT_BUF_TAG to transfer on output port
|
||||
* when META_DPB_TAG_LIST is enbaled.
|
||||
*/
|
||||
msm_vidc_update_cap_value(inst, META_OUTPUT_BUF_TAG,
|
||||
ctrl->val, __func__);
|
||||
if (is_meta_rx_out_enabled(inst, META_DPB_TAG_LIST)) {
|
||||
inst->capabilities->cap[META_OUTPUT_BUF_TAG].value |=
|
||||
V4L2_MPEG_VIDC_META_TX_OUTPUT | V4L2_MPEG_VIDC_META_ENABLE;
|
||||
}
|
||||
}
|
||||
|
||||
rc = msm_vidc_update_meta_port_settings(inst);
|
||||
@@ -1754,7 +1783,7 @@ static int msm_vidc_adjust_static_layer_count_and_type(struct msm_vidc_inst *ins
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (!inst->capabilities->cap[META_EVA_STATS].value &&
|
||||
if (!is_meta_tx_inp_enabled(inst, META_EVA_STATS) &&
|
||||
hb_requested && (layer_count > 1)) {
|
||||
layer_count = 1;
|
||||
i_vpr_h(inst,
|
||||
@@ -2577,7 +2606,7 @@ int msm_vidc_adjust_min_quality(void *instance, struct v4l2_ctrl *ctrl)
|
||||
goto update_and_exit;
|
||||
}
|
||||
|
||||
if (roi_enable) {
|
||||
if (is_meta_tx_inp_enabled(inst, META_ROI_INFO)) {
|
||||
i_vpr_h(inst,
|
||||
"%s: min quality not supported with roi metadata\n",
|
||||
__func__);
|
||||
@@ -2585,7 +2614,7 @@ int msm_vidc_adjust_min_quality(void *instance, struct v4l2_ctrl *ctrl)
|
||||
goto update_and_exit;
|
||||
}
|
||||
|
||||
if (enh_layer_count && inst->hfi_layer_type != HFI_HIER_B) {
|
||||
if (enh_layer_count > 0 && inst->hfi_layer_type != HFI_HIER_B) {
|
||||
i_vpr_h(inst,
|
||||
"%s: min quality not supported for HP encoding\n",
|
||||
__func__);
|
||||
@@ -2927,7 +2956,7 @@ int msm_vidc_set_header_mode(void *instance,
|
||||
{
|
||||
int rc = 0;
|
||||
struct msm_vidc_inst *inst = (struct msm_vidc_inst *) instance;
|
||||
int header_mode, prepend_sps_pps, hdr_metadata;
|
||||
int header_mode, prepend_sps_pps;
|
||||
u32 hfi_value = 0;
|
||||
struct msm_vidc_inst_capability *capability;
|
||||
|
||||
@@ -2939,7 +2968,6 @@ int msm_vidc_set_header_mode(void *instance,
|
||||
|
||||
header_mode = capability->cap[cap_id].value;
|
||||
prepend_sps_pps = capability->cap[PREPEND_SPSPPS_TO_IDR].value;
|
||||
hdr_metadata = capability->cap[META_SEQ_HDR_NAL].value;
|
||||
|
||||
/* prioritize PREPEND_SPSPPS_TO_IDR mode over other header modes */
|
||||
if (prepend_sps_pps)
|
||||
@@ -2949,7 +2977,7 @@ int msm_vidc_set_header_mode(void *instance,
|
||||
else
|
||||
hfi_value = HFI_SEQ_HEADER_SEPERATE_FRAME;
|
||||
|
||||
if (hdr_metadata)
|
||||
if (is_meta_rx_inp_enabled(inst, META_SEQ_HDR_NAL))
|
||||
hfi_value |= HFI_SEQ_HEADER_METADATA;
|
||||
|
||||
rc = msm_vidc_packetize_control(inst, cap_id, HFI_PAYLOAD_U32_ENUM,
|
||||
|
@@ -82,7 +82,7 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
||||
{MB_CYCLES_FW, "MB_CYCLES_FW" },
|
||||
{MB_CYCLES_FW_VPP, "MB_CYCLES_FW_VPP" },
|
||||
{SECURE_MODE, "SECURE_MODE" },
|
||||
{INPUT_META_OUTBUF_FENCE, "INPUT_META_OUTBUF_FENCE" },
|
||||
{META_OUTBUF_FENCE, "META_OUTBUF_FENCE" },
|
||||
{FENCE_ID, "FENCE_ID" },
|
||||
{FENCE_FD, "FENCE_FD" },
|
||||
{TS_REORDER, "TS_REORDER" },
|
||||
@@ -1425,10 +1425,10 @@ bool msm_vidc_allow_property(struct msm_vidc_inst *inst, u32 hfi_id)
|
||||
}
|
||||
break;
|
||||
case HFI_PROP_FENCE:
|
||||
if (!inst->capabilities->cap[INPUT_META_OUTBUF_FENCE].value) {
|
||||
if (!is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE)) {
|
||||
i_vpr_h(inst,
|
||||
"%s: cap: %24s not enabled, hence not allowed to subscribe\n",
|
||||
__func__, cap_name(INPUT_META_OUTBUF_FENCE));
|
||||
__func__, cap_name(META_OUTBUF_FENCE));
|
||||
is_allowed = false;
|
||||
}
|
||||
break;
|
||||
@@ -3314,7 +3314,7 @@ int msm_vidc_queue_buffer_single(struct msm_vidc_inst *inst, struct vb2_buffer *
|
||||
if (!buf)
|
||||
return -EINVAL;
|
||||
|
||||
if (inst->capabilities->cap[INPUT_META_OUTBUF_FENCE].value &&
|
||||
if (is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE) &&
|
||||
is_output_buffer(buf->type)) {
|
||||
fence = msm_vidc_fence_create(inst);
|
||||
if (!fence)
|
||||
@@ -3795,7 +3795,7 @@ int msm_vidc_buffer_done(struct msm_vidc_inst *inst,
|
||||
|
||||
if (buf->type == MSM_VIDC_BUF_INPUT_META &&
|
||||
inst->capabilities->cap[INPUT_META_VIA_REQUEST].value) {
|
||||
if (inst->capabilities->cap[INPUT_META_OUTBUF_FENCE].value)
|
||||
if (is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE))
|
||||
return msm_vidc_v4l2_buffer_event(inst, buf);
|
||||
} else {
|
||||
return msm_vidc_vb2_buffer_done(inst, buf);
|
||||
|
@@ -17,9 +17,6 @@
|
||||
#if defined(CONFIG_MSM_VIDC_KALAMA)
|
||||
#include "msm_vidc_kalama.h"
|
||||
#endif
|
||||
#if defined(CONFIG_MSM_VIDC_DIWALI)
|
||||
#include "msm_vidc_diwali.h"
|
||||
#endif
|
||||
#if defined(CONFIG_MSM_VIDC_IRIS2)
|
||||
#include "msm_vidc_iris2.h"
|
||||
#endif
|
||||
@@ -198,16 +195,6 @@ static int msm_vidc_deinit_platform_variant(struct msm_vidc_core *core, struct d
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MSM_VIDC_DIWALI)
|
||||
if (of_device_is_compatible(dev->of_node, "qcom,msm-vidc-diwali")) {
|
||||
rc = msm_vidc_deinit_platform_diwali(core, dev);
|
||||
if (rc)
|
||||
d_vpr_e("%s: failed msm-vidc-diwali with %d\n",
|
||||
__func__, rc);
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -239,16 +226,6 @@ static int msm_vidc_init_platform_variant(struct msm_vidc_core *core, struct dev
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MSM_VIDC_DIWALI)
|
||||
if (of_device_is_compatible(dev->of_node, "qcom,msm-vidc-diwali")) {
|
||||
rc = msm_vidc_init_platform_diwali(core, dev);
|
||||
if (rc)
|
||||
d_vpr_e("%s: failed msm-vidc-diwali with %d\n",
|
||||
__func__, rc);
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@@ -3523,7 +3523,7 @@ int venus_hfi_queue_buffer(struct msm_vidc_inst *inst,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (inst->capabilities->cap[INPUT_META_OUTBUF_FENCE].value &&
|
||||
if (is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE) &&
|
||||
is_output_buffer(buffer->type)) {
|
||||
rc = hfi_create_packet(inst->packet,
|
||||
inst->packet_size,
|
||||
|
@@ -1559,7 +1559,7 @@ static int handle_session_property(struct msm_vidc_inst *inst,
|
||||
__func__, payload_ptr[0], inst->capabilities->cap[PIPE].value);
|
||||
break;
|
||||
case HFI_PROP_FENCE:
|
||||
if (inst->capabilities->cap[INPUT_META_OUTBUF_FENCE].value) {
|
||||
if (is_meta_rx_inp_enabled(inst, META_OUTBUF_FENCE)) {
|
||||
if (payload_ptr) {
|
||||
fence_id = payload_ptr[0];
|
||||
rc = msm_vidc_fence_signal(inst, fence_id);
|
||||
|
@@ -89,6 +89,16 @@ enum v4l2_mpeg_vidc_blur_types {
|
||||
(V4L2_CID_MPEG_VIDC_BASE + 0x12)
|
||||
|
||||
/* various Metadata - encoder & decoder */
|
||||
enum v4l2_mpeg_vidc_metadata_bits {
|
||||
V4L2_MPEG_VIDC_META_DISABLE = 0x0,
|
||||
V4L2_MPEG_VIDC_META_ENABLE = 0x1,
|
||||
V4L2_MPEG_VIDC_META_TX_INPUT = 0x2,
|
||||
V4L2_MPEG_VIDC_META_TX_OUTPUT = 0x4,
|
||||
V4L2_MPEG_VIDC_META_RX_INPUT = 0x8,
|
||||
V4L2_MPEG_VIDC_META_RX_OUTPUT = 0x10,
|
||||
V4L2_MPEG_VIDC_META_MAX = 0x20,
|
||||
};
|
||||
|
||||
#define V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS \
|
||||
(V4L2_CID_MPEG_VIDC_BASE + 0x13)
|
||||
#define V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL \
|
||||
@@ -201,7 +211,7 @@ enum v4l2_mpeg_video_av1_tier {
|
||||
#define V4L2_CID_MPEG_VIDC_INPUT_METADATA_VIA_REQUEST_ENABLE \
|
||||
(V4L2_CID_MPEG_VIDC_BASE + 0x37)
|
||||
/* Enables Output buffer fence id via input metadata */
|
||||
#define V4L2_CID_MPEG_VIDC_INPUT_METADATA_OUTBUF_FENCE \
|
||||
#define V4L2_CID_MPEG_VIDC_METADATA_OUTBUF_FENCE \
|
||||
(V4L2_CID_MPEG_VIDC_BASE + 0x38)
|
||||
/* Control to set fence id to driver in order get corresponding fence fd */
|
||||
#define V4L2_CID_MPEG_VIDC_SW_FENCE_ID \
|
||||
|
Reference in New Issue
Block a user