[vlc-devel] [PATCH 1/2] es_out: ask for decoder drain on es_out_Del

Steve Lhomme robux4 at gmail.com
Fri Jul 28 17:40:16 CEST 2017


On Fri, Jul 28, 2017 at 5:06 PM, Francois Cartegnie <fcvlcdev at free.fr> wrote:
> because when the es deletion is triggered by
> demuxer and not on EOF, it enters a dead loop
> waiting for input_DecoderIsEmpty (p_owner->drained).
> non set p_owner->draining can't trigger p_owner->drained.

Doesn't that mean the remaining data for that ES that are not yet
decoder/rendered will be lost ? That doesn't seem right for gapless
playback.

> ---
>  src/input/es_out.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/input/es_out.c b/src/input/es_out.c
> index 6a2e1cd..1e191d8 100644
> --- a/src/input/es_out.c
> +++ b/src/input/es_out.c
> @@ -2114,6 +2114,7 @@ static void EsOutDel( es_out_t *out, es_out_id_t *es )
>      {   /* FIXME: This might hold the ES output caller (i.e. the demux), and
>           * the corresponding thread (typically the input thread), for a little
>           * bit too long if the ES is deleted in the middle of a stream. */
> +        input_DecoderDrain( es->p_dec );
>          while( !input_Stopped(p_sys->p_input) && !p_sys->b_buffering )
>          {
>              if( input_DecoderIsEmpty( es->p_dec ) &&
> --
> 2.9.4
>
> _______________________________________________
> 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