Draft: Clock context to handle PTS/PCR discontinuity
Loading
Cf. discussion during Workshop 2021-12-06/07 #26378 (closed)
The goal is to keep the data related to the PTS as long as possible inside the playback workflow. To do that, the clock internal state needs to be kept through the whole pipeline, and not scratched synchronously.
As an example scenario: during a media player playback:
Sample with a PCR discontinuity: https://streams.videolan.org/issues/26378/intentional_pcr_discontinuity-short.ts
The es_out can trigger the creation of a new clock_context
via vlc_clock_main_SetFirstPCR
. For now, it is only triggered when the input_clock
detect a discontinuity, but we could also let demux
modules send a new es_out
control to trigger it.
The clock_id
will be propagated from the main clock owned by the es_out
to the output modules, held by block_t
or picture_t
, and passed from packetizers
to decoders
to filters
to outputs
It's a draft, if the solution is accepted, I will have to :
subpicture_t
and spu rendererPTS
directly from aout_TimingReport
(and not a ts based on 0)clock_id
from aout_TimingReport
VideoLAN code repository instance