Re: [PATCH v3 1/3] media: uapi: h264: Clarify our expectations regarding NAL header format

Boris Brezillon
2019-07-05T17:16:24Z

On Fri, 05 Jul 2019 13:40:03 -0300
Ezequiel Garcia <ezequiel@collabora.com> wrote:

> Hi Boris, Paul,
>
> On Wed, 2019-07-03 at 14:28 +0200, Boris Brezillon wrote:
> > Looks like some stateless decoders expect slices to be prefixed with
> > ANNEX B start codes (they most likely do some kind of bitstream parsing
> > and/or need that to delimit slices when doing per frame decoding).
> > Since skipping those start codes for dummy stateless decoders (those
> > expecting all params to be passed through controls) should be pretty
> > easy, let's mandate that all slices be prepended with ANNEX B start
> > codes.
> >
> > If we ever need to support AVC headers, we can add a new menu control
> > to select the type of NAL header to use.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
> > Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
> > ---
> > Changes in v3:
> > * Add Paul's R-b
> >
> > Changes in v2:
> > * None
> > ---
> > Documentation/media/uapi/v4l/ext-ctrls-codec.rst | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> > index 7a1947f5be96..3ae1367806cf 100644
> > --- a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> > +++ b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> > @@ -1726,6 +1726,7 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type -
> > :ref:`h264`, section 7.4.3 "Slice Header Semantics". For further
> > documentation, refer to the above specification, unless there is
> > an explicit comment stating otherwise.
> > + All slices should be prepended with an ANNEX B start code.
> >
>
> Currently, the H264 slice V4L2_PIX_FMT_H264_SLICE_RAW,
> is specified to _not_ contain the ANNEX B start code.

Yep, we should provably rename the format.

>
> As you know, this is used in the cedrus driver, which is not
> expecting the start code.
>
> What's the plan regarding that?

I had a few patches modifying the cedrus driver accordingly, but I
dropped them in v2. I guess we can fix the driver once we've settled on
the uAPI changes.