[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