[PATCH 00/14] 360° API

Steve Lhomme robux4 at videolabs.io
Fri Sep 30 18:36:11 CEST 2016


Since the last batch of patches the design has changed a little. Internally we
don't use a string anymore for the "viewpoint" variable. It's a fixed structure
that is either stored in playlist_t for the desktop player or in the media
player for libvlc. The string is only used to set the viewpoint from the 
command-line on startup. It is faster and safer than parsing floats in strings
all the time.

All vouts now share the same viewpoint values.

If a control module changes the viewpoint of a vout, libvlc_video_get_viewpoint
will read the modified value, not the internal media player one, which will
be updated during that call.

The patches can be found on this branch
https://github.com/robUx4/vlc/commits/360-patchset1_1

Steve Lhomme (14):
  configure: fix glwin32 project inclusion
  opengl: fix the projection aspect ratio
  opengl: start the 360° display from the left part of the video
  core: add viewpoint to change the yaw/pitch/roll view during playback
  hotkeys: new hotkeys to change the viewpoint in 360° videos
  vrnav: add control to change the viewpoint in 360° videos with the
    mouse
  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

 configure.ac                         |   2 +-
 include/vlc/libvlc_media_player.h    |  54 +++++++++
 include/vlc_keys.h                   |   3 +
 include/vlc_playlist.h               |  10 ++
 include/vlc_vout.h                   |   9 ++
 include/vlc_vout_display.h           |   7 ++
 include/vlc_vout_wrapper.h           |   3 +
 lib/audio.c                          |   1 +
 lib/libvlc.sym                       |   3 +
 lib/media_player.c                   |  10 ++
 lib/media_player_internal.h          |   1 +
 lib/video.c                          |  52 +++++++++
 modules/control/Makefile.am          |   4 +-
 modules/control/hotkeys.c            |  56 ++++++++-
 modules/control/vrnav.c              | 221 +++++++++++++++++++++++++++++++++++
 modules/video_output/gl.c            |   6 +
 modules/video_output/ios2.m          |   7 ++
 modules/video_output/macosx.m        |   9 +-
 modules/video_output/opengl.c        |  18 ++-
 modules/video_output/opengl.h        |   3 +
 modules/video_output/win32/glwin32.c |  16 ++-
 modules/video_output/xcb/glx.c       |   7 ++
 src/config/keys.c                    |   2 +
 src/libvlc-module.c                  |  34 +++++-
 src/libvlccore.sym                   |   4 +
 src/playlist/engine.c                |  34 ++++++
 src/video_output/control.h           |   2 +
 src/video_output/display.c           |  49 +++++++-
 src/video_output/video_output.c      |  26 +++++
 src/video_output/vout_intf.c         |  18 +++
 test/Makefile.am                     |   2 +-
 test/libvlc/media_player.c           |  94 +++++++++++++++
 test/libvlc/test.h                   |   3 +-
 33 files changed, 754 insertions(+), 16 deletions(-)
 create mode 100644 modules/control/vrnav.c

-- 
2.8.2



More information about the vlc-devel mailing list