From: Jean Christophe TROTIN <jean-christophe.trotin@st.com>
To: Hans Verkuil <hverkuil@xs4all.nl>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Cc: "kernel@stlinux.com" <kernel@stlinux.com>,
Benjamin Gaignard <benjamin.gaignard@linaro.org>,
Yannick FERTRE <yannick.fertre@st.com>,
Hugues FRUCHET <hugues.fruchet@st.com>
Subject: Re: [PATCH v2 2/3] [media] hva: multi-format video encoder V4L2 driver
Date: Tue, 19 Jul 2016 17:55:57 +0200 [thread overview]
Message-ID: <578E4D8D.7070708@st.com> (raw)
In-Reply-To: <28f37284-0c57-7d22-a32d-5627079c86d5@xs4all.nl>
Hi Hans,
Thank you for your comments.
I've started to take them into account.
I've got a question about V4L2_FIELD_ANY in buf_prepare (please see below).
[snip]
>> +static int hva_buf_prepare(struct vb2_buffer *vb)
>> +{
>> + struct hva_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
>> + struct device *dev = ctx_to_dev(ctx);
>> + struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
>> +
>> + if (vb->vb2_queue->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
>> + struct hva_frame *frame = to_hva_frame(vbuf);
>> +
>> + if (vbuf->field == V4L2_FIELD_ANY)
>> + vbuf->field = V4L2_FIELD_NONE;
>
> Anything other than FIELD_NONE should result in an error since no interlaced
is supported.
> FIELD_ANY is an incorrect value as well.
>
In videodev2.h, V4L2_FIELD_ANY is commented as "driver can choose from none,
top, bottom, interlaced depending on whatever it thinks is approximate ...": I
understand this comment as if vbuf->field is equal to V4L2_FIELD_ANY, then the
driver can choose to force it to V4L2_FIELD_NONE. Furthermore, it's coded in the
same way in vim2m.c (vim2m_buf_prepare).
Finally, if I remove these 2 lines, I've got the following error with the
v4l2-compliance:
Streaming ioctls:
VIDIOC_G_INPUT returned -1 (Inappropriate ioctl for device)
VIDIOC_ENUMINPUT returned -1 (Inappropriate ioctl for device)
test read/write: OK (Not Supported)
VIDIOC_QUERYCAP returned 0 (Success)
[snip]
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QBUF returned -1 (Invalid argument)
fail:
/local/home/frq08988/views/opensdk-2.1.4.1/sources/v4l-utils/utils/v4l2-compliance/v4l2-test-buffers.cpp(773):
buf.qbuf(node)
fail:
/local/home/frq08988/views/opensdk-2.1.4.1/sources/v4l-utils/utils/v4l2-compliance/v4l2-test-buffers.cpp(971):
setupM2M(node, m2m_q)
test MMAP: FAIL
Don't you think that I could keep these two lines?
>> + if (vbuf->field != V4L2_FIELD_NONE) {
>> + dev_dbg(dev,
>> + "%s frame[%d] prepare: %d field not supported\n",
>> + ctx->name, vb->index, vbuf->field);
>> + return -EINVAL;
>> + }
>> +
>> + if (!frame->prepared) {
>> + /* get memory addresses */
>> + frame->vaddr = vb2_plane_vaddr(&vbuf->vb2_buf, 0);
>> + frame->paddr = vb2_dma_contig_plane_dma_addr(
>> + &vbuf->vb2_buf, 0);
>> + frame->info = ctx->frameinfo;
>> + frame->prepared = true;
>> +
>> + dev_dbg(dev,
>> + "%s frame[%d] prepared; virt=%p, phy=%pad\n",
>> + ctx->name, vb->index,
>> + frame->vaddr, &frame->paddr);
>> + }
>> + } else {
>> + struct hva_stream *stream = to_hva_stream(vbuf);
>> +
>> + if (!stream->prepared) {
>> + /* get memory addresses */
>> + stream->vaddr = vb2_plane_vaddr(&vbuf->vb2_buf, 0);
>> + stream->paddr = vb2_dma_contig_plane_dma_addr(
>> + &vbuf->vb2_buf, 0);
>> + stream->size = vb2_plane_size(&vbuf->vb2_buf, 0);
>> + stream->prepared = true;
>> +
>> + dev_dbg(dev,
>> + "%s stream[%d] prepared; virt=%p, phy=%pad\n",
>> + ctx->name, vb->index,
>> + stream->vaddr, &stream->paddr);
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
[snip]
Regards,
Jean-Christophe.
next prev parent reply other threads:[~2016-07-19 15:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-11 15:14 [PATCH v2 0/3] support of v4l2 encoder for STMicroelectronics SOC Jean-Christophe Trotin
2016-07-11 15:14 ` [PATCH v2 1/3] Documentation: DT: add bindings for STI HVA Jean-Christophe Trotin
2016-07-11 15:14 ` [PATCH v2 2/3] [media] hva: multi-format video encoder V4L2 driver Jean-Christophe Trotin
2016-07-11 18:00 ` Nicolas Dufresne
2016-07-13 14:11 ` Jean Christophe TROTIN
2016-07-18 11:45 ` Hans Verkuil
2016-07-19 15:55 ` Jean Christophe TROTIN [this message]
2016-07-19 16:45 ` Hans Verkuil
2016-07-21 7:30 ` Jean Christophe TROTIN
2016-07-21 9:49 ` Hans Verkuil
2016-07-25 14:09 ` Jean Christophe TROTIN
2016-07-11 15:14 ` [PATCH v2 3/3] [media] hva: add H.264 video encoding support Jean-Christophe Trotin
2016-07-18 11:55 ` Hans Verkuil
2016-07-21 7:30 ` Jean Christophe TROTIN
2016-07-11 17:48 ` [PATCH v2 0/3] support of v4l2 encoder for STMicroelectronics SOC Nicolas Dufresne
2016-07-11 18:57 ` Javier Martinez Canillas
2016-07-13 13:49 ` Jean Christophe TROTIN
2016-07-13 14:00 ` Javier Martinez Canillas
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=578E4D8D.7070708@st.com \
--to=jean-christophe.trotin@st.com \
--cc=benjamin.gaignard@linaro.org \
--cc=hugues.fruchet@st.com \
--cc=hverkuil@xs4all.nl \
--cc=kernel@stlinux.com \
--cc=linux-media@vger.kernel.org \
--cc=yannick.fertre@st.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: link
Be 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.