[vlc-commits] [Git][videolan/vlc][master] audio_output: decoder: remove clock reset on drain

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Thu Jul 14 14:56:54 UTC 2022



Felix Paul Kühne pushed to branch master at VideoLAN / VLC


Commits:
9a463265 by Alexandre Janniaux at 2022-07-14T14:45:13+00:00
audio_output: decoder: remove clock reset on drain

After commit 0dd8096f46a92b73c97b24d99d1ee5322f6bc50d made the drain
asynchronous, the clock at the end of the drain can be reset before the
end of the playback.

When finishing an input while draining asynchronously the audio and
video, it means that the clock can become invalidated and unusable if
the audio terminates before the video.

The video will then switch to the monotonic fallback, which is currently
not synchronized in offset with the master clock, and would lead to a
huge gap in time for the next picture being displayed, deferring as much
the draining of the video output.

The normal processing should be first to drain the decoder, and when
everything has been pushed, to first flush the decoder if a clock reset
is needed.

It was breaking the test_src_player::test_titles by randomly creating a
wait time of more than 90 seconds for the penultimate picture in the
video output, deferring the end of the test by that much. Now the clock
will stay valid with constant parameters until the end of all the
tracks.

Note that it does not fix the problem where the master clock has
finished, but we seek later in the file, which is a different
synchronization issue.

Fixes #27106

Co-authored-by: Thomas Guillem <thomas at gllm.fr>

- - - - -


1 changed file:

- src/audio_output/dec.c


Changes:

=====================================
src/audio_output/dec.c
=====================================
@@ -990,10 +990,4 @@ void vlc_aout_stream_Drain(vlc_aout_stream *stream)
         atomic_store_explicit(&stream->drain_deadline, drain_deadline,
                               memory_order_relaxed);
     }
-
-    vlc_clock_Reset(stream->sync.clock);
-    if (stream->filters)
-        aout_FiltersResetClock(stream->filters);
-
-    stream_Discontinuity(stream);
 }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/9a463265369622727f91512731d94a128c5b9fb1

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/9a463265369622727f91512731d94a128c5b9fb1
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list