[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:
https://code.videolan.org/robUx4/vlc/tree/push/merge/53
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
vaapi_pic_context
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
surfaces
avcodec: vdpau: move the video context resources to a separate
structure
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(-)
--
2.17.1
More information about the vlc-devel
mailing list