[vlc-devel] [PATCH 00/39] Road to push video context (v7)
Steve Lhomme
robux4 at ycbcr.xyz
Mon Oct 7 16:28:38 CEST 2019
Changes since last patchset:
- removed the video output format cleaning (not needed for now)
- fixed some issues with --vout=none where a decoder device would
be created, and thus vout but it wasn't started and vout_GetEmpty
was called.
- renamed and move on_vout_added/removed to on_vout_started/stopped
which is was it translates to in the end. It's important to make
the distinction now that a vout may be created but not yet started.
before it was done in the same call so no problem.
- the vout_order is stored with the vout as the vout may be created before
the value is needed.
These patches of this set can be found in thie branch:
https://code.videolan.org/robUx4/vlc/tree/push/merge/25
Steve Lhomme (39):
video_output: don't use the decoder FIFO if it has been deleted
opengl: pass the video context rather than the decoder device
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: 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
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
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 decoder added/remove to started/stopped
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
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: 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: 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 | 38 +-
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 | 11 +-
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.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 | 5 +-
modules/video_output/win32/direct3d9.c | 8 +-
src/audio_output/filters.c | 2 +-
src/input/decoder.c | 350 +++++++++++-------
src/input/decoder.h | 4 +-
src/input/decoder_helpers.c | 77 +++-
src/input/es_out.c | 12 +-
src/input/input_internal.h | 4 +-
src/input/resource.c | 33 +-
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 | 78 +++-
src/video_output/vout_internal.h | 14 +-
src/video_output/vout_wrapper.c | 7 +-
41 files changed, 795 insertions(+), 295 deletions(-)
--
2.17.1
More information about the vlc-devel
mailing list