linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: Tomasz Figa <tfiga@chromium.org>,
	Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Chen-Yu Tsai <wens@csie.org>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Alexandre Courbot <acourbot@chromium.org>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Pawel Osciak <posciak@chromium.org>,
	Paul Kocialkowski <paul.kocialkowski@bootlin.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"list@263.net:IOMMU DRIVERS <iommu@lists.linux-foundation.org>,
	Joerg " "Roedel <joro@8bytes.org>,"
	<linux-arm-kernel@lists.infradead.org>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Jens Kuske <jenskuske@gmail.com>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Ezequiel Garcia <ezequiel@collabora.com>,
	linux-sunxi <linux-sunxi@googlegroups.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Guenter Roeck <groeck@chromium.org>
Subject: Re: [PATCH RESEND v7 1/2] media: uapi: Add H264 low-level decoder API compound controls.
Date: Tue, 16 Apr 2019 07:54:03 -0400	[thread overview]
Message-ID: <d38e20350cb0ec73b7f295bf08cc22807804ad9c.camel@collabora.com> (raw)
In-Reply-To: <CAAFQd5Cz-N-7YdwVbtF9yX3LgDtG0yqD0sw6w9r47_m086=b-A@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4188 bytes --]

Le mardi 16 avril 2019 à 16:16 +0900, Tomasz Figa a écrit :
> On Fri, Apr 12, 2019 at 12:57 AM Maxime Ripard
> <maxime.ripard@bootlin.com> wrote:
> > Hi,
> > 
> > On Fri, Apr 05, 2019 at 12:27:48PM -0400, Nicolas Dufresne wrote:
> > > Le vendredi 05 avril 2019 à 17:15 +0200, Maxime Ripard a écrit :
> > > > Hi Nicolas,
> > > > 
> > > > On Thu, Apr 04, 2019 at 11:41:13AM -0400, Nicolas Dufresne wrote:
> > > > > > > > +    * - __u16
> > > > > > > > +      - ``pic_width_in_mbs_minus1``
> > > > > > > > +      -
> > > > > > > > +    * - __u16
> > > > > > > > +      - ``pic_height_in_map_units_minus1``
> > > > > > > > +      -
> > > > > > > 
> > > > > > > We recently had some reflection with Alex that this is redundant with
> > > > > > > the width and height in the OUTPUT format. It may also apply to some
> > > > > > > other fields in these structs. I feel like they should be removed and
> > > > > > > passed via corresponding generic V4L2 properties - format, selection,
> > > > > > > etc.
> > > > > > > 
> > > > > > > The same problem is also present in the MPEG2 controls. In fact, there
> > > > > > > was a patch already which used some fields from the controls to
> > > > > > > calculate the destination buffer strides, rather than bytesperline in
> > > > > > > the format.
> > > > > > > 
> > > > > > > Since we're in staging, it could be done with a follow-up patch, though.
> > > > > > 
> > > > > > Just my two cents. I played with some codecs a while back. IIRC some
> > > > > > specify a "codec" size in addition to the actual picture size, like
> > > > > > when the encoder does padding to fit the requirements of the codec
> > > > > > (spec). Is this needed anywhere?
> > > > > 
> > > > > With state-less encoders, the headers, which contains the crop
> > > > > information is created by userspace and for state less decoder, the
> > > > > headers that contains this information is parsed by userspace. So I
> > > > > believe that in theory, the accelerator does not strictly need to be
> > > > > aware of the cropped dimensions.
> > > > > 
> > > > > Another thing, is that there is not guarantied matches between e.g.
> > > > > depth of the chrome/luma and the final image buffers. Some hardware may
> > > > > have bandwidth limitation or internal converter and could possibly
> > > > > decode 10bit data into 8bit buffers.
> > > > > 
> > > > > A third reason why I would not try and encode this header information
> > > > > is that there can be multiple PPS/SPS at the same time, and I think
> > > > > it's confusing if the relevant information to differentiate them is
> > > > > removed.
> > > > 
> > > > Sorry if that sounds a bit dumb, but it's not really clear to me if
> > > > you're arguing for the removal of the data as Tomasz suggests, or if
> > > > you want to keep them.
> > > > 
> > > > The first paragrah seems to advocate for the former, but the two
> > > > others for the latter.
> > > 
> > > I think the data should stay. As I said, there can be multiple SPS/PPS,
> > > while there is only one format. That being said, how does SPS/PPS
> > > activation works ? How do you tell the driver about all the SPS/PPS and
> > > which one is being activated ?
> > 
> > The current way of dealing with this is that the _SLICE_PARAMS control
> > actually takes an array of SPS's. And same thing for PPS.
> > 
> > There's no difference between activated and deactivated ones
> > though. What is the use case for this?
> 
> Uhm, there is only one format, but so there is only one active
> SPS/PPS, isn't it?

Yes, and the active one can only change on frame boundary.

> An alternative would be to just make the OUTPUT format a function of
> the currently set controls, so that it would always match the active
> PPS/SPS, without the ability for the application to change it.
> 
> I just want to avoid the case when the OUTPUT format can be set
> randomly to something different than in the stream and also drivers
> reading randomly the format-related information sometimes from the
> controls and sometimes from the format state.

Understood.

> 
> Best regards,
> Tomasz

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

  reply	other threads:[~2019-04-16 11:54 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-04 12:26 [PATCH RESEND v7 0/2] media: cedrus: Add H264 decoding support Maxime Ripard
2019-04-04 12:26 ` [PATCH RESEND v7 1/2] media: uapi: Add H264 low-level decoder API compound controls Maxime Ripard
2019-04-04 12:31   ` Hans Verkuil (hansverk)
2019-04-04 12:36   ` Hans Verkuil
2019-04-04 12:54   ` Tomasz Figa
2019-04-04 14:42     ` Chen-Yu Tsai
2019-04-04 15:41       ` Nicolas Dufresne
2019-04-05 15:15         ` Maxime Ripard
2019-04-05 16:27           ` Nicolas Dufresne
2019-04-11 15:57             ` Maxime Ripard
2019-04-16  7:16               ` Tomasz Figa
2019-04-16 11:54                 ` Nicolas Dufresne [this message]
2019-04-04 12:26 ` [PATCH RESEND v7 2/2] media: cedrus: Add H264 decoding support Maxime Ripard

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=d38e20350cb0ec73b7f295bf08cc22807804ad9c.camel@collabora.com \
    --to=nicolas.dufresne@collabora.com \
    --cc=acourbot@chromium.org \
    --cc=ezequiel@collabora.com \
    --cc=groeck@chromium.org \
    --cc=hans.verkuil@cisco.com \
    --cc=jenskuske@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=posciak@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tfiga@chromium.org \
    --cc=thomas.petazzoni@bootlin.com \
    --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: 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).