[vlc-devel] [PATCH 00/16] Get rid of the decoder pool in the display module (v2)

Steve Lhomme robux4 at ycbcr.xyz
Thu Oct 24 16:20:14 CEST 2019

Now we create the picture pools in the decoders. Each VA sends pictures from
its own local pool and software decoders are sending pictures from a pool 
automatically created for them rather than using the pool of the display module.

After that we can reduce the large pool in the display module and only keep
enough pictures for the filters/converters that are still using that pool.

Changes from the previous patchset:
- rewrite the surface allocation of the VAAPI decoder so the pool and its
  associated resources can be released with the last picture or the pool close,
  whichever comes last. It's using the same va_surface API used by DXVA.

- no more picture_t allocation directly from the VA, we only provide a 
  picture_context_t and a surface for the decoder. The picture can be allocated
  elsewhere, not even necessarily pooled.

- adjust the amount of surfaces used by VDPAU.

These patches of this set can be found in thie branch:

Steve Lhomme (14):
  hw: vaapi: keep the VADisplay in each picture context
  hw: vaapi: share the bare structure to store a VAAPI picture context
  vlc_vaapi: allow setting the picture context from a bare
  avcodec: vaapi: use the va_surface API to allocate/get surfaces
  avcodec: vaapi: remove the picture_pool based code
  avcodec: va: don't allocate pictures in the VA
  avcodec: vdpau: do not rely on avctx->refs for VP9
  avcodec: vdpau: do not attempt to decode if we don't have enough
  avcodec: vdpau: move the video context resources to a separate
  avcodec: vdpau: put the video context data in its private storage
  decoder: use a local decoder picture pool rather than using the
    display one
  decoder: do not use the DPB size to configure the display module
  video_output: use the display_pool with vout_GetPicture
  video_output: remove the decoder pool

Thomas Guillem (2):
  vaapi: gl: check that the image can be derived
  vout: lower decoder picture count when handled

 modules/codec/Makefile.am                     |   3 +-
 modules/codec/avcodec/d3d11va.c               |   2 +-
 modules/codec/avcodec/dxva2.c                 |   2 +-
 modules/codec/avcodec/va.h                    |  11 --
 modules/codec/avcodec/vaapi.c                 | 154 ++++++++++++++----
 modules/codec/avcodec/video.c                 |   4 +-
 modules/hw/vaapi/vlc_vaapi.c                  |  53 +++---
 modules/hw/vaapi/vlc_vaapi.h                  |  27 +++
 modules/hw/vdpau/avcodec.c                    | 103 ++++++++----
 modules/video_output/opengl/converter_vaapi.c |  25 +++
 src/audio_output/filters.c                    |   2 +-
 src/input/decoder.c                           |  80 ++++++---
 src/video_output/video_output.c               |  25 ++-
 src/video_output/vout_internal.h              |   5 +-
 src/video_output/vout_wrapper.c               |  46 +-----
 15 files changed, 347 insertions(+), 195 deletions(-)


More information about the vlc-devel mailing list