[vlc-devel] [PATCH 00/42] Road to push video context (v9)
Steve Lhomme
robux4 at ycbcr.xyz
Wed Oct 16 16:58:35 CEST 2019
Changes since last patchset:
- merged the first trivial code splitting patches in master
- added 2 patches to avoid calling GetDevice with a vout_configuration_t, now
it's using a vout_device_configuration_t
- fix the video context released twice on error in d3d11va/dxva2
- merged "video_output: do the format check before calling
vout_EnableWindow" into "video_output: do the format cleaning in vout_Request
and vout_GetDevice" as the move is only needed to remove the sys->original
format check in vout_GetDevice().
These patches of this set can be found in thie branch:
https://code.videolan.org/robUx4/vlc/tree/push/merge/40
Steve Lhomme (42):
video_output: add vout_GetDevice to get the vout decoder device on
demand
video_output: pass the video format to vout_SizeWindow()
video_output: do the format cleaning in vout_Request and
vout_GetDevice
vout: 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
decoder: keep the added state of the vout thread
input: resource: split input_resource_GetVout()
decoder: store the decoder order of the decoder vout next to it
decoder: move the display creation in a separate function
input: rename vout added/removed to started/stopped
video_output: add vout_ChangeSource to set a new source for the
display
decoder: split the creation of the vout/decoder device and the display
module
decoder: stop the display before saving the free vout
video context: add a Create/Release function for the video context
video context: make the video context structure private
decoder: allow multiple calls to GetDecoderDevice before calling
UpdateFormat
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
vaapi: use the decoder device to get the VADisplay
avcodec: vdpau: use the decoder device to get the vdp_t*
avcodec: vaapi: allocate output pictures locally
avcodec: do not use a picture from the display before creating the VA
decoder: optionally pass a vlc_video_context in
decoder_UpdateVideoOutput()
decoder: don't create and release an unused decoder device for regular
decoders
decoder: remove locally stored decoder device
video context: allow storing typed extra data in the video context
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
dxva2: store the IDirect3DDevice9 in the video context
d3d11va: store the ID3D11DeviceContext in the video context
vout: request the vout with a video context
video_output: enable the window using only the vout
vout: separate the configure structures for the device and the display
include/vlc_codec.h | 49 ++++-
include/vlc_picture.h | 40 +++-
include/vlc_vout_display.h | 3 +-
modules/codec/avcodec/d3d11va.c | 58 +++---
modules/codec/avcodec/dxva2.c | 48 +++--
modules/codec/avcodec/va.c | 9 +-
modules/codec/avcodec/va.h | 6 +-
modules/codec/avcodec/vaapi.c | 45 +++--
modules/codec/avcodec/video.c | 37 +++-
modules/hw/nvdec/nvdec.c | 22 ++-
modules/hw/nvdec/nvdec_gl.c | 3 +-
modules/hw/vaapi/vlc_vaapi.c | 9 -
modules/hw/vaapi/vlc_vaapi.h | 5 -
modules/hw/vdpau/avcodec.c | 24 ++-
modules/stream_out/mosaic_bridge.c | 4 +-
modules/stream_out/transcode/video.c | 2 +-
modules/video_chroma/d3d11_fmt.c | 10 +
modules/video_chroma/d3d11_fmt.h | 15 +-
modules/video_chroma/d3d9_fmt.c | 10 +
modules/video_chroma/d3d9_fmt.h | 15 +-
modules/video_output/opengl/converter_vaapi.c | 17 +-
modules/video_output/opengl/converter_vdpau.c | 19 +-
modules/video_output/splitter.c | 5 +-
modules/video_output/win32/direct3d9.c | 6 +-
src/audio_output/filters.c | 2 +-
src/input/decoder.c | 184 +++++++++++++-----
src/input/decoder.h | 4 +-
src/input/decoder_helpers.c | 75 ++++++-
src/input/es_out.c | 12 +-
src/input/input_internal.h | 4 +-
src/input/resource.c | 45 +++--
src/input/resource.h | 8 +-
src/libvlccore.sym | 7 +
src/misc/image.c | 3 +-
src/player/input.c | 4 +-
src/video_output/display.c | 15 +-
src/video_output/video_output.c | 138 +++++++++----
src/video_output/vout_internal.h | 27 ++-
src/video_output/vout_wrapper.c | 7 +-
39 files changed, 746 insertions(+), 250 deletions(-)
--
2.17.1
More information about the vlc-devel
mailing list