* [PATCH v3 0/2] AUD encoder control
@ 2021-01-19 12:16 Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 1/2] media: v4l2-ctrls: Add control for AUD generation Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 2/2] venus: venc: Add support for AUD NALU control Stanimir Varbanov
0 siblings, 2 replies; 3+ messages in thread
From: Stanimir Varbanov @ 2021-01-19 12:16 UTC (permalink / raw)
To: linux-media, linux-kernel
Cc: Ezequiel Garcia, Nicolas Dufresne, Hans Verkuil, Stanimir Varbanov
Hello,
The patchset adds new AUD encoder v4l2 control and the relevant
support in Venus driver. The previous v2 was part of [1] series
but now it is detached.
Changes since v2:
* rebased on top of media_tree master branch.
regards,
Stan
[1] https://patchwork.linuxtv.org/project/linux-media/list/?series=4083
Stanimir Varbanov (2):
media: v4l2-ctrls: Add control for AUD generation
venus: venc: Add support for AUD NALU control
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 5 +++++
drivers/media/platform/qcom/venus/core.h | 1 +
drivers/media/platform/qcom/venus/venc.c | 14 ++++++++++++++
drivers/media/platform/qcom/venus/venc_ctrls.c | 8 +++++++-
drivers/media/v4l2-core/v4l2-ctrls.c | 2 ++
include/uapi/linux/v4l2-controls.h | 1 +
6 files changed, 30 insertions(+), 1 deletion(-)
--
2.25.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 1/2] media: v4l2-ctrls: Add control for AUD generation
2021-01-19 12:16 [PATCH v3 0/2] AUD encoder control Stanimir Varbanov
@ 2021-01-19 12:16 ` Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 2/2] venus: venc: Add support for AUD NALU control Stanimir Varbanov
1 sibling, 0 replies; 3+ messages in thread
From: Stanimir Varbanov @ 2021-01-19 12:16 UTC (permalink / raw)
To: linux-media, linux-kernel
Cc: Ezequiel Garcia, Nicolas Dufresne, Hans Verkuil, Stanimir Varbanov
Add a control to enable inserting of AUD NALU into encoded
bitstream.
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
---
Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst | 5 +++++
drivers/media/v4l2-core/v4l2-ctrls.c | 2 ++
include/uapi/linux/v4l2-controls.h | 1 +
3 files changed, 8 insertions(+)
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
index 00944e97d638..c0e061835f50 100644
--- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
+++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
@@ -679,6 +679,11 @@ enum v4l2_mpeg_video_frame_skip_mode -
otherwise the decoder expects a single frame in per buffer.
Applicable to the decoder, all codecs.
+``V4L2_CID_MPEG_VIDEO_AU_DELIMITER (boolean)``
+ If enabled then, AUD (Access Unit Delimiter) NALUs will be generated.
+ That could be useful to find the start of a frame without having to
+ fully parse each NALU. Applicable to the H264 and HEVC encoders.
+
``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
Enable writing sample aspect ratio in the Video Usability
Information. Applicable to the H264 encoder.
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index f7b310240af2..c592da1a3187 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -874,6 +874,7 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_MPEG_VIDEO_HEADER_MODE: return "Sequence Header Mode";
case V4L2_CID_MPEG_VIDEO_MAX_REF_PIC: return "Max Number of Reference Pics";
case V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE: return "Frame Skip Mode";
+ case V4L2_CID_MPEG_VIDEO_AU_DELIMITER: return "Generate Access Unit Delimiters";
case V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP: return "H263 I-Frame QP Value";
case V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP: return "H263 P-Frame QP Value";
case V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP: return "H263 B-Frame QP Value";
@@ -1247,6 +1248,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE:
case V4L2_CID_MPEG_VIDEO_MPEG4_QPEL:
case V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER:
+ case V4L2_CID_MPEG_VIDEO_AU_DELIMITER:
case V4L2_CID_WIDE_DYNAMIC_RANGE:
case V4L2_CID_IMAGE_STABILIZATION:
case V4L2_CID_RDS_RECEPTION:
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 039c0d7add1b..6614666a3c31 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -428,6 +428,7 @@ enum v4l2_mpeg_video_multi_slice_mode {
#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228)
#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229)
#define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE+231)
/* CIDs for the MPEG-2 Part 2 (H.262) codec */
#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270)
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] venus: venc: Add support for AUD NALU control
2021-01-19 12:16 [PATCH v3 0/2] AUD encoder control Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 1/2] media: v4l2-ctrls: Add control for AUD generation Stanimir Varbanov
@ 2021-01-19 12:16 ` Stanimir Varbanov
1 sibling, 0 replies; 3+ messages in thread
From: Stanimir Varbanov @ 2021-01-19 12:16 UTC (permalink / raw)
To: linux-media, linux-kernel
Cc: Ezequiel Garcia, Nicolas Dufresne, Hans Verkuil, Stanimir Varbanov
Add support for Access Unit Delimiter control into encoder.
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
---
drivers/media/platform/qcom/venus/core.h | 1 +
drivers/media/platform/qcom/venus/venc.c | 14 ++++++++++++++
drivers/media/platform/qcom/venus/venc_ctrls.c | 8 +++++++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index b984d508ed71..efb9ce5505ac 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -222,6 +222,7 @@ struct venc_controls {
u32 multi_slice_max_mb;
u32 header_mode;
+ bool aud_enable;
struct {
u32 h264;
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index e4775ec97a87..498efa875c51 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -728,6 +728,20 @@ static int venc_set_properties(struct venus_inst *inst)
if (ret)
return ret;
+ if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
+ inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
+ struct hfi_enable en = {};
+
+ ptype = HFI_PROPERTY_PARAM_VENC_H264_GENERATE_AUDNAL;
+
+ if (ctr->aud_enable)
+ en.enable = 1;
+
+ ret = hfi_session_set_property(inst, ptype, &en);
+ if (ret)
+ return ret;
+ }
+
return 0;
}
diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
index 9fbe8388a938..cbc49910de67 100644
--- a/drivers/media/platform/qcom/venus/venc_ctrls.c
+++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
@@ -262,6 +262,9 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
case V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID:
ctr->base_priority_id = ctrl->val;
break;
+ case V4L2_CID_MPEG_VIDEO_AU_DELIMITER:
+ ctr->aud_enable = ctrl->val;
+ break;
default:
return -EINVAL;
}
@@ -277,7 +280,7 @@ int venc_ctrl_init(struct venus_inst *inst)
{
int ret;
- ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 51);
+ ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 52);
if (ret)
return ret;
@@ -483,6 +486,9 @@ int venc_ctrl_init(struct venus_inst *inst)
V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, 0,
6, 1, 0);
+ v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
+ V4L2_CID_MPEG_VIDEO_AU_DELIMITER, 0, 1, 1, 0);
+
ret = inst->ctrl_handler.error;
if (ret)
goto err;
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-19 12:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19 12:16 [PATCH v3 0/2] AUD encoder control Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 1/2] media: v4l2-ctrls: Add control for AUD generation Stanimir Varbanov
2021-01-19 12:16 ` [PATCH v3 2/2] venus: venc: Add support for AUD NALU control Stanimir Varbanov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).