From: Peter Seiderer <ps.report@gmx.net> To: linux-media@vger.kernel.org Cc: devel@driverdev.osuosl.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-kernel@vger.kernel.org, Peter Seiderer <ps.report@gmx.net>, Philipp Zabel <p.zabel@pengutronix.de>, Steve Longerbeam <slongerbeam@gmail.com>, Mauro Carvalho Chehab <mchehab@kernel.org> Subject: [PATCH v4 2/2] media: staging/imx: fill vb2_v4l2_buffer sequence entry Date: Thu, 15 Mar 2018 20:13:23 +0100 [thread overview] Message-ID: <20180315191323.6028-2-ps.report@gmx.net> (raw) In-Reply-To: <20180315191323.6028-1-ps.report@gmx.net> - enables gstreamer v4l2src lost frame detection, e.g: 0:00:08.685185668 348 0x54f520 WARN v4l2src gstv4l2src.c:970:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 141 - ts: 0:00:08.330177332 - fixes v4l2-compliance test failure: Streaming ioctls: test read/write: OK (Not Supported) Video Capture: Buffer: 0 Sequence: 0 Field: None Timestamp: 92.991450s Buffer: 1 Sequence: 0 Field: None Timestamp: 93.008135s fail: v4l2-test-buffers.cpp(294): (int)g_sequence() < seq.last_seq + 1 fail: v4l2-test-buffers.cpp(707): buf.check(q, last_seq) Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes in v2: - fill vb2_v4l2_buffer sequence entry in imx-ic-prpencvf too (suggested by Steve Longerbeam) Changes in v3: - add changelog (suggested by Greg Kroah-Hartman, Fabio Estevam and Dan Carpenter) and patch history - use u32 (instead of __u32) (suggested by Dan Carpenter) - let sequence counter start with zero, keeping v4l2-compliance testing happy (needs additional setting of field to a valid value, patch will follow soon) Changes in v4: - add v4l2-compliance test failure to changelog - reorder frame_sequence increment and assignement to avoid -1 as start value (suggeted by Steve Longerbeam) --- drivers/staging/media/imx/imx-ic-prpencvf.c | 4 ++++ drivers/staging/media/imx/imx-media-csi.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c index ffeb017c73b2..28f41caba05d 100644 --- a/drivers/staging/media/imx/imx-ic-prpencvf.c +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c @@ -103,6 +103,7 @@ struct prp_priv { int nfb4eof_irq; int stream_count; + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -211,12 +212,14 @@ static void prp_vb2_buf_done(struct prp_priv *priv, struct ipuv3_channel *ch) done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { done->vbuf.field = vdev->fmt.fmt.pix.field; + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE); } + priv->frame_sequence++; priv->nfb4eof = false; /* get next queued buffer */ @@ -638,6 +641,7 @@ static int prp_start(struct prp_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = 0; priv->last_eof = false; priv->nfb4eof = false; diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 5f69117b5811..3f2ce05848f3 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -111,6 +111,7 @@ struct csi_priv { struct v4l2_ctrl_handler ctrl_hdlr; int stream_count; /* streaming counter */ + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -237,12 +238,14 @@ static void csi_vb2_buf_done(struct csi_priv *priv) done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { done->vbuf.field = vdev->fmt.fmt.pix.field; + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE); } + priv->frame_sequence++; priv->nfb4eof = false; /* get next queued buffer */ @@ -544,6 +547,7 @@ static int csi_idmac_start(struct csi_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = 0; priv->last_eof = false; priv->nfb4eof = false; -- 2.16.2 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
WARNING: multiple messages have this Message-ID (diff)
From: Peter Seiderer <ps.report@gmx.net> To: linux-media@vger.kernel.org Cc: Steve Longerbeam <slongerbeam@gmail.com>, Philipp Zabel <p.zabel@pengutronix.de>, Mauro Carvalho Chehab <mchehab@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Peter Seiderer <ps.report@gmx.net> Subject: [PATCH v4 2/2] media: staging/imx: fill vb2_v4l2_buffer sequence entry Date: Thu, 15 Mar 2018 20:13:23 +0100 [thread overview] Message-ID: <20180315191323.6028-2-ps.report@gmx.net> (raw) In-Reply-To: <20180315191323.6028-1-ps.report@gmx.net> - enables gstreamer v4l2src lost frame detection, e.g: 0:00:08.685185668 348 0x54f520 WARN v4l2src gstv4l2src.c:970:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 141 - ts: 0:00:08.330177332 - fixes v4l2-compliance test failure: Streaming ioctls: test read/write: OK (Not Supported) Video Capture: Buffer: 0 Sequence: 0 Field: None Timestamp: 92.991450s Buffer: 1 Sequence: 0 Field: None Timestamp: 93.008135s fail: v4l2-test-buffers.cpp(294): (int)g_sequence() < seq.last_seq + 1 fail: v4l2-test-buffers.cpp(707): buf.check(q, last_seq) Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes in v2: - fill vb2_v4l2_buffer sequence entry in imx-ic-prpencvf too (suggested by Steve Longerbeam) Changes in v3: - add changelog (suggested by Greg Kroah-Hartman, Fabio Estevam and Dan Carpenter) and patch history - use u32 (instead of __u32) (suggested by Dan Carpenter) - let sequence counter start with zero, keeping v4l2-compliance testing happy (needs additional setting of field to a valid value, patch will follow soon) Changes in v4: - add v4l2-compliance test failure to changelog - reorder frame_sequence increment and assignement to avoid -1 as start value (suggeted by Steve Longerbeam) --- drivers/staging/media/imx/imx-ic-prpencvf.c | 4 ++++ drivers/staging/media/imx/imx-media-csi.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c index ffeb017c73b2..28f41caba05d 100644 --- a/drivers/staging/media/imx/imx-ic-prpencvf.c +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c @@ -103,6 +103,7 @@ struct prp_priv { int nfb4eof_irq; int stream_count; + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -211,12 +212,14 @@ static void prp_vb2_buf_done(struct prp_priv *priv, struct ipuv3_channel *ch) done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { done->vbuf.field = vdev->fmt.fmt.pix.field; + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE); } + priv->frame_sequence++; priv->nfb4eof = false; /* get next queued buffer */ @@ -638,6 +641,7 @@ static int prp_start(struct prp_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = 0; priv->last_eof = false; priv->nfb4eof = false; diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 5f69117b5811..3f2ce05848f3 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -111,6 +111,7 @@ struct csi_priv { struct v4l2_ctrl_handler ctrl_hdlr; int stream_count; /* streaming counter */ + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -237,12 +238,14 @@ static void csi_vb2_buf_done(struct csi_priv *priv) done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { done->vbuf.field = vdev->fmt.fmt.pix.field; + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE); } + priv->frame_sequence++; priv->nfb4eof = false; /* get next queued buffer */ @@ -544,6 +547,7 @@ static int csi_idmac_start(struct csi_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = 0; priv->last_eof = false; priv->nfb4eof = false; -- 2.16.2
next prev parent reply other threads:[~2018-03-15 19:13 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-15 19:13 [PATCH v4 1/2] media: staging/imx: fill vb2_v4l2_buffer field entry Peter Seiderer 2018-03-15 19:13 ` Peter Seiderer 2018-03-15 19:13 ` Peter Seiderer [this message] 2018-03-15 19:13 ` [PATCH v4 2/2] media: staging/imx: fill vb2_v4l2_buffer sequence entry Peter Seiderer 2018-03-16 8:12 ` Dan Carpenter 2018-03-16 17:05 ` Steve Longerbeam 2018-03-16 17:05 ` Steve Longerbeam 2018-06-11 20:48 ` Peter Seiderer 2018-06-12 8:41 ` Philipp Zabel 2018-06-12 8:59 ` Hans Verkuil 2018-03-16 17:02 ` [PATCH v4 1/2] media: staging/imx: fill vb2_v4l2_buffer field entry Steve Longerbeam 2018-03-16 17:02 ` Steve Longerbeam 2018-06-11 20:47 ` Peter Seiderer
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=20180315191323.6028-2-ps.report@gmx.net \ --to=ps.report@gmx.net \ --cc=devel@driverdev.osuosl.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=mchehab@kernel.org \ --cc=p.zabel@pengutronix.de \ --cc=slongerbeam@gmail.com \ /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.