From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755636AbdJIXl0 (ORCPT ); Mon, 9 Oct 2017 19:41:26 -0400 Received: from mail-qt0-f169.google.com ([209.85.216.169]:45174 "EHLO mail-qt0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755005AbdJIXlY (ORCPT ); Mon, 9 Oct 2017 19:41:24 -0400 X-Google-Smtp-Source: AOwi7QDXTYYVOuOhhwxDSfVqkihP0BR1CkTgKxKOawVpERGV0GlP7u+G+pktfJxb7gyDTirMxM2kuA== Message-ID: <1507592477.24615.4.camel@ndufresne.ca> Subject: Re: [PATCH 2/2] media: venus: venc: fix bytesused v4l2_plane field From: Nicolas Dufresne To: Stanimir Varbanov , Hans Verkuil Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Date: Mon, 09 Oct 2017 19:41:17 -0400 In-Reply-To: <20171009122458.3053-2-stanimir.varbanov@linaro.org> References: <20171009122458.3053-1-stanimir.varbanov@linaro.org> <20171009122458.3053-2-stanimir.varbanov@linaro.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.24.5 (3.24.5-1.fc26) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I confirm this works properly now. This was tested with GStreamer with the following command: gst-launch-1.0 videotestsrc ! v4l2vp8enc ! v4l2vp8dec ! kmssink And the following patch, which is work in progress to implement data_offset. https://gitlab.collabora.com/nicolas/gst-plugins-good/commit/aaedee9a37e396657568a70fc0110375e14fb4fa Le lundi 09 octobre 2017 à 15:24 +0300, Stanimir Varbanov a écrit : > This fixes wrongly filled bytesused field of v4l2_plane structure > by include data_offset in the plane, Also fill data_offset and > bytesused for capture type of buffers only. > > Signed-off-by: Stanimir Varbanov Tested-by: Nicolas Dufresne > --- > drivers/media/platform/qcom/venus/venc.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c > index 6f123a387cf9..9445ad492966 100644 > --- a/drivers/media/platform/qcom/venus/venc.c > +++ b/drivers/media/platform/qcom/venus/venc.c > @@ -963,15 +963,16 @@ static void venc_buf_done(struct venus_inst *inst, unsigned int buf_type, > if (!vbuf) > return; > > - vb = &vbuf->vb2_buf; > - vb->planes[0].bytesused = bytesused; > - vb->planes[0].data_offset = data_offset; > - > vbuf->flags = flags; > > if (type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { > + vb = &vbuf->vb2_buf; > + vb2_set_plane_payload(vb, 0, bytesused + data_offset); > + vb->planes[0].data_offset = data_offset; > vb->timestamp = timestamp_us * NSEC_PER_USEC; > vbuf->sequence = inst->sequence_cap++; > + > + WARN_ON(vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0)); > } else { > vbuf->sequence = inst->sequence_out++; > }