[mythtv-commits] [MythTV/mythtv] a3b953: VAAPI: Fix and enable VPP direct rendering deinter...

Mark Kendall noreply at github.com
Sat Jun 22 08:44:26 UTC 2019

  Branch: refs/heads/devel/2019-render
  Home:   https://github.com/MythTV/mythtv
  Commit: a3b9538eceda3e613c1a62cb751673fc8861c067
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-06-22 (Sat, 22 Jun 2019)

  Changed paths:
    M mythtv/libs/libmythtv/mythvaapicontext.cpp
    M mythtv/libs/libmythtv/mythvaapiinterop.cpp
    M mythtv/libs/libmythtv/mythvaapiinterop.h
    M mythtv/libs/libmythtv/videobuffers.cpp
    M mythtv/libs/libmythtv/videobuffers.h

  Log Message:
  VAAPI: Fix and enable VPP direct rendering deinterlacing

- use a separate frames context for the VPP deinterlacer. This avoids
reference counting hell when using the existing decoder frames context
- allocate an additional 2 surfaces for the decoder to use in its frames
context. This avoids surface starvation when the deinterlacer retains
references to surfaces. Not sure how the reference counting to release
the interop is still working - but hey ho.

- in addition

- extend the number of VAAPI surfaces to fix the worst case H.264 samples
with 16 reference frames. Hopefully to be followed up with detection and
use of the actual number of references frames (to save memory - 30
surfaces is overkill for most sources)
- use the surface size to create the OpenGL textures and DRM buffers for
DRM interop. Fixes a minor scaling issue and 'green line' with HEVC
10bit content

- there are still a few issues
- pause frame does an interesting dance as we feed the deinterlacer the
same frame and it alternates beween returning its 2 cached frames
- there is still some unnecessary scaling happening for some H.264
interlaced 1080 material - which manifests as the garbage line at the
bottom of the screen. Cannot figure out why it happens on some clips and
not others - but it is definitely happening in the deinterlacer.

More information about the mythtv-commits mailing list