[vlc-devel] [PATCH 00/17] Fixing normal_time handling

Thomas Guillem thomas at gllm.fr
Tue Mar 9 15:15:29 UTC 2021


The normal_time handling (cf. DEMUX_GET_NORMAL_TIME) was added for the
player timer, in order to calculate the playback time from a PTS (that
doesn't have an origin of 0).

It was implemented only for the TS module (missing the EPG part) and not
for dvd, bluray, ccda and adaptives.

Using a demux control was not a good approach. Indeed, the normal_time
was fetched every 200ms from the input_thread_t mainloop and sent back
to the player.

This patch set improve the normal time support.
 - The normal_time is now calculated in the ES_OUT_SET_PCR control, from
   the demux matching_time.
 - Implement it for cdda, bluray and dvd
 - TODO: adaptive. Francois, could you do it ?


Best regards,
Thomas Guillem (17):
  es_out_timeshift: add int_i64_i64 control
  es_out_timeshift: use int_i64_i64 for SET_PCR
  demux: ty: use the es_out_SetPCR() helper
  es_out: add a matching time to SET_*_PCR
  clock: handle the normal_time from the input
  es_out: send the normal_time
  demux: ts: refactor
  demux: ts: handle matching time
  player: remove normal_time handling
  input: remove unused normal_time handling
  dvdnav: handle matching_time
  dvdread: handle matching_time
  bluray: handle matching time
  cdda: handle matching_time
  input: rename vlc_input_event_times variables
  input: pass times measurement date to the player
  dbus: increase player timer period

 include/vlc_demux.h                         |  2 --
 include/vlc_es_out.h                        | 16 +++++++--
 modules/access/bluray.c                     | 26 ++++++++++++++
 modules/access/cdda.c                       |  3 +-
 modules/access/dvdnav.c                     |  3 +-
 modules/access/dvdread.c                    |  7 +++-
 modules/control/dbus/dbus.c                 |  2 +-
 modules/demux/adaptive/PlaylistManager.cpp  |  2 +-
 modules/demux/adaptive/plumbing/Demuxer.cpp |  2 +-
 modules/demux/mpeg/ts.c                     | 38 ++++++++++++---------
 modules/demux/timestamps_filter.h           |  5 +--
 modules/demux/ty.c                          |  4 +--
 src/clock/clock.c                           | 23 +++++++++++--
 src/clock/clock.h                           |  9 +++++
 src/input/demux.c                           |  2 --
 src/input/es_out.c                          | 15 ++++----
 src/input/es_out.h                          | 10 +++---
 src/input/es_out_timeshift.c                | 33 +++++++++++-------
 src/input/event.h                           |  4 +--
 src/input/input.c                           | 13 +++----
 src/input/input_internal.h                  |  6 ++--
 src/player/input.c                          | 28 +++++----------
 src/player/player.h                         |  3 --
 src/player/timer.c                          | 15 ++------
 24 files changed, 161 insertions(+), 110 deletions(-)

-- 
2.30.0



More information about the vlc-devel mailing list