linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Kocialkowski <paulk@sys-base.io>
To: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Dmitry Osipenko <digetx@gmail.com>
Subject: Re: [PATCH v2 4/4] Documentation: media: Document V4L2_H264_DECODE_PARAM_FLAG_PFRAME/BFRAME
Date: Fri, 29 Aug 2025 16:15:19 +0200	[thread overview]
Message-ID: <aLG19wzWBBECU6Cs@shepard> (raw)
In-Reply-To: <5065e67544ae9255b2136a6cd73cbb9ffd08e3fb.camel@collabora.com>

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

Hi,

+ Adding Dmitry in the loop (whom I forgot, sorry).

Dmitry, we're discussing the precise meaning of the Tegra VDE H.264 decode
flags that indicate PFRAME/BFRAME.

On Thu 28 Aug 25, 16:42, Nicolas Dufresne wrote:
> Le dimanche 24 août 2025 à 20:07 +0200, Paul Kocialkowski a écrit :
> > These flags are meant for a very specific use-case, add a mention of it.
> > 
> > Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
> > ---
> >  .../userspace-api/media/v4l/ext-ctrls-codec-stateless.rst | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> > index 0da635691fdc..de1e3873385c 100644
> > --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> > +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> > @@ -618,10 +618,14 @@ Stateless Codec Control ID
> >        -
> >      * - ``V4L2_H264_DECODE_PARAM_FLAG_PFRAME``
> >        - 0x00000008
> > -      -
> > +      - All submitted slices for the frame are P slices. This is a compability
> > +        flag required for decoders that only support decoding such frames, but
> > +        should not be required for slice-based decoders.
> 
> Seems to match the comment in Tegra driver, and related to a hardware
> limitation. Shall we also recommend not to use this unless similar limitation
> exists ?

I think the flag should only be allowed for frame-based decode mode and indeed
it would be good to say that drivers should only check this flag if they have
such limitations.

Userspace on the other hand cannot really know if it will be used or not so it
should set the flags when applicable.

> Note that mix of P and I, or, B and I, should still work on Tegra, its mixing P
> and B that will fail since one of the reference list will be missing. At least,
> this is my understanding.

Well the comment in the driver mandates that "frame consists of the same type
slices" and "decoding of a non-uniform frames isn't supported by hardware".

But looking at the code these statements seem exaggerated and I concur to your
understanding that at least mixing I and P should work, since it only sets up
the L0 reference list. There's an explicit hardware flag for "B frames" that
could have a more restrictive meaning. Maybe it also allows I frames and/or
P frames, maybe not.

So perhaps we could relax the definitions to an indication that the L0/L1
reference lists will be used by the frame slices, which implicitly allows mixing
different types of slices.

After all it is likely that decoders in that situation just really care about
having the required ref lists prepared and don't particularly need each
slice_type to be the same. After all they're still parsing the slice headers so
they do have all the slice-specific info.

Paul

> Nicolas
> 
> >      * - ``V4L2_H264_DECODE_PARAM_FLAG_BFRAME``
> >        - 0x00000010
> > -      -
> > +      - All submitted slices for the frame are B slices. This is a compability
> > +        flag required for decoders that only support decoding such frames, but
> > +        should not be required for slice-based decoders.
> >  
> >  .. raw:: latex
> >  



-- 
Paul Kocialkowski,

Independent contractor - sys-base - https://www.sys-base.io/
Free software developer - https://www.paulk.fr/

Expert in multimedia, graphics and embedded hardware support with Linux.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2025-08-29 14:15 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-24 18:07 [PATCH v2 0/4] Minor V4L2 Headers and Codec Doc Cleanups Paul Kocialkowski
2025-08-24 18:07 ` [PATCH v2 1/4] media: uapi: Move colorimetry controls at the end of the file Paul Kocialkowski
2025-08-28 18:45   ` Nicolas Dufresne
2025-08-24 18:07 ` [PATCH v2 2/4] media: uapi: Cleanup tab after define in headers Paul Kocialkowski
2025-08-28 18:46   ` Nicolas Dufresne
2025-08-24 18:07 ` [PATCH v2 3/4] media: uapi: v4l2-controls: Cleanup codec definitions Paul Kocialkowski
2025-08-28 18:46   ` Nicolas Dufresne
2025-08-24 18:07 ` [PATCH v2 4/4] Documentation: media: Document V4L2_H264_DECODE_PARAM_FLAG_PFRAME/BFRAME Paul Kocialkowski
2025-08-28 20:42   ` Nicolas Dufresne
2025-08-29 14:15     ` Paul Kocialkowski [this message]
2025-08-30 11:29       ` Dmitry Osipenko
2025-08-29 20:40 ` [PATCH v2 0/4] Minor V4L2 Headers and Codec Doc Cleanups Nicolas Dufresne

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=aLG19wzWBBECU6Cs@shepard \
    --to=paulk@sys-base.io \
    --cc=digetx@gmail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=nicolas.dufresne@collabora.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 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).