[vlc-devel] [PATCH 0/6] Add 3D (stereoscopic) playback to the Direct3D11 vout
Steve Lhomme
robux4 at ycbcr.xyz
Mon Aug 13 16:44:40 CEST 2018
This is code based on the 2017 GSoC with some cleanup and adapting to all the
D3D11 changes that happened since then.
This has been tested with sources:
- frame-sequential
- side-by-side
- top-bottom
The possible output modes are:
- 2D / left-eye
- right eye
- stereo mode
- side-by-side
When the source is not stereoscopic the right eye displays exactly the same
thing as the left eye.
It's possible to force the output mode from the UI or libvlc.
This is tested with NVIDIA 3D Stereo glasses and a compatible screen. In the
past IDXGIFactory2_IsWindowedStereoEnabled() was working and we could tell if
the hardware was capable of displaying 3D or not but it's not possible anymore
so we just try and if it fails we fallback to 2D/left-eye mode.
The Side-By-Side may be used to send 3D video to 3D TVs even if we don't detect
they can do 3D, the users just have to trigger the SBS mode on their TV.
Mohammed (Shaan) Huzaifa Danish (6):
decoder: add code to send 3d metadata to the output modules to be
handled
video_output: add video-stereo-mode option to select the stereoscopic
video output mode
video_output: handle the dynamic change of video-stereo-mode
libvlc: add get/set functions for libVLC stereo mode
qt: add menu options for 3d output
direct3d11: add 3d playback
include/vlc/libvlc_media_player.h | 29 +++
include/vlc_vout.h | 12 +
include/vlc_vout_display.h | 7 +
include/vlc_vout_wrapper.h | 1 +
lib/libvlc.sym | 2 +
lib/media_player.c | 1 +
lib/video.c | 28 +++
modules/gui/qt/menus.cpp | 4 +
modules/video_output/win32/d3d11_quad.c | 216 ++++++++++++-----
modules/video_output/win32/d3d11_quad.h | 12 +-
modules/video_output/win32/d3d11_shaders.c | 84 ++++---
modules/video_output/win32/d3d11_shaders.h | 16 +-
modules/video_output/win32/direct3d11.c | 265 +++++++++++++++++++--
src/input/decoder.c | 7 +-
src/libvlc-module.c | 17 ++
src/video_output/control.h | 1 +
src/video_output/display.c | 28 +++
src/video_output/video_output.c | 14 ++
src/video_output/vout_internal.h | 1 +
src/video_output/vout_intf.c | 35 +++
20 files changed, 656 insertions(+), 124 deletions(-)
--
2.17.0
More information about the vlc-devel
mailing list