Skip to content
Snippets Groups Projects
Commit d16eba83 authored by Thomas Guillem's avatar Thomas Guillem Committed by Steve Lhomme
Browse files

aout: trace discontinuity handling

parent 20a3c8ed
No related branches found
No related tags found
1 merge request!6190aout: trace discontinuity handling
Pipeline #525301 passed with stage
in 13 minutes and 6 seconds
......@@ -183,6 +183,7 @@ static bool stream_IsDrained(vlc_aout_stream *stream)
static int stream_StartDiscontinuity(vlc_aout_stream *stream, block_t *block)
{
audio_output_t *aout = aout_stream_aout(stream);
struct vlc_tracer *tracer = aout_stream_tracer(stream);
assert(!stream->discontinuity.draining);
/* Changing timings of the stream module while playing is an intricate
......@@ -197,6 +198,10 @@ static int stream_StartDiscontinuity(vlc_aout_stream *stream, block_t *block)
* - Play back all blocks that were saved
*/
if (tracer != NULL)
vlc_tracer_TraceEvent(tracer, "RENDER", stream->str_id,
"discontinuity_start");
msg_Dbg(aout, "discontinuity: at %"PRId64" us, draining output",
block->i_pts);
vlc_aout_stream_Drain(stream);
......@@ -220,6 +225,7 @@ static void stream_ResetDiscontinuity(vlc_aout_stream *stream)
static int stream_HandleDiscontinuity(vlc_aout_stream *stream, block_t *block)
{
audio_output_t *aout = aout_stream_aout(stream);
struct vlc_tracer *tracer = aout_stream_tracer(stream);
block_ChainLastAppend(&stream->discontinuity.fifo_last, block);
......@@ -234,6 +240,10 @@ static int stream_HandleDiscontinuity(vlc_aout_stream *stream, block_t *block)
&length);
block = stream->discontinuity.fifo_first;
if (tracer != NULL)
vlc_tracer_TraceEvent(tracer, "RENDER", stream->str_id,
"discontinuity_flush");
msg_Dbg(aout, "discontinuity: flushing output");
/* Reset the discontinuity state, and flush */
......@@ -243,6 +253,10 @@ static int stream_HandleDiscontinuity(vlc_aout_stream *stream, block_t *block)
msg_Dbg(aout, "discontinuity: playing back %d blocks for a total length of "
"%"PRId64" us", count, length);
if (tracer != NULL)
vlc_tracer_TraceEvent(tracer, "RENDER", stream->str_id,
"discontinuity_play");
/* Play back all blocks past the discontinuity */
for (block_t *next; block != NULL; block = next)
{
......@@ -251,6 +265,11 @@ static int stream_HandleDiscontinuity(vlc_aout_stream *stream, block_t *block)
vlc_aout_stream_Play(stream, block);
}
if (tracer != NULL)
vlc_tracer_TraceEvent(tracer, "RENDER", stream->str_id,
"discontinuity_end");
return AOUT_DEC_SUCCESS;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment