[FFmpeg-devel] FFMPEG for V4L2 M2M devices ?

2021-07-09 Thread Andrii
Hi,

I am working on porting a Kodi player to an NVidia Jetson Nano device. I've
been developing a decoder for quite some time now, and realized that the
best approach would be to have it inside of ffmpeg, instead of embedding
the decoder into Kodi as it heavily relies on FFMPEG. Just wondering if
there is any effort in making FFMPEG suppring M2M V4L devices ?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] FFMPEG for V4L2 M2M devices ?

2021-07-12 Thread Andrii
>
> A quick Google implies that NVidia already has a stateful V4L2 M2M
> driver in their vendor kernel. Other than the strange choice of device
> node name (/dev/nvhost-nvdec), the details at [3] make it look like a
> normal V4L2 M2M decoder that has a good chance of working against
> h264_v4l2m2m.


Not only does it have a strange node name, it also uses two nodes. One for
decoding, another for converting. Capture plane of the decoder stores
frames in V4L2_PIX_FMT_NV12M format.
Converter able to convert it to a different format[1].

Could you point me at documentation of Pi V4L2 spec?

[1] https://docs.nvidia.com/jetson/l4t-multimedia/group__V4L2Conv.html

Andrii

On Mon, Jul 12, 2021 at 6:02 AM Dave Stevenson <
dave.steven...@raspberrypi.com> wrote:

> On Sat, 10 Jul 2021 at 00:56, Brad Hards  wrote:
> >
> > On Saturday, 10 July 2021 8:53:27 AM AEST Andrii wrote:
> > > I am working on porting a Kodi player to an NVidia Jetson Nano device.
> I've
> > > been developing a decoder for quite some time now, and realized that
> the
> > > best approach would be to have it inside of ffmpeg, instead of
> embedding
> > > the decoder into Kodi as it heavily relies on FFMPEG. Just wondering if
> > > there is any effort in making FFMPEG suppring M2M V4L devices ?
> >
> >
> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob_plain/HEAD:/libavcodec/v4l2_m2m.c[1]
> >
> > I guess that would be the basis for further work as required to meet
> your needs.
>
> Do note that there are 2 V4L2 M2M decoder APIs - the stateful API[1] ,
> and the stateless API [2]. They differ in the amount of bitstream
> parsing and buffer management that the driver implements vs expecting
> the client to do.
>
> The *_v4l2m2m drivers within FFMPEG support the stateful API (ie the
> kernel driver has bitstream parsing). For Raspberry Pi we use that to
> support the (older) H264 implementation, and FFMPEG master does that
> very well.
>
> The Pi HEVC decoder uses the V4L2 stateless API. Stateless HEVC
> support hasn't been merged to the mainline kernel as yet, so there are
> downstream patches to support that.
>
> A quick Google implies that NVidia already has a stateful V4L2 M2M
> driver in their vendor kernel. Other than the strange choice of device
> node name (/dev/nvhost-nvdec), the details at [3] make it look like a
> normal V4L2 M2M decoder that has a good chance of working against
> h264_v4l2m2m.
>
> [1]
> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-decoder.html
> [2]
> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-stateless-decoder.html
> [3] https://docs.nvidia.com/jetson/l4t-multimedia/group__V4L2Dec.html
>
>   Dave
>
> > Brad
> >
> > 
> > [1]
> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob_plain/HEAD:/libavcodec/v4l2_m2m.c
> > ___
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".