mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-18 23:29:57 +02:00
FROMGIT: media: v4l2-ctrls: Add average QP control
Add a control V4L2_CID_MPEG_VIDEO_AVERAGE_QP to report the average QP
value of the current encoded frame. The value applies to the last
dequeued capture buffer.
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Bug: 352213761
(cherry picked from commit 62096c4839
https://git.linuxtv.org/media_tree.git master)
Change-Id: I0d8af1997a1a3f0b658f2fb917026092b5d9f5e5
Signed-off-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
This commit is contained in:
parent
075954d0d8
commit
fadc0ed15c
|
@ -1653,6 +1653,20 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type -
|
||||||
Quantization parameter for a P frame for FWHT. Valid range: from 1
|
Quantization parameter for a P frame for FWHT. Valid range: from 1
|
||||||
to 31.
|
to 31.
|
||||||
|
|
||||||
|
``V4L2_CID_MPEG_VIDEO_AVERAGE_QP (integer)``
|
||||||
|
This read-only control returns the average QP value of the currently
|
||||||
|
encoded frame. The value applies to the last dequeued capture buffer
|
||||||
|
(VIDIOC_DQBUF). Its valid range depends on the encoding format and parameters.
|
||||||
|
For H264, its valid range is from 0 to 51.
|
||||||
|
For HEVC, its valid range is from 0 to 51 for 8 bit and
|
||||||
|
from 0 to 63 for 10 bit.
|
||||||
|
For H263 and MPEG4, its valid range is from 1 to 31.
|
||||||
|
For VP8, its valid range is from 0 to 127.
|
||||||
|
For VP9, its valid range is from 0 to 255.
|
||||||
|
If the codec's MIN_QP and MAX_QP are set, then the QP will meet both requirements.
|
||||||
|
Codecs need to always use the specified range, rather then a HW custom range.
|
||||||
|
Applicable to encoders
|
||||||
|
|
||||||
.. raw:: latex
|
.. raw:: latex
|
||||||
|
|
||||||
\normalsize
|
\normalsize
|
||||||
|
|
|
@ -970,6 +970,7 @@ const char *v4l2_ctrl_get_name(u32 id)
|
||||||
case V4L2_CID_MPEG_VIDEO_LTR_COUNT: return "LTR Count";
|
case V4L2_CID_MPEG_VIDEO_LTR_COUNT: return "LTR Count";
|
||||||
case V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX: return "Frame LTR Index";
|
case V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX: return "Frame LTR Index";
|
||||||
case V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES: return "Use LTR Frames";
|
case V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES: return "Use LTR Frames";
|
||||||
|
case V4L2_CID_MPEG_VIDEO_AVERAGE_QP: return "Average QP Value";
|
||||||
case V4L2_CID_FWHT_I_FRAME_QP: return "FWHT I-Frame QP Value";
|
case V4L2_CID_FWHT_I_FRAME_QP: return "FWHT I-Frame QP Value";
|
||||||
case V4L2_CID_FWHT_P_FRAME_QP: return "FWHT P-Frame QP Value";
|
case V4L2_CID_FWHT_P_FRAME_QP: return "FWHT P-Frame QP Value";
|
||||||
|
|
||||||
|
@ -1507,6 +1508,10 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
||||||
*max = 0xffffffffffffLL;
|
*max = 0xffffffffffffLL;
|
||||||
*step = 1;
|
*step = 1;
|
||||||
break;
|
break;
|
||||||
|
case V4L2_CID_MPEG_VIDEO_AVERAGE_QP:
|
||||||
|
*type = V4L2_CTRL_TYPE_INTEGER;
|
||||||
|
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||||||
|
break;
|
||||||
case V4L2_CID_PIXEL_RATE:
|
case V4L2_CID_PIXEL_RATE:
|
||||||
*type = V4L2_CTRL_TYPE_INTEGER64;
|
*type = V4L2_CTRL_TYPE_INTEGER64;
|
||||||
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||||||
|
|
|
@ -886,6 +886,8 @@ enum v4l2_mpeg_video_av1_level {
|
||||||
V4L2_MPEG_VIDEO_AV1_LEVEL_7_3 = 23
|
V4L2_MPEG_VIDEO_AV1_LEVEL_7_3 = 23
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define V4L2_CID_MPEG_VIDEO_AVERAGE_QP (V4L2_CID_CODEC_BASE + 657)
|
||||||
|
|
||||||
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
||||||
#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
|
#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
|
||||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0)
|
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user