<!DOCTYPE html><html><head><title></title><style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div><br></div><div>On Tue, Feb 5, 2019, at 10:51, Rémi Denis-Courmont wrote:<br></div><blockquote type="cite" id="fastmail-quoted"><div>Hi,<br></div><div><br></div><div>This seems backward. The period of the output should be no more than half the maximum tolerable delay, and most back-ends support different values. Only if the minimum period length is more than half the maximum delay should the back-end override (increase) the delay.<br></div></blockquote><div><br></div><div>OK, If I understand correctly: the default delay is MAX_ADVANCE * 2 = 80ms;<br></div><div>Aout modules should configure their period according to this value: that is MAX_ADVANCE = 40ms; Otherwise, they can override this value.<br></div><div><br></div><blockquote type="cite" id="fastmail-quoted"><div><br></div><div class="fastmail-quoted-gmail_quote"><div>Le 5 février 2019 10:18:07 GMT+02:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="fastmail-quoted-gmail_quote"><pre class="fastmail-quoted-k9mail"><div>This value should be 2 times (RFC: or 3 times, Rémi ?) the minimum audio<br></div><div>request value.<br></div><div><br></div><div>This value will be used by the future new output clock. If the audio ES is the<br></div><div>master, audio outputs will be able to set the jitter value of the clock. The<br></div><div>first start of all other ESes will be delayed by this value. This will allow to<br></div><div>start without any distortion/frame drop.<hr> include/vlc_aout.h | 7 ++++++-<br></div><div> modules/audio_output/adummy.c | 5 +++--<br></div><div> modules/audio_output/alsa.c | 4 +++-<br></div><div> modules/audio_output/amem.c | 4 +++-<br></div><div> modules/audio_output/audiotrack.c | 6 ++++--<br></div><div> modules/audio_output/audiounit_ios.m | 4 +++-<br></div><div> modules/audio_output/auhal.c | 4 +++-<br></div><div> modules/audio_output/directsound.c | 3 ++-<br></div><div> modules/audio_output/file.c | 4 +++-<br></div><div> modules/audio_output/jack.c | 4 +++-<br></div><div> modules/audio_output/kai.c | 3 ++-<br></div><div> modules/audio_output/mmdevice.c | 4 +++-<br></div><div> modules/audio_output/opensles_android.c | 4 +++-<br></div><div> modules/audio_output/oss.c | 4 +++-<br></div><div> modules/audio_output/pulse.c | 4 +++-<br></div><div> modules/audio_output/sndio.c | 3 ++-<br></div><div> modules/audio_output/tizen_audio.c | 4 +++-<br></div><div> modules/audio_output/waveout.c | 4 +++-<br></div><div> modules/audio_output/winstore.c | 4 +++-<br></div><div> modules/video_output/decklink.cpp | 4 +++-<br></div><div> src/audio_output/output.c | 3 ++-<br></div><div> 21 files changed, 63 insertions(+), 23 deletions(-)<br></div><div><br></div><div>diff --git a/include/vlc_aout.h b/include/vlc_aout.h<br></div><div>index 11209ee0ce..cec64a1e61 100644<br></div><div>--- a/include/vlc_aout.h<br></div><div>+++ b/include/vlc_aout.h<br></div><div>@@ -140,7 +140,7 @@ struct audio_output<br></div><div> <br></div><div> void *sys; /**< Private data for callbacks */<br></div><div> <br></div><div>- int (*start)(audio_output_t *, audio_sample_format_t *fmt);<br></div><div>+ int (*start)(audio_output_t *, audio_sample_format_t *fmt, vlc_tick_t *jitter);<br></div><div> /**< Starts a new stream (mandatory, cannot be NULL).<br></div><div> *<br></div><div> * This callback changes the audio output from stopped to playing state<br></div><div>@@ -149,6 +149,11 @@ struct audio_output<br></div><div> *<br></div><div> * \param fmt input stream sample format upon entry,<br></div><div> * output stream sample format upon return [IN/OUT]<br></div><div>+ * \param jitter delay that is needed to start without distortion. The<br></div><div>+ * first played block date will be 'jitter' us in the future. If the<br></div><div>+ * module can't handle a late start, the time_get() implementation should<br></div><div>+ * return a valid value before the first play. [OUT]<br></div><div>+<br></div><div> * \return VLC_SUCCESS on success, non-zero on failure<br></div><div> *<br></div><div> * \note This callback can only be called while the audio output is in<br></div><div>diff --git a/modules/audio_output/adummy.c b/modules/audio_output/adummy.c<br></div><div>index d0889b8c08..894356e527 100644<br></div><div>--- a/modules/audio_output/adummy.c<br></div><div>+++ b/modules/audio_output/adummy.c<br></div><div>@@ -57,9 +57,10 @@ static void Flush(audio_output_t *aout, bool wait)<br></div><div> (void) aout; (void) wait;<br></div><div> }<br></div><div> <br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div>- (void) aout;<br></div><div>+ (void) aout; (void) jitter;<br></div><div> <br></div><div> switch (fmt->i_format)<br></div><div> {<br></div><div>diff --git a/modules/audio_output/alsa.c b/modules/audio_output/alsa.c<br></div><div>index 08067c1338..9ff6c3eb09 100644<br></div><div>--- a/modules/audio_output/alsa.c<br></div><div>+++ b/modules/audio_output/alsa.c<br></div><div>@@ -297,7 +297,8 @@ static void PauseDummy (audio_output_t *, bool, vlc_tick_t);<br></div><div> static void Flush (audio_output_t *, bool);<br></div><div> <br></div><div> /** Initializes an ALSA playback stream */<br></div><div>-static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> snd_pcm_format_t pcm_format; /* ALSA sample format */<br></div><div>@@ -627,6 +628,7 @@ static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> error:<br></div><div> snd_pcm_close (pcm);<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static int TimeGet (audio_output_t *aout, vlc_tick_t *restrict delay)<br></div><div>diff --git a/modules/audio_output/amem.c b/modules/audio_output/amem.c<br></div><div>index dcba84c32d..098b97b9ac 100644<br></div><div>--- a/modules/audio_output/amem.c<br></div><div>+++ b/modules/audio_output/amem.c<br></div><div>@@ -184,7 +184,8 @@ static void Stop (audio_output_t *aout)<br></div><div> vlc_mutex_unlock(&sys->lock);<br></div><div> }<br></div><div> <br></div><div>-static int Start (audio_output_t *aout, audio_sample_format_t *fmt)<br></div><div>+static int Start (audio_output_t *aout, audio_sample_format_t *fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> char format[5] = "S16N";<br></div><div>@@ -265,6 +266,7 @@ static int Start (audio_output_t *aout, audio_sample_format_t *fmt)<br></div><div> fmt->i_format = VLC_CODEC_S16N;<br></div><div> fmt->channel_type = AUDIO_CHANNEL_TYPE_BITMAP;<br></div><div> return VLC_SUCCESS;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static int Open (vlc_object_t *obj)<br></div><div>diff --git a/modules/audio_output/audiotrack.c b/modules/audio_output/audiotrack.c<br></div><div>index 8aef4aecfe..ed45d82253 100644<br></div><div>--- a/modules/audio_output/audiotrack.c<br></div><div>+++ b/modules/audio_output/audiotrack.c<br></div><div>@@ -43,7 +43,7 @@<br></div><div> static int Open( vlc_object_t * );<br></div><div> static void Close( vlc_object_t * );<br></div><div> static void Stop( audio_output_t * );<br></div><div>-static int Start( audio_output_t *, audio_sample_format_t * );<br></div><div>+static int Start( audio_output_t *, audio_sample_format_t *, vlc_tick_t * );<br></div><div> static void *AudioTrack_Thread( void * );<br></div><div> <br></div><div> /* There is an undefined behavior when configuring AudioTrack with SPDIF or<br></div><div>@@ -1292,7 +1292,8 @@ StartPCM( JNIEnv *env, audio_output_t *p_aout, unsigned i_max_channels )<br></div><div> }<br></div><div> <br></div><div> static int<br></div><div>-Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt )<br></div><div>+Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt,<br></div><div>+ vlc_tick_t *jitter )<br></div><div> {<br></div><div> aout_sys_t *p_sys = p_aout->sys;<br></div><div> JNIEnv *env;<br></div><div>@@ -1494,6 +1495,7 @@ Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt )<br></div><div> error:<br></div><div> Stop( p_aout );<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void<br></div><div>diff --git a/modules/audio_output/audiounit_ios.m b/modules/audio_output/audiounit_ios.m<br></div><div>index e449f6e2eb..f379c4f70f 100644<br></div><div>--- a/modules/audio_output/audiounit_ios.m<br></div><div>+++ b/modules/audio_output/audiounit_ios.m<br></div><div>@@ -477,7 +477,8 @@ Stop(audio_output_t *p_aout)<br></div><div> }<br></div><div> <br></div><div> static int<br></div><div>-Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt)<br></div><div>+Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *p_sys = p_aout->sys;<br></div><div> OSStatus err;<br></div><div>@@ -580,6 +581,7 @@ error:<br></div><div> [[NSNotificationCenter defaultCenter] removeObserver:p_sys->aoutWrapper];<br></div><div> msg_Err(p_aout, "opening AudioUnit output failed");<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static int DeviceSelect(audio_output_t *p_aout, const char *psz_id)<br></div><div>diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c<br></div><div>index 8005e27954..1bc215a9d5 100644<br></div><div>--- a/modules/audio_output/auhal.c<br></div><div>+++ b/modules/audio_output/auhal.c<br></div><div>@@ -1496,7 +1496,8 @@ Stop(audio_output_t *p_aout)<br></div><div> }<br></div><div> <br></div><div> static int<br></div><div>-Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt)<br></div><div>+Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> UInt32 i_param_size = 0;<br></div><div> aout_sys_t *p_sys = NULL;<br></div><div>@@ -1627,6 +1628,7 @@ Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt)<br></div><div> kAudioDevicePropertyDeviceIsAlive,<br></div><div> kAudioObjectPropertyScopeGlobal);<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Close(vlc_object_t *obj)<br></div><div>diff --git a/modules/audio_output/directsound.c b/modules/audio_output/directsound.c<br></div><div>index b3f3b130c5..0752a559d8 100644<br></div><div>--- a/modules/audio_output/directsound.c<br></div><div>+++ b/modules/audio_output/directsound.c<br></div><div>@@ -963,7 +963,7 @@ static int MuteSet( audio_output_t *p_aout, bool mute )<br></div><div> }<br></div><div> <br></div><div> static int OutputStart( audio_output_t *p_aout,<br></div><div>- audio_sample_format_t *restrict fmt )<br></div><div>+ audio_sample_format_t *restrict fmt, vlc_tick_t *jitter )<br></div><div> {<br></div><div> msg_Dbg( p_aout, "Opening DirectSound Audio Output" );<br></div><div> <br></div><div>@@ -990,6 +990,7 @@ static int OutputStart( audio_output_t *p_aout,<br></div><div> p_aout->flush = OutputFlush;<br></div><div> <br></div><div> return 0;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> typedef struct<br></div><div>diff --git a/modules/audio_output/file.c b/modules/audio_output/file.c<br></div><div>index fbdf35fcb1..0fab9bdece 100644<br></div><div>--- a/modules/audio_output/file.c<br></div><div>+++ b/modules/audio_output/file.c<br></div><div>@@ -128,7 +128,8 @@ vlc_module_begin ()<br></div><div> set_callbacks( Open, NULL )<br></div><div> vlc_module_end ()<br></div><div> <br></div><div>-static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )<br></div><div>+static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter )<br></div><div> {<br></div><div> char * psz_name, * psz_format;<br></div><div> const char * const * ppsz_compare = format_list;<br></div><div>@@ -272,6 +273,7 @@ static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )<br></div><div> }<br></div><div> <br></div><div> return 0;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> /*****************************************************************************<br></div><div>diff --git a/modules/audio_output/jack.c b/modules/audio_output/jack.c<br></div><div>index 59ad013b2f..6dce9f1609 100644<br></div><div>--- a/modules/audio_output/jack.c<br></div><div>+++ b/modules/audio_output/jack.c<br></div><div>@@ -112,7 +112,8 @@ vlc_module_begin ()<br></div><div> vlc_module_end ()<br></div><div> <br></div><div> <br></div><div>-static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )<br></div><div>+static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter )<br></div><div> {<br></div><div> char *psz_name;<br></div><div> aout_sys_t *p_sys = p_aout->sys;<br></div><div>@@ -280,6 +281,7 @@ error_out:<br></div><div> }<br></div><div> free( psz_name );<br></div><div> return status;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Play(audio_output_t * p_aout, block_t * p_block, vlc_tick_t date)<br></div><div>diff --git a/modules/audio_output/kai.c b/modules/audio_output/kai.c<br></div><div>index 98a2182394..5c87aeb74b 100644<br></div><div>--- a/modules/audio_output/kai.c<br></div><div>+++ b/modules/audio_output/kai.c<br></div><div>@@ -124,7 +124,7 @@ vlc_module_end ()<br></div><div> /*****************************************************************************<br></div><div> * Open: open the audio device<br></div><div> *****************************************************************************/<br></div><div>-static int Start ( audio_output_t *p_aout, audio_sample_format_t *fmt )<br></div><div>+static int Start ( audio_output_t *p_aout, audio_sample_format_t *fmt, vlc_tick_t *jitter )<br></div><div> {<br></div><div> aout_sys_t *p_sys = p_aout->sys;<br></div><div> char *psz_mode;<br></div><div>@@ -228,6 +228,7 @@ exit_kai_done :<br></div><div> kaiDone();<br></div><div> <br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED( jitter );<br></div><div> }<br></div><div> <br></div><div> /*****************************************************************************<br></div><div>diff --git a/modules/audio_output/mmdevice.c b/modules/audio_output/mmdevice.c<br></div><div>index 3aded2b9d3..8d6948b285 100644<br></div><div>--- a/modules/audio_output/mmdevice.c<br></div><div>+++ b/modules/audio_output/mmdevice.c<br></div><div>@@ -1117,7 +1117,8 @@ static void aout_stream_Stop(void *func, va_list ap)<br></div><div> stop(s);<br></div><div> }<br></div><div> <br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> <br></div><div>@@ -1232,6 +1233,7 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> sys->stream = s;<br></div><div> aout_GainRequest(aout, sys->gain);<br></div><div> return 0;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Stop(audio_output_t *aout)<br></div><div>diff --git a/modules/audio_output/opensles_android.c b/modules/audio_output/opensles_android.c<br></div><div>index f0d7360397..080548b17a 100644<br></div><div>--- a/modules/audio_output/opensles_android.c<br></div><div>+++ b/modules/audio_output/opensles_android.c<br></div><div>@@ -380,7 +380,8 @@ static int aout_get_native_sample_rate(audio_output_t *aout)<br></div><div> /*****************************************************************************<br></div><div> *<br></div><div> *****************************************************************************/<br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> if (aout_FormatNbChannels(fmt) == 0 || !AOUT_FMT_LINEAR(fmt))<br></div><div> return VLC_EGENERIC;<br></div><div>@@ -496,6 +497,7 @@ error:<br></div><div> }<br></div><div> <br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Stop(audio_output_t *aout)<br></div><div>diff --git a/modules/audio_output/oss.c b/modules/audio_output/oss.c<br></div><div>index 5e16255798..820a3b63c1 100644<br></div><div>--- a/modules/audio_output/oss.c<br></div><div>+++ b/modules/audio_output/oss.c<br></div><div>@@ -92,7 +92,8 @@ static void Play(audio_output_t *, block_t *, vlc_tick_t);<br></div><div> static void Pause (audio_output_t *, bool, vlc_tick_t);<br></div><div> static void Flush (audio_output_t *, bool);<br></div><div> <br></div><div>-static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t* sys = aout->sys;<br></div><div> <br></div><div>@@ -248,6 +249,7 @@ static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> error:<br></div><div> vlc_close (fd);<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static int TimeGet (audio_output_t *aout, vlc_tick_t *restrict pts)<br></div><div>diff --git a/modules/audio_output/pulse.c b/modules/audio_output/pulse.c<br></div><div>index 5075dd92ce..8be4004534 100644<br></div><div>--- a/modules/audio_output/pulse.c<br></div><div>+++ b/modules/audio_output/pulse.c<br></div><div>@@ -696,7 +696,8 @@ static const char *str_map(const char *key, const char *const table[][2],<br></div><div> /**<br></div><div> * Create a PulseAudio playback stream, a.k.a. a sink input.<br></div><div> */<br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> <br></div><div>@@ -962,6 +963,7 @@ fail:<br></div><div> pa_threaded_mainloop_unlock(sys->mainloop);<br></div><div> Stop(aout);<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> /**<br></div><div>diff --git a/modules/audio_output/sndio.c b/modules/audio_output/sndio.c<br></div><div>index 6b28772817..54df8a0e96 100644<br></div><div>--- a/modules/audio_output/sndio.c<br></div><div>+++ b/modules/audio_output/sndio.c<br></div><div>@@ -62,7 +62,7 @@ typedef struct<br></div><div> } aout_sys_t;<br></div><div> <br></div><div> /** Initializes an sndio playback stream */<br></div><div>-static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt, vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> <br></div><div>@@ -202,6 +202,7 @@ static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> error:<br></div><div> sio_close (sys->hdl);<br></div><div> return VLC_EGENERIC;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Stop (audio_output_t *aout)<br></div><div>diff --git a/modules/audio_output/tizen_audio.c b/modules/audio_output/tizen_audio.c<br></div><div>index 6ed34ac3d3..19332417ec 100644<br></div><div>--- a/modules/audio_output/tizen_audio.c<br></div><div>+++ b/modules/audio_output/tizen_audio.c<br></div><div>@@ -193,7 +193,8 @@ AudioIO_Start( audio_output_t *p_aout )<br></div><div> }<br></div><div> <br></div><div> static int<br></div><div>-Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt )<br></div><div>+Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt,<br></div><div>+ vlc_tick_t *jitter )<br></div><div> {<br></div><div> aout_sys_t *p_sys = p_aout->sys;<br></div><div> <br></div><div>@@ -242,6 +243,7 @@ Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt )<br></div><div> aout_FormatPrint( p_aout, "Tizen audio will output:", p_fmt );<br></div><div> <br></div><div> return VLC_SUCCESS;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void<br></div><div>diff --git a/modules/audio_output/waveout.c b/modules/audio_output/waveout.c<br></div><div>index b71fe762bb..74b67d0388 100644<br></div><div>--- a/modules/audio_output/waveout.c<br></div><div>+++ b/modules/audio_output/waveout.c<br></div><div>@@ -168,7 +168,8 @@ vlc_module_end ()<br></div><div> *****************************************************************************<br></div><div> * This function opens and setups Win32 waveOut<br></div><div> *****************************************************************************/<br></div><div>-static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )<br></div><div>+static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter )<br></div><div> {<br></div><div> if( aout_FormatNbChannels( fmt ) == 0 )<br></div><div> return VLC_EGENERIC;<br></div><div>@@ -334,6 +335,7 @@ static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )<br></div><div> fmt->channel_type = AUDIO_CHANNEL_TYPE_BITMAP;<br></div><div> <br></div><div> return VLC_SUCCESS;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> /*****************************************************************************<br></div><div>diff --git a/modules/audio_output/winstore.c b/modules/audio_output/winstore.c<br></div><div>index 5dcad97908..afc4224e5c 100644<br></div><div>--- a/modules/audio_output/winstore.c<br></div><div>+++ b/modules/audio_output/winstore.c<br></div><div>@@ -226,7 +226,8 @@ static void aout_stream_Stop(void *func, va_list ap)<br></div><div> stop(s);<br></div><div> }<br></div><div> <br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> aout_sys_t *sys = aout->sys;<br></div><div> HRESULT hr;<br></div><div>@@ -252,6 +253,7 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> assert (sys->stream == NULL);<br></div><div> sys->stream = s;<br></div><div> return 0;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void Stop(audio_output_t *aout)<br></div><div>diff --git a/modules/video_output/decklink.cpp b/modules/video_output/decklink.cpp<br></div><div>index 597807d163..467dd87d75 100644<br></div><div>--- a/modules/video_output/decklink.cpp<br></div><div>+++ b/modules/video_output/decklink.cpp<br></div><div>@@ -1099,7 +1099,8 @@ static int TimeGet(audio_output_t *, vlc_tick_t* restrict)<br></div><div> return -1;<br></div><div> }<br></div><div> <br></div><div>-static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div>+static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div>+ vlc_tick_t *jitter)<br></div><div> {<br></div><div> decklink_sys_t *sys = (decklink_sys_t *) aout->sys;<br></div><div> <br></div><div>@@ -1116,6 +1117,7 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)<br></div><div> fmt->i_frame_length = FRAME_SIZE;<br></div><div> <br></div><div> return VLC_SUCCESS;<br></div><div>+ VLC_UNUSED(jitter);<br></div><div> }<br></div><div> <br></div><div> static void PlayAudio(audio_output_t *aout, block_t *audio, vlc_tick_t systempts)<br></div><div>diff --git a/src/audio_output/output.c b/src/audio_output/output.c<br></div><div>index 7c1f90b6ba..3a29c308e7 100644<br></div><div>--- a/src/audio_output/output.c<br></div><div>+++ b/src/audio_output/output.c<br></div><div>@@ -570,7 +570,8 @@ int aout_OutputNew (audio_output_t *aout, audio_sample_format_t *restrict fmt,<br></div><div> aout->current_sink_info.headphones = false;<br></div><div> <br></div><div> aout_OutputLock(aout);<br></div><div>- int ret = aout->start(aout, fmt);<br></div><div>+ vlc_tick_t jitter = AOUT_MAX_PTS_ADVANCE * 2;<br></div><div>+ int ret = aout->start(aout, fmt, &jitter);<br></div><div> aout_OutputUnlock(aout);<br></div><div> if (ret)<br></div><div> {<br></div></pre></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div>https://mailman.videolan.org/listinfo/vlc-devel<br></div></blockquote><div><br></div></body></html>