From: Ezequiel Garcia <ezequiel@collabora.com> To: linux-media@vger.kernel.org Cc: kernel@collabora.com, Nicolas Dufresne <nicolas.dufresne@collabora.com>, Tomasz Figa <tfiga@chromium.org>, linux-rockchip@lists.infradead.org, Heiko Stuebner <heiko@sntech.de>, Jonas Karlman <jonas@kwiboo.se>, Philipp Zabel <p.zabel@pengutronix.de>, Boris Brezillon <boris.brezillon@collabora.com>, Paul Kocialkowski <paul.kocialkowski@bootlin.com>, Alexandre Courbot <acourbot@chromium.org>, fbuergisser@chromium.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 08/11] media: hantro: Move copy_metadata() before doing a decode operation Date: Mon, 12 Aug 2019 16:35:19 -0300 [thread overview] Message-ID: <20190812193522.10911-9-ezequiel@collabora.com> (raw) In-Reply-To: <20190812193522.10911-1-ezequiel@collabora.com> From: Boris Brezillon <boris.brezillon@collabora.com> Some decoders use intra slice/frame references. The capture buffer pointed by these references might be new and thus have invalid timestamp which prevents the decoder logic from retrieving the vb2_buffer object based on the output buf timestamp. Copy all metadata (including the timestamp) before starting the decode operation. Suggested-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Tested-by: Philipp Zabel <p.zabel@pengutronix.de> --- Changes in v5: * None. Changes in v4: * None. --- drivers/staging/media/hantro/hantro_drv.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c index 4af6ee80229e..6e2351e46750 100644 --- a/drivers/staging/media/hantro/hantro_drv.c +++ b/drivers/staging/media/hantro/hantro_drv.c @@ -111,8 +111,6 @@ static void hantro_job_finish(struct hantro_dev *vpu, src->sequence = ctx->sequence_out++; dst->sequence = ctx->sequence_cap++; - v4l2_m2m_buf_copy_metadata(src, dst, true); - ret = ctx->buf_finish(ctx, &dst->vb2_buf, bytesused); if (ret) result = VB2_BUF_STATE_ERROR; @@ -178,8 +176,12 @@ void hantro_finish_run(struct hantro_ctx *ctx) static void device_run(void *priv) { struct hantro_ctx *ctx = priv; + struct vb2_v4l2_buffer *src, *dst; int ret; + src = hantro_get_src_buf(ctx); + dst = hantro_get_dst_buf(ctx); + ret = clk_bulk_enable(ctx->dev->variant->num_clocks, ctx->dev->clocks); if (ret) goto err_cancel_job; @@ -187,6 +189,8 @@ static void device_run(void *priv) if (ret < 0) goto err_cancel_job; + v4l2_m2m_buf_copy_metadata(src, dst, true); + ctx->codec_ops->run(ctx); return; -- 2.22.0
WARNING: multiple messages have this Message-ID (diff)
From: Ezequiel Garcia <ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> To: linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: fbuergisser-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Nicolas Dufresne <nicolas.dufresne-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>, Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>, Alexandre Courbot <acourbot-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>, Jonas Karlman <jonas-uIzNG4q0ceqzQB+pC5nmwQ@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Tomasz Figa <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>, Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Boris Brezillon <boris.brezillon-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>, Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>, kernel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org Subject: [PATCH v5 08/11] media: hantro: Move copy_metadata() before doing a decode operation Date: Mon, 12 Aug 2019 16:35:19 -0300 [thread overview] Message-ID: <20190812193522.10911-9-ezequiel@collabora.com> (raw) In-Reply-To: <20190812193522.10911-1-ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> From: Boris Brezillon <boris.brezillon-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> Some decoders use intra slice/frame references. The capture buffer pointed by these references might be new and thus have invalid timestamp which prevents the decoder logic from retrieving the vb2_buffer object based on the output buf timestamp. Copy all metadata (including the timestamp) before starting the decode operation. Suggested-by: Jonas Karlman <jonas-uIzNG4q0ceqzQB+pC5nmwQ@public.gmane.org> Signed-off-by: Boris Brezillon <boris.brezillon-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> Tested-by: Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> --- Changes in v5: * None. Changes in v4: * None. --- drivers/staging/media/hantro/hantro_drv.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c index 4af6ee80229e..6e2351e46750 100644 --- a/drivers/staging/media/hantro/hantro_drv.c +++ b/drivers/staging/media/hantro/hantro_drv.c @@ -111,8 +111,6 @@ static void hantro_job_finish(struct hantro_dev *vpu, src->sequence = ctx->sequence_out++; dst->sequence = ctx->sequence_cap++; - v4l2_m2m_buf_copy_metadata(src, dst, true); - ret = ctx->buf_finish(ctx, &dst->vb2_buf, bytesused); if (ret) result = VB2_BUF_STATE_ERROR; @@ -178,8 +176,12 @@ void hantro_finish_run(struct hantro_ctx *ctx) static void device_run(void *priv) { struct hantro_ctx *ctx = priv; + struct vb2_v4l2_buffer *src, *dst; int ret; + src = hantro_get_src_buf(ctx); + dst = hantro_get_dst_buf(ctx); + ret = clk_bulk_enable(ctx->dev->variant->num_clocks, ctx->dev->clocks); if (ret) goto err_cancel_job; @@ -187,6 +189,8 @@ static void device_run(void *priv) if (ret < 0) goto err_cancel_job; + v4l2_m2m_buf_copy_metadata(src, dst, true); + ctx->codec_ops->run(ctx); return; -- 2.22.0
next prev parent reply other threads:[~2019-08-12 19:36 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-12 19:35 [PATCH v5 00/11] media: hantro: Add support for H264 decoding Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 01/11] lib/sort.c: implement sort() variant taking context argument Ezequiel Garcia 2019-08-12 19:35 ` Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 02/11] media: uapi: h264: Rename pixel format Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 03/11] media: uapi: h264: Add the concept of decoding mode Ezequiel Garcia 2019-08-13 6:46 ` Hans Verkuil 2019-08-14 12:23 ` Paul Kocialkowski 2019-08-14 14:08 ` Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 04/11] media: uapi: h264: Add the concept of start code Ezequiel Garcia 2019-08-14 8:11 ` Hans Verkuil 2019-08-14 11:49 ` Paul Kocialkowski 2019-08-14 14:12 ` Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 05/11] media: uapi: h264: Get rid of the p0/b0/b1 ref-lists Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 06/11] media: cedrus: Cleanup control initialization Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 07/11] media: cedrus: Specify H264 startcode and decoding mode Ezequiel Garcia 2019-08-12 19:35 ` Ezequiel Garcia [this message] 2019-08-12 19:35 ` [PATCH v5 08/11] media: hantro: Move copy_metadata() before doing a decode operation Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 09/11] media: hantro: Add core bits to support H264 decoding Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 10/11] media: hantro: Add support for H264 decoding on G1 Ezequiel Garcia 2019-08-12 19:35 ` [PATCH v5 11/11] media: hantro: Enable H264 decoding on rk3288 Ezequiel Garcia
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190812193522.10911-9-ezequiel@collabora.com \ --to=ezequiel@collabora.com \ --cc=acourbot@chromium.org \ --cc=boris.brezillon@collabora.com \ --cc=fbuergisser@chromium.org \ --cc=heiko@sntech.de \ --cc=jonas@kwiboo.se \ --cc=kernel@collabora.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=nicolas.dufresne@collabora.com \ --cc=p.zabel@pengutronix.de \ --cc=paul.kocialkowski@bootlin.com \ --cc=tfiga@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.