On 7/27/23 03:53, Nicolas Dufresne wrote:
CAUTION: Email originated externally, do not click links or open attachments unless you recognize the sender and know the content is safe.
Hi,
Le mercredi 26 juillet 2023 à 10:49 +0800, Hsia-Jun Li a écrit :
I am strongly against this approach, instead I think we need to keep all
vendor-specific parts in the kernel driver and provide a clean unified userspace
API.
We are driving away vendor participation. Besides, the current design is
a performance bottleneck.
I know you have been hammering this argument for many many years. But in
concrete situation, we have conducted tests, and we out perform vendors stacks
that directly hit into hardware register with stateless CODEC. Also, Paul's
proposal, is that fine grain / highly close to metal tuning of the encoding
process should endup in the Linux kernel, so that it can benefit from the
natural hard real-time advantage of a hard IRQ. Just like anything else, we will
In a real case, especially in those EDR/DVR, NVR, re-encoding could
happen occasionally. The important is feedback the encoded statistic to
the controller(userspace) then userspace decided the future
operation(whether re-encoding this or not).
find a lot of common methods and shareable code which will benefit in security
The security for a vendor would only mean the protection of its
intelligence properties. Also userspace and HAL is isolated in Android.
Security or quality are not a problem here, you can't even run the
unverified code.
Or we just define an interface that only FOSS would use.
and quality, which is very unlike what we normally get from per vendor BSP. The
strategy is the same as everything else in Linux, vendor will adpot it if there
is a clear benefit. And better quality, ease of use, good collection of mature
Any vendor would like to implement a DRM(digital right, security) video
pipeline would not even think of this. They are not many vendors that
just sell plain video codecs hardware.
In such case, we can't even invoke in its memory management, they may
even drop the V4L2 framework.
Somebody may say why the vendor want the stateless codec, they could
have a dedicated core to run a firmware. It is simple, if you are
comparing an ARM cortex-R/M core to an ARM application core, which one
could performance better? A remote processor could make the memory
model(cache coherent) more complex. Besides, it is about the cost.
userspace software is what makes the difference. It does takes time of course.
Anyway, despite those registers and controls part, I think I could input
the buffer management part here.
Please DO ***NOT*** make a standard that occupied many memory behinds
usersace and a standard that user has to handle the reconstruction
buffer holding with a strange mechanism(I mean reconstruction buffer
lifetime would be manged by userspace manually).
regards,
Nicolas
--
Hsia-Jun(Randy) Li