linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomasz Figa <tfiga@chromium.org>
To: Nicolas Dufresne <nicolas@ndufresne.ca>
Cc: Stanimir Varbanov <stanimir.varbanov@linaro.org>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	Vikash Garodia <vgarodia@codeaurora.org>,
	Alexandre Courbot <acourbot@chromium.org>,
	Malathi Gottam <mgottam@codeaurora.org>
Subject: Re: [PATCH 10/10] venus: dec: make decoder compliant with stateful codec API
Date: Wed, 30 Jan 2019 15:17:46 +0900	[thread overview]
Message-ID: <CAAFQd5DFfQRd1VoN7itVXnWGKW_WBKU-sm6vo5CdgjkzjEEkFg@mail.gmail.com> (raw)
In-Reply-To: <e8a90694c306fde24928a569b7bcb231b86ec73b.camel@ndufresne.ca>

On Wed, Jan 30, 2019 at 1:21 PM Nicolas Dufresne <nicolas@ndufresne.ca> wrote:
>
> Le mercredi 30 janvier 2019 à 12:38 +0900, Tomasz Figa a écrit :
> > > Yes, unfortunately, GStreamer still rely on G_FMT waiting a minimal
> > > amount of time of the headers to be processed. This was how things was
> > > created back in 2011, I could not program GStreamer for the future. If
> > > we stop doing this, we do break GStreamer as a valid userspace
> > > application.
> >
> > Does it? Didn't you say earlier that you end up setting the OUTPUT
> > format with the stream resolution as parsed on your own? If so, that
> > would actually expose a matching framebuffer format on the CAPTURE
> > queue, so there is no need to wait for the real parsing to happen.
>
> I don't remember saying that, maybe I meant to say there might be a
> workaround ?
>
> For the fact, here we queue the headers (or first frame):
>
> https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/sys/v4l2/gstv4l2videodec.c#L624
>
> Then few line below this helper does G_FMT internally:
>
> https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/sys/v4l2/gstv4l2videodec.c#L634
> https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/sys/v4l2/gstv4l2object.c#L3907
>
> And just plainly fails if G_FMT returns an error of any type. This was
> how Kamil designed it initially for MFC driver. There was no other
> alternative back then (no EAGAIN yet either).

Hmm, was that ffmpeg then?

So would it just set the OUTPUT width and height to 0? Does it mean
that gstreamer doesn't work with coda and mtk-vcodec, which don't have
such wait in their g_fmt implementations?

>
> Nicolas
>
> p.s. it's still in my todo's to implement source change event as I
> believe it is a better mechanism (specially if you header happened to
> be corrupted, then the driver can consume the stream until it finds a
> sync). So these sleep or normally wait exist all over to support this
> legacy thing. It is unfortunate, the question is do you want to break
> userspace now ? Without having first placed a patch that would maybe
> warn or something for a while ?
>

I don't want and my understanding was that we could workaround it by
the propagation of format from OUTPUT to CAPTURE. Also see above.

Best regards,
Tomasz

  reply	other threads:[~2019-01-30  6:18 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-17 16:19 [PATCH 00/10] Venus stateful Codec API Stanimir Varbanov
2019-01-17 16:19 ` [PATCH 01/10] venus: hfi_cmds: add more not-implemented properties Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 02/10] venus: helpers: fix dynamic buffer mode for v4 Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 03/10] venus: helpers: export few helper functions Stanimir Varbanov
2019-01-24  8:43   ` Alexandre Courbot
2019-01-24  8:48     ` Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 04/10] venus: hfi: add type argument to hfi flush function Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 05/10] venus: hfi: export few HFI functions Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 06/10] venus: hfi: return an error if session_init is already called Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 07/10] venus: helpers: add three more helper functions Stanimir Varbanov
2019-01-24  8:43   ` Alexandre Courbot
2019-01-24  8:54     ` Stanimir Varbanov
2019-01-25  5:47       ` Alexandre Courbot
2019-01-17 16:20 ` [PATCH 08/10] venus: vdec_ctrls: get real minimum buffers for capture Stanimir Varbanov
2019-01-24  8:43   ` Alexandre Courbot
2019-01-24  9:59     ` Stanimir Varbanov
2019-01-17 16:20 ` [PATCH 09/10] venus: vdec: allow bigger sizeimage set by clients Stanimir Varbanov
2019-01-24  8:43   ` Alexandre Courbot
2019-01-24 10:05     ` Stanimir Varbanov
2019-01-25  5:36       ` Alexandre Courbot
2019-01-17 16:20 ` [PATCH 10/10] venus: dec: make decoder compliant with stateful codec API Stanimir Varbanov
2019-01-21 11:20   ` mgottam
2019-01-21 11:29     ` mgottam
2019-01-24 10:24     ` Stanimir Varbanov
2019-01-24  8:44   ` Alexandre Courbot
2019-01-24 12:34     ` Stanimir Varbanov
2019-01-25  5:44       ` Alexandre Courbot
2019-01-25  7:59   ` Tomasz Figa
2019-01-25 10:25     ` Stanimir Varbanov
2019-01-28  7:38       ` Tomasz Figa
2019-01-28 16:28         ` Stanimir Varbanov
2019-01-29  8:24           ` Tomasz Figa
2019-01-30  3:18         ` Nicolas Dufresne
2019-01-30  3:38           ` Tomasz Figa
2019-01-30  4:21             ` Nicolas Dufresne
2019-01-30  6:17               ` Tomasz Figa [this message]
2019-01-30 15:32                 ` Nicolas Dufresne
2019-01-31 12:42                   ` Philipp Zabel
2019-01-31 13:34                     ` Tomasz Figa
2019-01-31 15:18                       ` Nicolas Dufresne
2019-02-05  6:26                         ` Tomasz Figa
2019-02-05  9:00                           ` Hans Verkuil
2019-02-05  9:31                             ` Tomasz Figa
2019-02-05 10:35                               ` Hans Verkuil
2019-02-07  7:33                                 ` Tomasz Figa
2019-02-14  2:43                                   ` Tomasz Figa
2019-02-14 16:19                                     ` Nicolas Dufresne
2019-04-09  9:59                                   ` Tomasz Figa
2019-04-09 16:30                                     ` Nicolas Dufresne
2019-04-10  2:32                                       ` Tomasz Figa
2019-02-15 13:44   ` Hans Verkuil
2019-02-15 16:27     ` Nicolas Dufresne
2019-02-15 16:40       ` Hans Verkuil
2019-04-24 12:15     ` Stanimir Varbanov
2019-04-24 12:39       ` Tomasz Figa
2019-05-20 14:47         ` Stanimir Varbanov
2019-05-21  9:09           ` Tomasz Figa
2019-05-21 12:27             ` Hans Verkuil
2019-05-27  3:51               ` Tomasz Figa
2019-05-27  7:39                 ` Hans Verkuil
2019-05-27  8:18                   ` Tomasz Figa
2019-05-31  8:01                     ` Stanimir Varbanov
2019-05-31 13:53                       ` Nicolas Dufresne
2019-06-03  7:25                       ` Hans Verkuil
2019-06-03  7:30                         ` Tomasz Figa
2019-01-24  8:43 ` [PATCH 00/10] Venus stateful Codec API Alexandre Courbot
2019-01-24 10:12   ` Stanimir Varbanov
2019-01-25  5:34     ` Alexandre Courbot
2019-01-25 10:35       ` Stanimir Varbanov
2019-01-28  4:16         ` Alexandre Courbot
2019-01-28  4:30           ` Tomasz Figa

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=CAAFQd5DFfQRd1VoN7itVXnWGKW_WBKU-sm6vo5CdgjkzjEEkFg@mail.gmail.com \
    --to=tfiga@chromium.org \
    --cc=acourbot@chromium.org \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mgottam@codeaurora.org \
    --cc=nicolas@ndufresne.ca \
    --cc=stanimir.varbanov@linaro.org \
    --cc=vgarodia@codeaurora.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).