Message ID | 20200706215430.22859-13-jonas@kwiboo.se (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Mon, 2020-07-06 at 21:54 +0000, Jonas Karlman wrote: > The Rockchip Video Decoder used in RK3399 supports H.264 profiles from > Baseline to High 4:2:2 up to Level 5.1, except for the Extended profile. > > Expose the V4L2_CID_MPEG_VIDEO_H264_PROFILE and the > V4L2_CID_MPEG_VIDEO_H264_LEVEL control, so that userspace can query the > driver for the list of supported profiles and level. > > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> > --- > Changes in v2: > - Moved to end > - Collect r-b tag > --- > drivers/staging/media/rkvdec/rkvdec.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c > index 4faee9262392..b21031535330 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.c > +++ b/drivers/staging/media/rkvdec/rkvdec.c > @@ -144,6 +144,19 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { > .cfg.def = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, > .cfg.max = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, > }, > + { > + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE, > + .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, Nicolas recently pointed out to me that our drivers can't support ASO/FMO baseline features, and so seems we need to leave baseline out. (Applies to Hantro as well). Thanks, Ezequiel > + .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422, > + .cfg.menu_skip_mask = > + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED), > + .cfg.def = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN, > + }, > + { > + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL, > + .cfg.min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, > + .cfg.max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1, > + }, > }; > > static const struct rkvdec_ctrls rkvdec_h264_ctrls = {
On 2020-07-08 05:19, Ezequiel Garcia wrote: > On Mon, 2020-07-06 at 21:54 +0000, Jonas Karlman wrote: >> The Rockchip Video Decoder used in RK3399 supports H.264 profiles from >> Baseline to High 4:2:2 up to Level 5.1, except for the Extended profile. >> >> Expose the V4L2_CID_MPEG_VIDEO_H264_PROFILE and the >> V4L2_CID_MPEG_VIDEO_H264_LEVEL control, so that userspace can query the >> driver for the list of supported profiles and level. >> >> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> >> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> >> --- >> Changes in v2: >> - Moved to end >> - Collect r-b tag >> --- >> drivers/staging/media/rkvdec/rkvdec.c | 13 +++++++++++++ >> 1 file changed, 13 insertions(+) >> >> diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c >> index 4faee9262392..b21031535330 100644 >> --- a/drivers/staging/media/rkvdec/rkvdec.c >> +++ b/drivers/staging/media/rkvdec/rkvdec.c >> @@ -144,6 +144,19 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { >> .cfg.def = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, >> .cfg.max = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, >> }, >> + { >> + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE, >> + .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, > > Nicolas recently pointed out to me that our drivers > can't support ASO/FMO baseline features, and so > seems we need to leave baseline out. I will change min to V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE in v3. Regards, Jonas > > (Applies to Hantro as well). > > Thanks, > Ezequiel > >> + .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422, >> + .cfg.menu_skip_mask = >> + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED), >> + .cfg.def = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN, >> + }, >> + { >> + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL, >> + .cfg.min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, >> + .cfg.max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1, >> + }, >> }; >> >> static const struct rkvdec_ctrls rkvdec_h264_ctrls = { > >
diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c index 4faee9262392..b21031535330 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -144,6 +144,19 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { .cfg.def = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, .cfg.max = V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B, }, + { + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE, + .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422, + .cfg.menu_skip_mask = + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED), + .cfg.def = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN, + }, + { + .cfg.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL, + .cfg.min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .cfg.max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1, + }, }; static const struct rkvdec_ctrls rkvdec_h264_ctrls = {