media: v4l2-ctrl: Add control for VP9 profile
Add a new control V4L2_CID_MPEG_VIDEO_VP9_PROFILE for VP9 profiles. This control allows selecting the desired profile for VP9 encoder and querying for supported profiles by VP9 encoder/decoder. Though this control is similar to V4L2_CID_MPEG_VIDEO_VP8_PROFILE, we need to separate this control from it because supported profiles usually differ between VP8 and VP9. Signed-off-by: Keiichi Watanabe <keiichiw@chromium.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
5520b9467a
commit
2a75364d09
|
@ -1978,6 +1978,29 @@ enum v4l2_mpeg_video_vp8_profile -
|
|||
* - ``V4L2_MPEG_VIDEO_VP8_PROFILE_3``
|
||||
- Profile 3
|
||||
|
||||
.. _v4l2-mpeg-video-vp9-profile:
|
||||
|
||||
``V4L2_CID_MPEG_VIDEO_VP9_PROFILE``
|
||||
(enum)
|
||||
|
||||
enum v4l2_mpeg_video_vp9_profile -
|
||||
This control allows selecting the profile for VP9 encoder.
|
||||
This is also used to enumerate supported profiles by VP9 encoder or decoder.
|
||||
Possible values are:
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
|
||||
* - ``V4L2_MPEG_VIDEO_VP9_PROFILE_0``
|
||||
- Profile 0
|
||||
* - ``V4L2_MPEG_VIDEO_VP9_PROFILE_1``
|
||||
- Profile 1
|
||||
* - ``V4L2_MPEG_VIDEO_VP9_PROFILE_2``
|
||||
- Profile 2
|
||||
* - ``V4L2_MPEG_VIDEO_VP9_PROFILE_3``
|
||||
- Profile 3
|
||||
|
||||
|
||||
High Efficiency Video Coding (HEVC/H.265) Control Reference
|
||||
-----------------------------------------------------------
|
||||
|
|
|
@ -438,6 +438,13 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
|||
"3",
|
||||
NULL,
|
||||
};
|
||||
static const char * const vp9_profile[] = {
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const char * const flash_led_mode[] = {
|
||||
"Off",
|
||||
|
@ -623,6 +630,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
|||
return vpx_golden_frame_sel;
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
|
||||
return vp8_profile;
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE:
|
||||
return vp9_profile;
|
||||
case V4L2_CID_JPEG_CHROMA_SUBSAMPLING:
|
||||
return jpeg_chroma_subsampling;
|
||||
case V4L2_CID_DV_TX_MODE:
|
||||
|
@ -849,6 +858,7 @@ const char *v4l2_ctrl_get_name(u32 id)
|
|||
case V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP: return "VPX I-Frame QP Value";
|
||||
case V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP: return "VPX P-Frame QP Value";
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE: return "VP8 Profile";
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE: return "VP9 Profile";
|
||||
|
||||
/* HEVC controls */
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP: return "HEVC I-Frame QP Value";
|
||||
|
@ -1190,6 +1200,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
|||
case V4L2_CID_TUNE_DEEMPHASIS:
|
||||
case V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL:
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE:
|
||||
case V4L2_CID_DETECT_MD_MODE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL:
|
||||
|
|
|
@ -597,6 +597,13 @@ enum v4l2_mpeg_video_vp8_profile {
|
|||
};
|
||||
/* Deprecated alias for compatibility reasons. */
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
|
||||
#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512)
|
||||
enum v4l2_mpeg_video_vp9_profile {
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
|
||||
};
|
||||
|
||||
/* CIDs for HEVC encoding. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue