[vlc-devel] [PATCH 00/31] Road to push video context (v2)

Steve Lhomme robux4 at ycbcr.xyz
Mon Sep 23 17:01:05 CEST 2019


Since the previous patchset:
- the decoder device is only created when the decoder (VA and NVDEC) ask for one
- the video context is not stored in the decoder anymore, each VA/NVDEC is
responsible for its own

Steve Lhomme (31):
  opengl: pass the video context rather than the decoder device
  vout: create/release the decoder device when the window is
    enabled/disabled
  decoder: request decoder device when getting the vout
  display: don't store the dummy context in the display anymore
  video_output: split vout_Request into vout_HoldDevice and
    vout_RequestDisplay
  input: resource: split the call to vout_Request()
  audio filters: split the call to vout_Request()
  vout: remove unused vout_Request()
  decoder: split the decoder format update in 2 parts
  input: resource: split input_resource_GetVout()
  decoder: move the video_format cleaning for the display in a function
  decoder: only get the DPB size before creating the display
  decoder: split the creation of the vout/decoder device and the display
    module
  decoder: create a decoder device only when it's requested by the
    decoder
  video_output: request the display with a decoder device
  video context: add a Create/Release function for the video context
  video context: make the video context structure private
  avcodec: get the decoder device before creating the VA
  avcodec: provide the vlc_decoder_device from the vout thread to the VA
    constructor
  d3d11va: use the decoder device to init the D3D11 device
  dxva2: use the decoder device to init the D3D9 device
  avcodec: vaapi: allocate output pictures locally
  vaapi: use the decoder device to get the VADisplay
  avcodec: do not use a picture from the display before creating the VA
  decoder: optionally pass a vlc_video_context in
    decoder_UpdateVideoOutput()
  nvdec: create a video context for the decoder
  avcodec: get the vlc_video_context created by the VA
  d3d11va: create a video context for the VA
  dxva2: create a video context for the VA
  vaapi: create a dummy video context
  vdpau: create a dummy video context

 include/vlc_codec.h                           |  40 ++-
 include/vlc_picture.h                         |  24 +-
 include/vlc_vout_display.h                    |   2 +-
 modules/codec/avcodec/d3d11va.c               |  50 ++--
 modules/codec/avcodec/dxva2.c                 |  44 ++--
 modules/codec/avcodec/va.c                    |   9 +-
 modules/codec/avcodec/va.h                    |   6 +-
 modules/codec/avcodec/vaapi.c                 |  38 ++-
 modules/codec/avcodec/video.c                 |  32 ++-
 modules/hw/nvdec/nvdec.c                      |  20 +-
 modules/hw/nvdec/nvdec_gl.c                   |   3 +-
 modules/hw/vdpau/avcodec.c                    |  11 +-
 modules/stream_out/mosaic_bridge.c            |   4 +-
 modules/stream_out/transcode/video.c          |   2 +-
 modules/video_chroma/d3d11_fmt.h              |   3 +-
 modules/video_chroma/d3d9_fmt.h               |   3 +-
 modules/video_output/opengl/converter.h       |   4 +-
 modules/video_output/opengl/converter_vaapi.c |  24 +-
 modules/video_output/opengl/converter_vdpau.c |  25 +-
 modules/video_output/opengl/vout_helper.c     |   2 +-
 modules/video_output/splitter.c               |   8 +-
 modules/video_output/win32/direct3d9.c        |   2 +-
 src/audio_output/filters.c                    |  15 +-
 src/input/decoder.c                           | 235 +++++++++++-------
 src/input/decoder_helpers.c                   |  84 ++++++-
 src/input/resource.c                          |  31 ++-
 src/input/resource.h                          |   6 +-
 src/libvlccore.sym                            |   7 +
 src/misc/image.c                              |   3 +-
 src/video_output/display.c                    |  19 +-
 src/video_output/video_output.c               |  49 +++-
 src/video_output/vout_internal.h              |  18 +-
 src/video_output/vout_wrapper.c               |   7 +-
 33 files changed, 602 insertions(+), 228 deletions(-)

-- 
2.17.1



More information about the vlc-devel mailing list