~grate-driver/grate-driver/+git/libvdpau-tegra:master

Last commit made on 2022-02-07
Get this branch:
git clone -b master https://git.launchpad.net/~grate-driver/grate-driver/+git/libvdpau-tegra

Branch merges

Branch information

Recent commits

80db4d0... by Dmitry Osipenko

v4l2: Support new h264 decode_params flags

Use new decode_params flags for specifying the frame's type.

Signed-off-by: Dmitry Osipenko <email address hidden>

e1c4f9c... by Dmitry Osipenko

Update README.md

Remove libdrm-tegra from the requirements, it stopped being needed long time ago.

07304d2... by Dmitry Osipenko

decoder: Properly take into account minimum buffer size

The minimum buffer size could be larger than 512K, take this into account.

5e53c98... by Nicolas Chauvet

Update README.md

Update fedora copr repository

e5e8178... by Dmitry Osipenko

v4l2: Correct UAPI header paths

Include only local versions of the V4L UAPI headers since latest version
may be not available in the system. This was overlooked by accident.

Signed-off-by: Dmitry Osipenko <email address hidden>

4e6122f... by Dmitry Osipenko

surface: Relocate done_aux label

Older GCC versions fail to compile code with

surface.c: In function ‘__alloc_surface_data’:
surface.c:397:1: error: label at end of compound statement
  397 | done_aux:

Relocate done_aux to fix this trouble. Not sure why that changed in a newer
GCC.

1e952eb... by Dmitry Osipenko

decoder: Handle B frames within baseline stream

I found case where improperly encoded video has B frames in baseline stream,
which is prohibited by spec. We get memory errors in this case since aux buffer
isn't set up. Remove baseline flag if such erroneous stream is detected,
allowing to decode without errors.

22524a4... by Dmitry Osipenko

tegradrm: Cache dmabuf FDs

Kernel driver performs caching of mappings based on dmabuf pointer.
Reusing same FD allows to avoid re-creation of dmabuf, utilizing caches
more efficiently, preventing unnecessary remappings.

27e7607... by Dmitry Osipenko

Cache surfaces

V4L API doesn't provide userspace with a flexible memory management
controls. This doesn't play well with VDPAU, the best we can do is
to mitigate that limitation by adding complexity to the VDPAU driver.
Surface cache prevents remapping of all buffers on each decode invocation
by pinning surface to a dedicated V4L buffer index, this avoids a
horrible performance kill. Syncing of one buffer may take up to 30ms and
we may have (17 * 3 + 1) * 2 of such buffers.

736715a... by Dmitry Osipenko

decoder: Pass non-coherent memory to bitstream reader

Micro-optimize bitstream reading by using CPU-cached memory instead of
going to DRAM on each memory access. We read only couple bytes, so this
change doesn't make much difference in practice.