[vlc-devel] [PATCH 00/48] Road to push video context (v8)
Steve Lhomme
robux4 at ycbcr.xyz
Fri Oct 11 15:33:14 CEST 2019
Changes since last patchset:
- fix make check on Linux (WSL make check is still broken)
- the decoder now monitors the started state of its vout so that it doesn't try
to cancel a vout that was never started
- misc code cleaning/function splitting in the video output
- added vout_ChangeSource so the decoder doesn't try to restart the vout on
format change if the vout can handle the new format
These patches of this set can be found in thie branch:
https://code.videolan.org/robUx4/vlc/tree/push/merge/38
Steve Lhomme (48):
video_output: separate the error logs and return in vout_Request
video_output: split vout_Request to have a function to enable the vout
window
video_output: add a function to release the display separately from
its thread
video_output: no need to check if there's a display to Stop in
vout_Close
decoder: use a separate function to clean the display video format
decoder: move the display creation in a separate function
decoder: clean CreateVoutIfNeeded
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 check before calling vout_EnableWindow
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
include/vlc_codec.h | 49 ++-
include/vlc_picture.h | 40 +-
include/vlc_vout_display.h | 3 +-
modules/codec/avcodec/d3d11va.c | 60 ++-
modules/codec/avcodec/dxva2.c | 50 ++-
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 | 377 ++++++++++++------
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 | 41 +-
src/input/resource.h | 6 +-
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 | 176 +++++---
src/video_output/vout_internal.h | 22 +-
src/video_output/vout_wrapper.c | 7 +-
39 files changed, 876 insertions(+), 344 deletions(-)
--
2.17.1
More information about the vlc-devel
mailing list