[vlc-devel] [PATCH 01/13] clock: rename SetFirstPcr to SetReferencePoint
Thomas Guillem
thomas at gllm.fr
Thu Aug 22 13:36:20 CEST 2019
On Thu, Aug 22, 2019, at 13:35, Steve Lhomme wrote:
>
>
> On 2019-08-21 16:13, Thomas Guillem wrote:
> > And document it.
> > ---
> > src/clock/clock.c | 24 ++++++++++++------------
> > src/clock/clock.h | 11 +++++++++--
> > src/input/es_out.c | 6 ++----
> > 3 files changed, 23 insertions(+), 18 deletions(-)
> >
> > diff --git a/src/clock/clock.c b/src/clock/clock.c
> > index 15a6cf68e4..9cc0c66bb6 100644
> > --- a/src/clock/clock.c
> > +++ b/src/clock/clock.c
> > @@ -50,7 +50,7 @@ struct vlc_clock_main_t
> > vlc_tick_t pause_date;
> >
> > clock_point_t wait_sync_ref; /* When the master */
> > - clock_point_t first_pcr;
> > + clock_point_t ref;
> > vlc_tick_t output_dejitter; /* Delay used to absorb the output clock jitter */
> > vlc_tick_t input_dejitter; /* Delay used to absorb the input jitter */
> > bool abort;
> > @@ -207,9 +207,9 @@ vlc_clock_monotonic_to_system_locked(vlc_clock_t *clock, vlc_tick_t now,
> > * is used to introduce the same delay than the input clock (first PTS
> > * - first PCR). */
> > const vlc_tick_t pcr_delay =
> > - main_clock->first_pcr.system == VLC_TICK_INVALID ? 0 :
> > - (ts - main_clock->first_pcr.stream) / rate +
> > - main_clock->first_pcr.system - now;
> > + main_clock->ref.system == VLC_TICK_INVALID ? 0 :
> > + (ts - main_clock->ref.stream) / rate +
> > + main_clock->ref.system - now;
> >
> > const vlc_tick_t input_delay = main_clock->input_dejitter + pcr_delay;
> >
> > @@ -340,7 +340,7 @@ vlc_clock_main_t *vlc_clock_main_New(void)
> > main_clock->offset = VLC_TICK_INVALID;
> > main_clock->delay = 0;
> >
> > - main_clock->first_pcr =
> > + main_clock->ref =
> > clock_point_Create(VLC_TICK_INVALID, VLC_TICK_INVALID);
> > main_clock->wait_sync_ref = main_clock->last =
> > clock_point_Create(VLC_TICK_INVALID, VLC_TICK_INVALID);
> > @@ -368,18 +368,18 @@ void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
> > {
> > vlc_mutex_lock(&main_clock->lock);
> > vlc_clock_main_reset(main_clock);
> > - main_clock->first_pcr =
> > + main_clock->ref =
> > clock_point_Create(VLC_TICK_INVALID, VLC_TICK_INVALID);
> > vlc_mutex_unlock(&main_clock->lock);
> > }
> >
> > -void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock,
> > - vlc_tick_t system_now, vlc_tick_t ts)
> > +void vlc_clock_main_SetReferencePoint(vlc_clock_main_t *main_clock,
> > + vlc_tick_t system_now, vlc_tick_t ts)
> > {
> > vlc_mutex_lock(&main_clock->lock);
> > - if (main_clock->first_pcr.system == VLC_TICK_INVALID)
> > + if (main_clock->ref.system == VLC_TICK_INVALID)
> > {
> > - main_clock->first_pcr = clock_point_Create(system_now, ts);
> > + main_clock->ref = clock_point_Create(system_now, ts);
> > main_clock->wait_sync_ref =
> > clock_point_Create(VLC_TICK_INVALID, VLC_TICK_INVALID);
> > }
> > @@ -414,8 +414,8 @@ void vlc_clock_main_ChangePause(vlc_clock_main_t *main_clock, vlc_tick_t now,
> > main_clock->last.system += delay;
> > main_clock->offset += delay;
> > }
> > - if (main_clock->first_pcr.system != VLC_TICK_INVALID)
> > - main_clock->first_pcr.system += delay;
> > + if (main_clock->ref.system != VLC_TICK_INVALID)
> > + main_clock->ref.system += delay;
> > if (main_clock->wait_sync_ref.system != VLC_TICK_INVALID)
> > main_clock->wait_sync_ref.system += delay;
> > main_clock->pause_date = VLC_TICK_INVALID;
> > diff --git a/src/clock/clock.h b/src/clock/clock.h
> > index 8f281523d8..dbfa9dd3d3 100644
> > --- a/src/clock/clock.h
> > +++ b/src/clock/clock.h
> > @@ -50,8 +50,15 @@ void vlc_clock_main_Abort(vlc_clock_main_t *main_clock);
> > */
> > void vlc_clock_main_Reset(vlc_clock_main_t *main_clock);
> >
> > -void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock,
> > - vlc_tick_t system_now, vlc_tick_t ts);
> > +/**
> > + * Set the clock reference point.
> > + *
> > + * 0:0 by default and reset after each vlc_clock_main_Reset() call. It need to
>
> By 0:0 you mean INVALID/INVALID ?
No, I mean VLC_TICK_0
>
> > + * be called after a seek/flush/buffering in order to tell when the flushed
> > + * stream starts.
> > + */
> > +void vlc_clock_main_SetReferencePoint(vlc_clock_main_t *main_clock,
> > + vlc_tick_t system_now, vlc_tick_t ts);
> > void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock,
> > vlc_tick_t delay);
> >
> > diff --git a/src/input/es_out.c b/src/input/es_out.c
> > index be19053e78..0ea21d9fa6 100644
> > --- a/src/input/es_out.c
> > +++ b/src/input/es_out.c
> > @@ -1006,10 +1006,8 @@ static void EsOutDecodersStopBuffering( es_out_t *out, bool b_forced )
> >
> > const vlc_tick_t update = i_current_date + i_wakeup_delay - i_buffering_duration;
> >
> > - /* Send the first PCR to the output clock. This will be used as a reference
> > - * point for the sync point. */
> > - vlc_clock_main_SetFirstPcr(p_sys->p_pgrm->p_main_clock, update,
> > - i_stream_start);
> > + vlc_clock_main_SetReferencePoint(p_sys->p_pgrm->p_main_clock, update,
> > + i_stream_start);
> >
> > input_clock_ChangeSystemOrigin( p_sys->p_pgrm->p_input_clock, true, update );
> >
> > --
> > 2.20.1
> >
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> >
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list