From: Paul Kocialkowski <paulk@sys-base.io>
To: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Cc: Daniel Almeida <dwlsalmeida@gmail.com>,
Adam Ford <aford173@gmail.com>,
Fabio Estevam <festevam@gmail.com>,
andrzejtp2010@gmail.com, Frank Li <frank.li@nxp.com>,
ming.qian@oss.nxp.com, linux-media <linux-media@vger.kernel.org>,
linux-imx@nxmp.com,
Benjamin Gaignard <benjamin.gaignard@collabora.com>,
Gustavo Padovan <gus@collabora.com>
Subject: Re: Hantro H1 Encoding Upstreaming
Date: Sat, 18 Jan 2025 17:49:37 +0100 [thread overview]
Message-ID: <Z4vbofrdobqlFC_I@collins> (raw)
In-Reply-To: <9def2b5d38b338c31be09503805b85206223b36c.camel@collabora.com>
[-- Attachment #1: Type: text/plain, Size: 2883 bytes --]
Hi,
Le Wed 15 Jan 25, 14:43, Nicolas Dufresne a écrit :
> Le mercredi 15 janvier 2025 à 16:03 +0100, Paul Kocialkowski a écrit :
> > Last words about private driver buffers (such as motion vectors and
> > reconstruction buffers), I think they should remain private and unseen from
> > userspace. We could add something extra to the uAPI later if there is really a
> > need to access those.
>
> I don't know if you noticed, but Jacopo started a proposal around multi-context
> media controller. For this type of extension, my long term idea was that we
> could adopt this, and introduced new nodes to expose specialized memory. These
> nodes would be unlike by default, meaning the default behaviour with a single
> m2m video node would remain.
>
> An existing use case for that would be in the decoder space, VC8000D and up have
> 4 post processed output, which mean up to 5 outputs if you count the reference
> frames. So we could set it up:
Sounds very interesting to handle multi-core codecs and devices with some
separate post-processing output (IIRC the allwinner video decoder can have some
extra thumbnail output which can be very handy for JPEG stuff).
> Simpler said then done, but I think this can work. I suspect it is quite
> feasible to keep the stream state separated, allowing to reconfigure the chosen
> output resolution without having to reset the decoder state (which is only bound
> to reference frames). It also solve few issues we have in regard to over-memory
> allocation when we hide the reference frames.
>
> For encoders, reconstruction frames would also be capture nodes. I'm not
> completely versed into what they can be used for, also their pixel format would
> have to be known to be useful of course.
Makes a lot of sense. Honestly this is starting to look like the ISP situation
where we have multiple video nodes dedicated to specific things and various
specific buffer formats for them. This brings a lot of flexibiliy and many
possibilities for decoders/encoders.
In contrast the ISP API uses a separate video device for metadata/configuration
submission, which we do through the request API and controls for the
decoder/encoder cases. But we could imagine adding extra source video nodes to
provide e.g. random bitstream units to stuff for encoding. And just make sure
they are submitted with the same request. I guess that should work since the
request is a media-wide object and not video node specific.
Anyways, like you say, simpler said than done but it seems like a reasonable
design extension that would solve a lot of current API limitations.
Cheers,
Paul
--
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 --]
next prev parent reply other threads:[~2025-01-18 16:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-13 20:25 Hantro H1 Encoding Upstreaming Fabio Estevam
2025-01-13 20:28 ` Fabio Estevam
2025-01-13 20:38 ` Daniel Almeida
2025-01-13 20:54 ` Adam Ford
2025-01-13 21:08 ` Daniel Almeida
2025-01-14 16:16 ` Nicolas Dufresne
2025-01-14 18:01 ` Andrzej Pietrasiewicz
2025-01-14 18:06 ` Nicolas Dufresne
2025-01-15 11:31 ` Adam Ford
2025-01-15 13:53 ` Michael Tretter
2025-01-15 15:03 ` Paul Kocialkowski
2025-01-15 19:43 ` Nicolas Dufresne
2025-01-18 16:49 ` Paul Kocialkowski [this message]
2025-01-15 19:51 ` Nicolas Dufresne
2025-01-18 17:00 ` Paul Kocialkowski
2025-01-15 20:14 ` Nicolas Dufresne
2025-01-18 17:15 ` Paul Kocialkowski
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=Z4vbofrdobqlFC_I@collins \
--to=paulk@sys-base.io \
--cc=aford173@gmail.com \
--cc=andrzejtp2010@gmail.com \
--cc=benjamin.gaignard@collabora.com \
--cc=dwlsalmeida@gmail.com \
--cc=festevam@gmail.com \
--cc=frank.li@nxp.com \
--cc=gus@collabora.com \
--cc=linux-imx@nxmp.com \
--cc=linux-media@vger.kernel.org \
--cc=ming.qian@oss.nxp.com \
--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