[vlc-devel] [RFC 0/6] libvlc rendering to Direct3D surfaces

Steve Lhomme robux4 at ycbcr.xyz
Tue Apr 30 11:34:32 CEST 2019


These patches gradually add support for rendering to D3D surfaces in libvlc,
allowing all kinds of things to integrate the video in a 3D engine (or Qt).

Unlike OpenGL it uses a single callback on the host size, passing different
controls to it. There's an input const pointer and an output pointer of pointer
to write into. Most calls ignore the output.

The second patch adds 10+ bits support as it's not originally supported by the
current callback API's found in D3D modules.

To support proper positioning of the video in the host area, a window_t is
created. It receives size changes reported by the host and forwards it to the
core. This is not possible with the wdummy currently in use.


Steve Lhomme (6):
  libvlc: add rendering callbacks for D3D11 and D3D9
  libvlc: handle more than 8 bits output in external D3D rendering
  libvlc: handle the input colorimetry on the surface callbacks
  libvlc: add support for HDR10 metadata during the START_RENDERING
  libvlc: add an API entry to set the new video area size
  libvlc:vout: add a custom vout window module that can change the
    display size

 include/vlc/libvlc_media_player.h  | 219 +++++++++++++++++++++++++++++
 lib/libvlc.sym                     |   2 +
 lib/media_player.c                 | 100 +++++++++++++
 modules/video_output/Makefile.am   |   2 +
 modules/video_output/host_window.c | 103 ++++++++++++++
 5 files changed, 426 insertions(+)
 create mode 100644 modules/video_output/host_window.c

-- 
2.17.1



More information about the vlc-devel mailing list