Hi Romain,

If one wants to listen to a playlist, one can use playlist(). Do not
forget than playlist() already supports remote playlists, and that the
playlist can point to remote files. This is fine most of the time, and
has been well supported for a long time.

The only limitation of playlist() is that it fully download a file
before playing it. That's a feature. But sometimes you want something
else, for example when playing a lastFM stream, because lastFM only
sends you the files at the listening rate.

So there is something new to do here, if you want. However, I'm not
sure that hacking input.http() is the best way. Currently, the
limitation is only a problem for lastFM. And for lastFM anyway, it
seems that you need something different than a complete playlist
support in input.http(). For example, you told me that one probably
had to refresh the playlist for every track, probably in advance. I'd
favor an approach where you re-use some code (at least Generator
sources and Http.sinks) but implement a distinct operator. This will
avoid messing up the input.http() parameters and behaviour.

Also, there is not much point in trying to use protocols here: first
you'd have to do things by yourself anyway to know whether you're
downloading a playlist or an audio file (which has to be treated
differently because it's a stream anyway). Then, implementing a
protocol to get a lastFM playlist doesn't look like such a good idea.
Would there be another way to use it except the lastfm streaming input
? For a regular playlist() or single() source, we already have a
lastFM protocol that retrieves a track.

To sum up...

On 9/4/07, Romain Beauxis <[EMAIL PROTECTED]> wrote:
> * input.http loops on the first song from any xml playlist, it should instead
> plays all files until possible and then reload the playlist and loop..

I don't think that input.http() should be changed. Playlist() does
what you describe.

> This would mostly lead to an even more generic input(uri) operator, that
> instead of trying to download and then play, would stream the uri...

Just do it for lastFM, don't bother more. By the way input.http() is a
good name, since it plays audio streamed over HTTP.

> Now for the strange and nasty bug, I still don't understand why liquidsoap
> fires an anonymous session init for lastfm when it starts.

My little finger tells me you just solved that one..

> Apart from those two points, I'm ok to start another test and release
> process...

Too late. Grin ;)
-- 
David

Répondre à