Message ID | 20220309173636.1879419-2-festevam@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/2] media: coda: Fix reported H264 profile | expand |
On Mi, 2022-03-09 at 14:36 -0300, Fabio Estevam wrote: > From: Nicolas Dufresne <nicolas.dufresne@collabora.com> > > Add H264 level 1.0, 4.1, 4.2 to the list of supported formats. > While the hardware does not fully support these levels, it does > support > most of them. The constraints on frame size and pixel formats already > cover the limitation. > > This fixes negotiation of level on GStreamer 1.17.1. > > Cc: stable@vger.kernel.org > Fixes: 42a68012e67c2 ("media: coda: add read-only h.264 decoder > profile/level controls") > Suggested-by: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> > Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> > Signed-off-by: Fabio Estevam <festevam@denx.de> > --- > Changes since v2: > - Remove 5.0 level and use Phillip's suggestion to get the correct > levels > being reported by v4l2h264enc: > > h264_level 0x00990a67 (menu) : min=0 max=13 > default=11 value=11 > 0: 1 > 5: 2 > 8: 3 > 9: 3.1 > 10: 3.2 > 11: 4 > 12: 4.1 > 13: 4.2 > > drivers/media/platform/coda/coda-common.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/coda/coda-common.c > b/drivers/media/platform/coda/coda-common.c > index 280d77f1567c..da8bc1f87ba0 100644 > --- a/drivers/media/platform/coda/coda-common.c > +++ b/drivers/media/platform/coda/coda-common.c > @@ -2349,12 +2349,15 @@ static void coda_encode_ctrls(struct coda_ctx > *ctx) > if (ctx->dev->devtype->product == CODA_960) { > v4l2_ctrl_new_std_menu(&ctx->ctrls, &coda_ctrl_ops, > V4L2_CID_MPEG_VIDEO_H264_LEVEL, > - V4L2_MPEG_VIDEO_H264_LEVEL_4_0, > - ~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | > + V4L2_MPEG_VIDEO_H264_LEVEL_4_2, > + ~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | > (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | > - (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0)), > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | > + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_2)), > V4L2_MPEG_VIDEO_H264_LEVEL_4_0); > } > v4l2_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops, Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> regards Philipp
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c index 280d77f1567c..da8bc1f87ba0 100644 --- a/drivers/media/platform/coda/coda-common.c +++ b/drivers/media/platform/coda/coda-common.c @@ -2349,12 +2349,15 @@ static void coda_encode_ctrls(struct coda_ctx *ctx) if (ctx->dev->devtype->product == CODA_960) { v4l2_ctrl_new_std_menu(&ctx->ctrls, &coda_ctrl_ops, V4L2_CID_MPEG_VIDEO_H264_LEVEL, - V4L2_MPEG_VIDEO_H264_LEVEL_4_0, - ~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + ~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | - (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0)), + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_2)), V4L2_MPEG_VIDEO_H264_LEVEL_4_0); } v4l2_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops,