media: v4l2-ctrls: Add intra-refresh type control
Add a control to set intra-refresh type. Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
ef15219c3e
commit
fcbc4acf8b
@ -1180,6 +1180,28 @@ enum v4l2_mpeg_video_h264_entropy_mode -
|
||||
is set to non zero value.
|
||||
Applicable to H264, H263 and MPEG4 encoder.
|
||||
|
||||
``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (enum)``
|
||||
|
||||
enum v4l2_mpeg_video_intra_refresh_period_type -
|
||||
Sets the type of intra refresh. The period to refresh
|
||||
the whole frame is specified by V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD.
|
||||
Note that if this control is not present, then it is undefined what
|
||||
refresh type is used and it is up to the driver to decide.
|
||||
Applicable to H264 and HEVC encoders. Possible values are:
|
||||
|
||||
.. tabularcolumns:: |p{9.6cm}|p{7.9cm}|
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM``
|
||||
- The whole frame is completely refreshed randomly
|
||||
after the specified period.
|
||||
* - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC``
|
||||
- The whole frame MBs are completely refreshed in cyclic order
|
||||
after the specified period.
|
||||
|
||||
``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (integer)``
|
||||
Intra macroblock refresh period. This sets the period to refresh
|
||||
the whole frame. In other words, this defines the number of frames
|
||||
|
@ -572,6 +572,11 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
||||
"VBV/CPB Limit",
|
||||
NULL,
|
||||
};
|
||||
static const char * const intra_refresh_period_type[] = {
|
||||
"Random",
|
||||
"Cyclic",
|
||||
NULL,
|
||||
};
|
||||
|
||||
switch (id) {
|
||||
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
|
||||
@ -705,6 +710,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
||||
return hevc_start_code;
|
||||
case V4L2_CID_CAMERA_ORIENTATION:
|
||||
return camera_orientation;
|
||||
case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE:
|
||||
return intra_refresh_period_type;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
@ -834,6 +841,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_INTRA_REFRESH_PERIOD_TYPE: return "Intra Refresh Period Type";
|
||||
case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD: return "Intra Refresh Period";
|
||||
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";
|
||||
@ -1360,6 +1368,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
||||
case V4L2_CID_STATELESS_H264_DECODE_MODE:
|
||||
case V4L2_CID_STATELESS_H264_START_CODE:
|
||||
case V4L2_CID_CAMERA_ORIENTATION:
|
||||
case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE:
|
||||
*type = V4L2_CTRL_TYPE_MENU;
|
||||
break;
|
||||
case V4L2_CID_LINK_FREQ:
|
||||
|
@ -449,6 +449,11 @@ enum v4l2_mpeg_video_multi_slice_mode {
|
||||
#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE+234)
|
||||
#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE+235)
|
||||
#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE+236)
|
||||
#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (V4L2_CID_CODEC_BASE+237)
|
||||
enum v4l2_mpeg_video_intra_refresh_period_type {
|
||||
V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM = 0,
|
||||
V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC = 1,
|
||||
};
|
||||
|
||||
/* CIDs for the MPEG-2 Part 2 (H.262) codec */
|
||||
#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270)
|
||||
|
Loading…
Reference in New Issue
Block a user