[vlc-devel] Pause streaming from the source and buffering to compensate

LANGLOIS Olivier PIS -EXT olivier.pis.langlois at transport.alstom.com
Tue Sep 25 23:25:35 CEST 2012


Remi,

I am really enjoying our exchange!

Considering pausing the streamer as a weird thing has been my first impression too until I have included the following into consideration:

1. How do you keep in sync dozens of clients when playback can be interrupted by async events beside doing it centrally? (network jittering and buffering are not really issues for us as we are in a LAN)
2. Old vlc players (0.9.8) were not exhibiting this behavior when pausing streamer
3. Why vlc itself is allowing weird actions when used as a streamer?

-----Original Message-----
From: Rémi Denis-Courmont [mailto:remi at remlab.net]
Sent: Tuesday, September 25, 2012 4:22 PM
To: LANGLOIS Olivier PIS -EXT
Cc: vlc-devel at videolan.org
Subject: Re: [vlc-devel] Pause streaming from the source and buffering to compensate

Le mardi 25 septembre 2012 22:46:40, LANGLOIS Olivier PIS -EXT a écrit :
> Remi,
>
> Thank you for your reply. I just want to clarify a small detail. I am
> not seeking a zero latency solution.
>
> My application is the streaming of a long sequence of mp4 files (playlist).
>
> Playback is smooth as long as you let streamer alone (vlc also). As
> soon as you pause/unpause the stream on the streamer side, you will
> get a 4-5 seconds playback freeze at the beginning of every video
> clip. This is the problem. If you reread my original post, what it is,
> it is my analysis of why this is happening. It should be very easy to
> reproduce with 2.0.3

You are not supposed to pause playback while streaming. Streaming protocols have no provisions for server-initiated pause. In fact, pausing on the sender will eventually trigger a timeout on the receiver and a complete failure, depending on the protocol(s) used.

> It occurs in src/input/es_out.c in the switch case for
>
>         case ES_OUT_SET_PCR:
>         case ES_OUT_SET_GROUP_PCR:

There certainly are a few problems with the ES output core. But mostly, there are lots of problems with the streaming output. It has hardly evolved from the proof-of-concept stage from 8 years ago (time flies...).

And then server-side pause were never "designed".

> It is fixed in my app as I have commented most of that block (of
> course this has led to other problems which had made me butcher some
> more vlc making my solution not friendly to the vlc general audience).
>
> To me having video playback freezing for more then 15% of the time is
> unacceptable. Feel free to disagree. I wanted to attract your
> attention to the issue. I am glad to see that feedback user is appreciated.

15% freeze in normal circumstances would certainly suck. 15% freeze while doing weird stuff at the sender side is not entirely unsurprising.

--
Rémi Denis-Courmont
http://www.remlab.net/

________________________________
CONFIDENTIALITY : This e-mail and any attachments are confidential and may be privileged. If you are not a named recipient, please notify the sender immediately and do not disclose the contents to another person, use it for any purpose or store or copy the information in any medium.


More information about the vlc-devel mailing list