Message ID | 20201130090859.25272-2-stanimir.varbanov@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/4] media: v4l2-ctrls: Add random intra-refresh control | expand |
Hi, On 11/30/20 11:08 AM, Stanimir Varbanov wrote: > Add a control to configure number of macroblocks for random > intra-refresh mode. > > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > --- > Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst | 6 ++++++ > drivers/media/v4l2-core/v4l2-ctrls.c | 1 + > 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 ce728c757eaf..59c5d3da4d95 100644 > --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst > +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst > @@ -1104,6 +1104,12 @@ enum v4l2_mpeg_video_h264_entropy_mode - > macroblocks is refreshed until the cycle completes and starts from > the top of the frame. Applicable to H264, H263 and MPEG4 encoder. > > +``V4L2_CID_MPEG_VIDEO_RANDOM_INTRA_REFRESH_MB (integer)`` > + Random intra macroblock refresh. This is the number of random > + macroblocks refreshed on every frame. Here the positions of > + macroblocks to be refreshed on every frame is random. Applicable > + to H264 and HEVC encoder. Please ignore this control. I'm going to change the semantics in next version of this series. -- regards, Stan
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst index ce728c757eaf..59c5d3da4d95 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst @@ -1104,6 +1104,12 @@ enum v4l2_mpeg_video_h264_entropy_mode - macroblocks is refreshed until the cycle completes and starts from the top of the frame. Applicable to H264, H263 and MPEG4 encoder. +``V4L2_CID_MPEG_VIDEO_RANDOM_INTRA_REFRESH_MB (integer)`` + Random intra macroblock refresh. This is the number of random + macroblocks refreshed on every frame. Here the positions of + macroblocks to be refreshed on every frame is random. Applicable + to H264 and HEVC encoder. + ``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)`` Frame level rate control enable. If this control is disabled then the quantization parameter for each frame type is constant and set diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index ad47d00e28d6..5354547ed777 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -869,6 +869,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE: return "Decoder Slice Interface"; case V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER: return "MPEG4 Loop Filter Enable"; case V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB: return "Number of Intra Refresh MBs"; + case V4L2_CID_MPEG_VIDEO_RANDOM_INTRA_REFRESH_MB: return "Number of Random IR MBs"; case V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE: return "Frame Level Rate Control Enable"; case V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE: return "H264 MB Level Rate Control"; case V4L2_CID_MPEG_VIDEO_HEADER_MODE: return "Sequence Header Mode"; diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 7035f4fb182c..cc7676ffff67 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h @@ -421,6 +421,7 @@ enum v4l2_mpeg_video_multi_slice_mode { #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) +#define V4L2_CID_MPEG_VIDEO_RANDOM_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+230) /* CIDs for the MPEG-2 Part 2 (H.262) codec */ #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270)
Add a control to configure number of macroblocks for random intra-refresh mode. Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> --- Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst | 6 ++++++ drivers/media/v4l2-core/v4l2-ctrls.c | 1 + include/uapi/linux/v4l2-controls.h | 1 + 3 files changed, 8 insertions(+)