[vlc-devel] [RFC PATCH] playlist: don't open failing items in loop
remi at remlab.net
Wed May 25 11:05:29 CEST 2016
Le 2016-05-25 10:34, Thomas Guillem a écrit :
> On Tue, May 24, 2016, at 13:00, Rémi Denis-Courmont wrote:
>> Le 2016-05-24 11:09, Filip Roséen a écrit :
>> > One immediate reaction:
>> > * if we have a playlist set to loop that contains one item which
>> > result in ERROR_S, this patch will completely stop the playback -
>> > even
>> > if there are other playable items in the list.
>> >> If “Repeat All” or “Repeat current Item” option are set. The
>> >> same failing item will be opened in loop.
>> > This might be what most expect us to do.
>> > I do not think that looping items should depend on whether there
>> > an
>> > error when we try to play them, because there is nothing saying
>> > the error will remain next time we try to do it.
>> > We should trust that the user knows what it has asked us to do,
>> > even assume that any input that we are asked to play should be
>> > (even if this results in an error). Proving that the underlying
>> > bytestream does not change before the next time we theoretically
>> > would
>> > have played the item is impossible, and we can also not prove that
>> > access that fails one time, always will fail.
>> Yes, exactly.
>> And what users complain about is the poor UI handling of high error
>> rates, which renders the UI almost unusable. That issue lies in the
> I don't see how you can handle that in the GUI.
> In the playlist, you have all the informations to handle that case.
No, the playlist has hardly any useful information. On the one hand,
the playlist does not actually know what a failing item is (there are
different types of failures, and solving all is the halting problem),
nor if a failed item would still fail on retry. On the other hand, the
playlist handles live looping just fine; it is the Qt UI error dialog
that sucks at it very badly, not the playlist.
Both of these items work exactly the same for the playlist:
# vlc vlc://nop --loop
# vlc file:///does/not/exist --loop
The only difference is raising the error dialog. If you use the Lua RC
interface, for instance, it works fine in both cases.
More information about the vlc-devel