[PATCH 00/15] VR/360° navigation

Steve Lhomme robux4 at videolabs.io
Fri Nov 4 18:08:43 CET 2016


This is a new set of patches based on previous iterations of the same code.

I got rid of the vrnav control module to navigate in the VR world. It required
to be loaded all the time so that it works with VR source when they are
loaded. Now we handle the mouse events in display and do the viewpoint
navigation when the vout is using a non-flat projection. We avoid thread issues
as the mouse and the vout control events are all in the same thread.

It is now the responsibility of the vout to tell which projection it's
currently using. If it doesn't VOUT_PROJECTION_FLAT is assumed.

libvlc_video_get_viewpoint() now uses the first vout (#0) and returns 0 on
success.


Steve Lhomme (14):
  opengl: start the 360° display from the left part of the video
  core: add viewpoint to change the yaw/pitch/roll view during playback
  opengl: handle the viewpoint changes when rendering
  opengl: no need to restrict the radian values
  glwin32: handle VOUT_DISPLAY_CHANGE_VIEWPOINT events
  vout iOS: handle VOUT_DISPLAY_CHANGE_VIEWPOINT events
  vout_macosx: handle VOUT_DISPLAY_CHANGE_VIEWPOINT events
  xcb: handle VOUT_DISPLAY_CHANGE_VIEWPOINT events
  test: use the jpeg file to test vout specific calls
  libvlc: add the API needed to set/get the viewpoint in 360° videos
  core: add an option to set the projection mode
  opengl: use the projection mode from the display configuration
  core: move some internal inline functions in display.c
  core: handle the mouse navigation in VR/360° videos in the core

Thomas Guillem (1):
  core: store the projection mode in use in video_display_t

 include/vlc/libvlc_media_player.h    |  52 +++++++++++++
 include/vlc_common.h                 |   1 +
 include/vlc_vout.h                   |  14 ++++
 include/vlc_vout_display.h           |  18 +++++
 include/vlc_vout_wrapper.h           |   3 +
 lib/libvlc.sym                       |   3 +
 lib/media_player.c                   |  10 +++
 lib/media_player_internal.h          |   2 +
 lib/video.c                          |  49 ++++++++++++
 modules/video_output/gl.c            |  20 +++++
 modules/video_output/ios2.m          |  21 ++++++
 modules/video_output/macosx.m        |  23 +++++-
 modules/video_output/opengl.c        |  85 +++++++++++++++++++--
 modules/video_output/opengl.h        |   5 ++
 modules/video_output/win32/glwin32.c |  30 +++++++-
 modules/video_output/xcb/glx.c       |  21 ++++++
 src/libvlc-module.c                  |  17 +++++
 src/libvlccore.sym                   |   4 +
 src/playlist/engine.c                |  12 +++
 src/playlist/playlist_internal.h     |   3 +
 src/video_output/control.h           |   3 +
 src/video_output/display.c           | 139 ++++++++++++++++++++++++++++++++++-
 src/video_output/event.h             |  37 ----------
 src/video_output/video_output.c      |  41 +++++++++++
 src/video_output/vout_internal.h     |   6 ++
 src/video_output/vout_intf.c         |  50 +++++++++++++
 test/Makefile.am                     |   2 +-
 test/libvlc/media_player.c           |  94 +++++++++++++++++++++++
 test/libvlc/test.h                   |   3 +-
 29 files changed, 718 insertions(+), 50 deletions(-)

-- 
2.10.1



More information about the vlc-devel mailing list