[vlc-devel] [RFC PATCH 0/6] aout and vout drain

Thomas Guillem thomas at gllm.fr
Mon Mar 20 09:21:59 CET 2017



On Thu, Mar 16, 2017, at 19:41, Rémi Denis-Courmont wrote:
> On March 16, 2017 11:43:19 PM GMT+08:00, Thomas Guillem <thomas at gllm.fr>
> wrote:
> >* The 2 first patches replace the following patches
> >"[PATCH 1/2] vout: add vout_Drain()" and "[PATCH 2/2] decoder: drain
> >the vout".
> >This a much less invasive and more generic change for the same result.
> >
> >* Then, for the next 4 patches, I tried do do the same thing with
> >aouts: don't
> >block the decoder (or the input thread) while the aout is draining (we
> >may want
> >to pause, flush or stop while draining).
> >
> >I separated this change into 4 patches for more readability on the
> >mailing
> >list. If accepted, they should be merged into one, as each patches
> >change the
> >aout behavior (this will make a future git bisect difficult if it's not
> >merged).
> >
> >This set lacks the support of drain callback for amem and alsa, and
> >maybe some
> >others (I didn't check every aouts since it's only a RFC).
> >
> >
> >Thomas Guillem (6):
> >  decoder: don't finish while draining
> >  vout: fix vout_IsEmpty
> >  aout: don't wait from flush
> >  aout: add drain cb and a default implementation
> >  pulse: implement drain
> >  decoder: use asynchronous aout_DecDrain
> >
> > include/vlc_aout.h                      | 16 ++++--
> > modules/audio_output/adummy.c           |  4 +-
> > modules/audio_output/alsa.c             | 10 ++--
> > modules/audio_output/amem.c             | 17 ++++--
> > modules/audio_output/audiotrack.c       | 25 ++-------
> > modules/audio_output/audiounit_ios.m    |  2 +-
> > modules/audio_output/coreaudio_common.c | 24 +-------
> > modules/audio_output/file.c             |  5 +-
> > modules/audio_output/mmdevice.c         |  4 +-
> > modules/audio_output/mmdevice.h         | 11 +---
> > modules/audio_output/pulse.c            | 46 ++++++++++++---
> > modules/audio_output/sndio.c            |  5 +-
> > src/audio_output/aout_internal.h        | 11 +++-
> > src/audio_output/dec.c                  | 38 +++++++++----
> >src/audio_output/output.c               | 99
> >++++++++++++++++++++++++++++-----
> > src/input/decoder.c                     | 26 ++++-----
> > src/video_output/video_output.c         | 26 +++++++--
> > src/video_output/vout_internal.h        |  2 +
> > 18 files changed, 242 insertions(+), 129 deletions(-)
> >
> >-- 
> >2.11.0
> >
> >_______________________________________________
> >vlc-devel mailing list
> >To unsubscribe or modify your subscription options:
> >https://mailman.videolan.org/listinfo/vlc-devel
> 
> This was already discussed and rejected in the past. I am not aware of
> any new element that would justify revisiting this. In fact, aout
> blocking should work better than then, so there are even more reasons to
> NOT do nonblocking drain.

I can't find the discussion, I guess I was not in the project when this
discussion occurred. 

I'm OK to keep the current aout drain behavior for 3.0.

Should we discuss this subject again for next releases ? Is it OK to
block the input while draining the aout ? Even if it's not working now,
the airplay audio delay will be more than 2 seconds. Are we OK with that
?


> -- 
> Rémi Denis-Courmont
> _______________________________________________
> 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