From: "Jernej Škrabec" <jernej.skrabec@siol.net> To: Boris Brezillon <boris.brezillon@collabora.com> Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, paul.kocialkowski@bootlin.com, mripard@kernel.org, pawel@osciak.com, m.szyprowski@samsung.com, kyungmin.park@samsung.com, tfiga@chromium.org, wens@csie.org, acourbot@chromium.org, gregkh@linuxfoundation.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, linux-arm-kernel@lists.infradead.org, ezequiel@collabora.com, jonas@kwiboo.se Subject: Re: [PATCH 5/8] media: cedrus: Detect first slice of a frame Date: Mon, 26 Aug 2019 20:47:57 +0200 [thread overview] Message-ID: <3859967.Y0CYr1sFaX@jernej-laptop> (raw) In-Reply-To: <20190826202831.311c7c20@collabora.com> Dne ponedeljek, 26. avgust 2019 ob 20:28:31 CEST je Boris Brezillon napisal(a): > Hi Jernej, > > On Thu, 22 Aug 2019 21:44:57 +0200 > > Jernej Skrabec <jernej.skrabec@siol.net> wrote: > > When codec supports multiple slices in one frame, VPU has to know when > > first slice of each frame is being processed, presumably to correctly > > clear/set data in auxiliary buffers. > > > > Add first_slice field to cedrus_run structure and set it according to > > timestamps of capture and output buffers. If timestamps are different, > > it's first slice and viceversa. > > > > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> > > --- > > > > drivers/staging/media/sunxi/cedrus/cedrus.h | 1 + > > drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 ++ > > 2 files changed, 3 insertions(+) > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h > > b/drivers/staging/media/sunxi/cedrus/cedrus.h index > > 2f017a651848..32cb38e541c6 100644 > > --- a/drivers/staging/media/sunxi/cedrus/cedrus.h > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h > > @@ -70,6 +70,7 @@ struct cedrus_mpeg2_run { > > > > struct cedrus_run { > > > > struct vb2_v4l2_buffer *src; > > struct vb2_v4l2_buffer *dst; > > > > + bool first_slice; > > > > union { > > > > struct cedrus_h264_run h264; > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c index > > 56ca4c9ad01c..d7b54accfe83 100644 > > --- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > @@ -31,6 +31,8 @@ void cedrus_device_run(void *priv) > > > > run.src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); > > run.dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); > > > > + run.first_slice = > > + run.src->vb2_buf.timestamp != run.dst- >vb2_buf.timestamp; > > Can't we use slice->first_mb_in_slice to determine if a slice is the > first? I'd expect ->first_mb_in_slice to be 0 (unless we decide to > support ASO). I'm not sure if that is always the case, I would have to check the standard. Anyway, this method of comparing timestamps was suggested to me a while ago when we were discussing details on a way forward for multi-slice decoding. I highly doubt someone would decode slices in mixed order (from different frames) in same instance. I can change that in next version if ->first_mb_in_slice == 0 is always true for the first slice. Best regards, Jernej > > > /* Apply request(s) controls if needed. */ > > src_req = run.src->vb2_buf.req_obj.req;
WARNING: multiple messages have this Message-ID (diff)
From: "Jernej Škrabec" <jernej.skrabec@siol.net> To: Boris Brezillon <boris.brezillon@collabora.com> Cc: devel@driverdev.osuosl.org, acourbot@chromium.org, pawel@osciak.com, jonas@kwiboo.se, gregkh@linuxfoundation.org, wens@csie.org, mripard@kernel.org, tfiga@chromium.org, paul.kocialkowski@bootlin.com, kyungmin.park@samsung.com, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, hverkuil-cisco@xs4all.nl, mchehab@kernel.org, ezequiel@collabora.com, linux-kernel@vger.kernel.org, m.szyprowski@samsung.com Subject: Re: [PATCH 5/8] media: cedrus: Detect first slice of a frame Date: Mon, 26 Aug 2019 20:47:57 +0200 [thread overview] Message-ID: <3859967.Y0CYr1sFaX@jernej-laptop> (raw) In-Reply-To: <20190826202831.311c7c20@collabora.com> Dne ponedeljek, 26. avgust 2019 ob 20:28:31 CEST je Boris Brezillon napisal(a): > Hi Jernej, > > On Thu, 22 Aug 2019 21:44:57 +0200 > > Jernej Skrabec <jernej.skrabec@siol.net> wrote: > > When codec supports multiple slices in one frame, VPU has to know when > > first slice of each frame is being processed, presumably to correctly > > clear/set data in auxiliary buffers. > > > > Add first_slice field to cedrus_run structure and set it according to > > timestamps of capture and output buffers. If timestamps are different, > > it's first slice and viceversa. > > > > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> > > --- > > > > drivers/staging/media/sunxi/cedrus/cedrus.h | 1 + > > drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 ++ > > 2 files changed, 3 insertions(+) > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h > > b/drivers/staging/media/sunxi/cedrus/cedrus.h index > > 2f017a651848..32cb38e541c6 100644 > > --- a/drivers/staging/media/sunxi/cedrus/cedrus.h > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h > > @@ -70,6 +70,7 @@ struct cedrus_mpeg2_run { > > > > struct cedrus_run { > > > > struct vb2_v4l2_buffer *src; > > struct vb2_v4l2_buffer *dst; > > > > + bool first_slice; > > > > union { > > > > struct cedrus_h264_run h264; > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c index > > 56ca4c9ad01c..d7b54accfe83 100644 > > --- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c > > @@ -31,6 +31,8 @@ void cedrus_device_run(void *priv) > > > > run.src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); > > run.dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); > > > > + run.first_slice = > > + run.src->vb2_buf.timestamp != run.dst- >vb2_buf.timestamp; > > Can't we use slice->first_mb_in_slice to determine if a slice is the > first? I'd expect ->first_mb_in_slice to be 0 (unless we decide to > support ASO). I'm not sure if that is always the case, I would have to check the standard. Anyway, this method of comparing timestamps was suggested to me a while ago when we were discussing details on a way forward for multi-slice decoding. I highly doubt someone would decode slices in mixed order (from different frames) in same instance. I can change that in next version if ->first_mb_in_slice == 0 is always true for the first slice. Best regards, Jernej > > > /* Apply request(s) controls if needed. */ > > src_req = run.src->vb2_buf.req_obj.req; _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-08-26 18:48 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-22 19:44 [PATCH 0/8] media: cedrus: h264: Support multi-slice frames Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-22 19:44 ` [PATCH 1/8] vb2: add V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-22 19:44 ` [PATCH 2/8] videodev2.h: add V4L2_DEC_CMD_FLUSH Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-26 18:30 ` Boris Brezillon 2019-08-26 18:30 ` Boris Brezillon 2019-08-30 9:38 ` Alexandre Courbot 2019-08-30 9:38 ` Alexandre Courbot 2019-08-30 9:44 ` Hans Verkuil 2019-08-30 9:44 ` Hans Verkuil 2019-08-30 9:48 ` Alexandre Courbot 2019-08-30 9:48 ` Alexandre Courbot 2019-08-22 19:44 ` [PATCH 3/8] media: docs-rst: Document m2m stateless video decoder interface Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-22 19:44 ` [PATCH 4/8] media: docs-rst: Document memory-to-memory video encoder interface Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-22 19:44 ` [PATCH 5/8] media: cedrus: Detect first slice of a frame Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-26 18:28 ` Boris Brezillon 2019-08-26 18:28 ` Boris Brezillon 2019-08-26 18:47 ` Jernej Škrabec [this message] 2019-08-26 18:47 ` Jernej Škrabec 2019-08-29 19:04 ` Jernej Škrabec 2019-08-29 19:04 ` Jernej Škrabec 2019-08-30 5:48 ` Boris Brezillon 2019-08-30 5:48 ` Boris Brezillon 2019-08-30 17:19 ` Nicolas Dufresne 2019-08-30 17:19 ` Nicolas Dufresne 2019-08-30 17:19 ` Nicolas Dufresne 2019-08-30 7:28 ` Hans Verkuil 2019-08-30 7:28 ` Hans Verkuil 2019-08-22 19:44 ` [PATCH 6/8] media: cedrus: h264: Support multiple slices per frame Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-22 19:44 ` [PATCH 7/8] media: cedrus: Add support for holding capture buffer Jernej Skrabec 2019-08-22 19:44 ` Jernej Skrabec 2019-08-26 18:38 ` Boris Brezillon 2019-08-26 18:38 ` Boris Brezillon 2019-08-29 11:23 ` Hans Verkuil 2019-08-29 11:23 ` Hans Verkuil 2019-09-04 23:14 ` Jernej Škrabec 2019-09-04 23:14 ` Jernej Škrabec 2019-09-04 23:14 ` Jernej Škrabec 2019-08-22 19:45 ` [PATCH 8/8] media: cedrus: Add support for V4L2_DEC_CMD_FLUSH Jernej Skrabec 2019-08-22 19:45 ` Jernej Skrabec 2019-08-26 18:55 ` Boris Brezillon 2019-08-26 18:55 ` Boris Brezillon 2019-08-29 11:11 ` Hans Verkuil 2019-08-29 11:11 ` Hans Verkuil
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=3859967.Y0CYr1sFaX@jernej-laptop \ --to=jernej.skrabec@siol.net \ --cc=acourbot@chromium.org \ --cc=boris.brezillon@collabora.com \ --cc=devel@driverdev.osuosl.org \ --cc=ezequiel@collabora.com \ --cc=gregkh@linuxfoundation.org \ --cc=hverkuil-cisco@xs4all.nl \ --cc=jonas@kwiboo.se \ --cc=kyungmin.park@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=m.szyprowski@samsung.com \ --cc=mchehab@kernel.org \ --cc=mripard@kernel.org \ --cc=paul.kocialkowski@bootlin.com \ --cc=pawel@osciak.com \ --cc=tfiga@chromium.org \ --cc=wens@csie.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.