[vlc-devel] [PATCH 00/18] New output clock

Thomas Guillem thomas at gllm.fr
Thu Mar 7 15:25:22 CET 2019


During the Majorca core meeting, Francois, Steve, Denis, Rémi, JB, and me
worked on the new VLC output clock. During this meeting the vlc_clock_t API was
designed and we were able to get AV sync working (but only with PulseAudio).
Here is branch resulting of our work during this meeting:
https://code.videolan.org/jbk/vlc/tree/clock-core/1

And now I present you the 32th (!!!) version of this branch:
https://code.videolan.org/jbk/vlc/tree/clock-core/32

I cleaned everything, split the commits and fixed the following since
clock-core/1:

 - aout modules that can't start deferred (every modules except PulseAudio)
 - rate change
 - delay change
 - rate + delay change
 - visualization plugin sync
 - spu sync
 - seek/flush
 - ts/ogg playback (linked to input delay)
 - monotonic vs audio clock switch

There should be no surprise here. Every time I was blocked by an issue, I asked
personally Denis and Rémi or on the mailing-list and did my best to respect
what we agreed on.

Regards,

Denis Charmet (3):
  clock: Avg: use double
  clock: rework clock_point_t
  clock: add vlc_clock

François Cartegnie (1):
  es_out: rebuffer without flush on late PCR

Jean-Baptiste Kempf (1):
  doc: add clock documentation

Rémi Denis-Courmont (1):
  aout: add timing notify

Thomas Guillem (12):
  vout: rework spu_Render()
  vout: spu: use vlc_clock_t
  vout: use vlc_clock_t
  aout: use original pts as play date
  aout: pass vlc_clock_t to aout filters
  aout: aout_DecNew: assert that arguments are valid
  aout: use vlc_clock_t
  codec: get_display_date: add system_now
  core: switch to the new output clock
  aout: vlc_clock_t is now mandatory
  vout: vlc_clock_t is now mandatory
  clock: add 'clock-master' option to choose the master clock

 doc/clock.md                         | 109 +++++
 include/vlc_aout.h                   |   1 +
 include/vlc_codec.h                  |   8 +-
 include/vlc_spu.h                    |   2 +-
 modules/codec/avcodec/video.c        |   2 +-
 modules/codec/synchro.c              |  14 +-
 modules/stream_out/transcode/video.c |   4 +-
 src/Makefile.am                      |   2 +
 src/audio_output/aout_internal.h     |  23 +-
 src/audio_output/dec.c               | 163 ++++++--
 src/audio_output/filters.c           |  74 +++-
 src/audio_output/output.c            |   7 +
 src/clock/clock.c                    | 567 +++++++++++++++++++++++++++
 src/clock/clock.h                    | 141 +++++++
 src/clock/clock_internal.c           |  55 +--
 src/clock/clock_internal.h           |  36 +-
 src/clock/input_clock.c              |  44 +--
 src/input/decoder.c                  | 219 ++++-------
 src/input/decoder.h                  |   2 +-
 src/input/es_out.c                   |  96 ++++-
 src/libvlc-module.c                  |  16 +
 src/video_output/control.h           |   8 +
 src/video_output/video_output.c      | 147 +++++--
 src/video_output/vout_internal.h     |  36 ++
 src/video_output/vout_subpictures.c  | 184 ++++++---
 25 files changed, 1597 insertions(+), 363 deletions(-)
 create mode 100644 doc/clock.md
 create mode 100644 src/clock/clock.c
 create mode 100644 src/clock/clock.h

-- 
2.20.1



More information about the vlc-devel mailing list