[vlc-devel] [PATCH 00/30] Road to push video context (v3)

Steve Lhomme robux4 at ycbcr.xyz
Wed Sep 25 15:30:49 CEST 2019


Differences from the previous patchset:

- vout_HoldDevice is renamed vout_GetDevice and returns a decoder device
- no more interim vout_RequestDisplay, call vout_GetDevice before calling
  vout_Request if you need a decoder device
- vout_Request can be called without a call to vout_GetDevice before

The branch corresponding to this patchset can be found here:
https://code.videolan.org/robUx4/vlc/tree/push/merge/15

Steve Lhomme (30):
  opengl: pass the video context rather than the decoder device
  decoder: use a separate function to clean the display video format
  decoder: separate the vout creation from the format update in
    UpdateFormat
  decoder: clean CreateVoutIfNeeded
  video output: split vout_Request to have a function to enable the vout
    window
  video output: add vout_GetDevice to get the vout decoder device on
    demand
  video_output: request the display with a decoder device
  display: don't store the dummy context in the display anymore
  decoder: request decoder device when getting the vout
  input: resource: get the decoder device before calling vout_Request()
  decoder: split the decoder format update in 2 parts
  input: resource: split input_resource_GetVout()
  decoder: move the display creation in a separate function
  decoder: split the creation of the vout/decoder device and the display
    module
  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                    |   2 +-
 src/input/decoder.c                           | 312 +++++++++++-------
 src/input/decoder_helpers.c                   |  86 ++++-
 src/input/resource.c                          |  37 ++-
 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               |  61 +++-
 src/video_output/vout_internal.h              |  14 +-
 src/video_output/vout_wrapper.c               |   7 +-
 33 files changed, 647 insertions(+), 263 deletions(-)

-- 
2.17.1



More information about the vlc-devel mailing list