[vlc-devel] [PATCH V2 00/13] player: add a timer API

Thomas Guillem thomas at gllm.fr
Fri Aug 23 16:45:05 CEST 2019


Branch available here: https://code.videolan.org/tguillem/vlc/tree/clock-update/9

Changes since the V1:

 - Don't pass the clock as a parameter to clock udpates

 - Use VLC_TICK_0 as origin, and not 0

 - Handle the b_access_control case in mpeg/ts.c (no first_pcr)

 - Reworked ES_OUT_SET_FIRST_PCR/vlc_clock_main_SetFirstPcr():
Replaced with ES_OUT_ADD_ORIGIN_TIME / vlc_clock_main_AddOriginPoint(), cf.
patches 01, 02 and 03. Demuxers can send origin points to the main clock via
the es_out. The clock will keep a map of origin points and will fix ts with
their origin before being sent via callbacks. This fixes a TOCTOU issue when
the ts module updated its origin more than one time.

Thomas Guillem (13):
  clock: rename SetFirstPcr to SetReferencePoint
  clock: add AddOriginPoint
  es_out: add the ES_OUT_ADD_ORIGIN_TIME control
  ts: update the origin time to the es_out
  clock: forward clock update points
  input: forward clock update points
  input: send pause/playing date via events
  player: add the timer API
  aout: dummy: implement TimeGet
  demux: mock: add audio_block_length param
  test: player: add audio_block_length param
  test: player: test the timer API
  qt: use the new player timer

 include/vlc_es_out.h                          |   4 +
 include/vlc_player.h                          | 134 ++++++++++
 modules/audio_output/adummy.c                 |  61 ++++-
 modules/demux/mock.c                          |   3 +-
 modules/demux/mpeg/ts.c                       |  24 ++
 modules/demux/mpeg/ts_streams.c               |   2 +-
 modules/demux/mpeg/ts_streams_private.h       |   1 +
 .../gui/qt/components/player_controller.cpp   | 119 ++++++---
 .../gui/qt/components/player_controller.hpp   |   1 +
 .../gui/qt/components/player_controller_p.hpp |   8 +
 src/Makefile.am                               |   1 +
 src/clock/clock.c                             | 147 +++++++++--
 src/clock/clock.h                             |  49 +++-
 src/input/es_out.c                            |  60 ++++-
 src/input/es_out_timeshift.c                  |  16 ++
 src/input/event.h                             |  16 +-
 src/input/input.c                             |  25 +-
 src/input/input_internal.h                    |  23 +-
 src/input/item.c                              |   2 +-
 src/input/thumbnailer.c                       |   4 +-
 src/libvlccore.sym                            |   3 +
 src/player/input.c                            |  77 +++++-
 src/player/player.c                           |  16 +-
 src/player/player.h                           |  44 +++-
 src/player/timer.c                            | 240 ++++++++++++++++++
 test/src/player/player.c                      | 155 ++++++++++-
 26 files changed, 1120 insertions(+), 115 deletions(-)
 create mode 100644 src/player/timer.c

-- 
2.20.1



More information about the vlc-devel mailing list