| From: |
| Dmitry Osipenko <digetx-AT-gmail.com> |
| To: |
| Thierry Reding <thierry.reding-AT-gmail.com>, Jonathan Hunter <jonathanh-AT-nvidia.com>, Mauro Carvalho Chehab <mchehab-AT-kernel.org>, Hans Verkuil <hverkuil-AT-xs4all.nl>, Nicolas Dufresne <nicolas-AT-ndufresne.ca>, Ezequiel Garcia <ezequiel-AT-vanguardiasur.com.ar>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org> |
| Subject: |
| [PATCH v4 0/8] Add V4L stateless video decoder API support to NVIDIA Tegra driver |
| Date: |
| Sun, 20 Feb 2022 20:29:42 +0300 |
| Message-ID: |
| <20220220172950.3401-1-digetx@gmail.com> |
| Cc: |
| linux-media-AT-vger.kernel.org, linux-staging-AT-lists.linux.dev, linux-tegra-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org |
| Archive-link: |
| Article |
Support V4L stateless video decoder API by NVIDIA Tegra decoder driver.
Tested using GStreamer [1] and libvdpau-tegra [2][8].
[1] https://github.com/grate-driver/gstreamer/commit/b8509bdb...
[2] https://github.com/grate-driver/libvdpau-tegra/commit/f82...
[8] https://github.com/grate-driver/libvdpau-tegra/commit/80d...
Changelog:
v4: - Added r-b from Nicolas Dufresne to the
"V4L2_H264_DECODE_PARAM_FLAG_P/BFRAME flags" patch.
- Added patches to de-stage driver, like was suggested by Hans Verkuil.
- Added patch to enable driver in ARM's multi-platform defconfig.
v3: - Added new decode_params flags [7] instead of V4L2_BUF_FLAG_*FRAME flags,
as was suggested by Nicolas Dufresne.
[7] https://github.com/grate-driver/gstreamer/commit/c5cd847f...
- Added new patch that removes legacy UAPI.
v2: - Made V4L2_BUF_FLAG_*FRAME flags mandatory [3] and dropped reading
of raw bitstream from the driver code, as was suggested by
Nicolas Dufresne.
[3] https://github.com/grate-driver/gstreamer/commit/aee292f0...
- Ran v4l2-compliance [4] and fluster [5][6] tests, like was suggested by
Nicolas Dufresne. Fixed minor v4l2-compliance errors that were related
to a partial initialization of the coded format and were harmless in
practice, but made compliance checker unhappy.
[4] https://gist.github.com/digetx/5d6bcdab633488f1dcc7c141ab...
[5] https://gist.github.com/digetx/b06c5d779e9d25afa41d9f4694...
[6] https://gist.github.com/digetx/ac4198bc340e5065aa8ec3288b...
Dmitry Osipenko (8):
media: v4l2-ctrls: Add new V4L2_H264_DECODE_PARAM_FLAG_P/BFRAME flags
media: staging: tegra-vde: Factor out H.264 code
media: staging: tegra-vde: Support V4L stateless video decoder API
media: staging: tegra-vde: Remove legacy UAPI support
media: staging: tegra-vde: Bump BSEV DMA timeout
media: staging: tegra-vde: De-stage driver
ARM: tegra_defconfig: Update CONFIG_TEGRA_VDE option
ARM: config: multi v7: Enable NVIDIA Tegra video decoder driver
.../media/v4l/ext-ctrls-codec-stateless.rst | 6 +
MAINTAINERS | 2 +-
arch/arm/configs/multi_v7_defconfig | 1 +
arch/arm/configs/tegra_defconfig | 3 +-
drivers/media/platform/Kconfig | 17 +
drivers/media/platform/Makefile | 2 +
drivers/media/platform/tegra/vde/Makefile | 3 +
.../platform/tegra/vde}/dmabuf-cache.c | 2 +-
drivers/media/platform/tegra/vde/h264.c | 946 ++++++++++++
.../platform/tegra/vde}/iommu.c | 2 +-
.../platform/tegra/vde}/trace.h | 2 +-
drivers/media/platform/tegra/vde/v4l2.c | 1018 ++++++++++++
drivers/media/platform/tegra/vde/vde.c | 551 +++++++
drivers/media/platform/tegra/vde/vde.h | 242 +++
drivers/staging/media/Kconfig | 2 -
drivers/staging/media/Makefile | 1 -
drivers/staging/media/tegra-vde/Kconfig | 10 -
drivers/staging/media/tegra-vde/Makefile | 3 -
drivers/staging/media/tegra-vde/TODO | 4 -
drivers/staging/media/tegra-vde/uapi.h | 73 -
drivers/staging/media/tegra-vde/vde.c | 1358 -----------------
drivers/staging/media/tegra-vde/vde.h | 125 --
include/uapi/linux/v4l2-controls.h | 2 +
23 files changed, 2794 insertions(+), 1581 deletions(-)
create mode 100644 drivers/media/platform/tegra/vde/Makefile
rename drivers/{staging/media/tegra-vde => media/platform/tegra/vde}/dmabuf-cache.c (99%)
create mode 100644 drivers/media/platform/tegra/vde/h264.c
rename drivers/{staging/media/tegra-vde => media/platform/tegra/vde}/iommu.c (98%)
rename drivers/{staging/media/tegra-vde => media/platform/tegra/vde}/trace.h (97%)
create mode 100644 drivers/media/platform/tegra/vde/v4l2.c
create mode 100644 drivers/media/platform/tegra/vde/vde.c
create mode 100644 drivers/media/platform/tegra/vde/vde.h
delete mode 100644 drivers/staging/media/tegra-vde/Kconfig
delete mode 100644 drivers/staging/media/tegra-vde/Makefile
delete mode 100644 drivers/staging/media/tegra-vde/TODO
delete mode 100644 drivers/staging/media/tegra-vde/uapi.h
delete mode 100644 drivers/staging/media/tegra-vde/vde.c
delete mode 100644 drivers/staging/media/tegra-vde/vde.h
--
2.34.1