Hi Peter,

That's a long mail... I'll try to answer carefully even though it's a
late and busy time, as a "thank you" for your very serious feedback on
the alsa error issue :p

On Sat, Dec 4, 2010 at 9:23 PM, Peter Retep <[email protected]> wrote:
> Please let me know how you feel about this proposals, but important to me,
> if you have any idea how I could dynamically set streams as input sources.

I have answered your propositions below. The bottom line is that while
some requests are valid (and should be submitted as tickets for us to
do when we find some time) most are unlikely to be satisfied, and my
viewpoint is that you shouldn't be using playlist here. I'm not quite
sure what to propose... For example I'm a bit reluctant to say
source.dynamic() because it's still a bit new. Also it's not
user-friendly but it's not a big concern: the idea is that we provide
simple solid building blocks, used in scripting libraries to derive
more complex, custom blocks.

I know that it's frustrating but I often have to turn down proposals
to "make liquidsoap smarter". Smarter tools can be more confusing:
being smart is sometimes less important than being predictable. Also,
we have limited development time (these days I barely do any coding on
liquidsoap) and it's more important that we focus on simple robust
components than too many features that may become unmaintainable.

Coming back to your problem, we'll try to find a suitable solution.
But what do you need specifically? The ability to play a list of
streams and files? Waiting for the streams to stop to go to the next
file? Do you loop when the list is over, like a playlist? Perhaps,
when you need a stream there is no other item in the list? Could it
work with a fallback of a re-configurable input.http (this might be
already possible) and a normal playlist?

>  From my POV, the playlist function in using "normal" mode could be used
> as a much simpler interface than using queues with polling status,
> checking ids, dropping them in case of changes and swapping queues.

I totally agree that queues are difficult to use. But we'll see soon
some user-defined scripting mechanisms that wrap queues in ways that
makes them more usable for common workflows.

Now the specific points...

> 1)
> I did not get it run if playlist file contains a continous stream
> (maybe because stream download never ends?)

Yup, playlists play requests and requests are only meant for finite
files. I can't remember all the reasons right now, but in any case it
wouldn't be an easy change: streams just don't fit the current
infrastructure for requests.

> 2)
> I noticed, that playlist function does not resolve remote playlist files
> liquidsoap 
> 'out(playlist(reload=20,mode="normal","http://localhost/request.m3u";))'

That should work, but not if request.m3u contains file URIs. (Also,
obviously, what request.m3u refers to as local files may not be remote
once you've downloaded request.m3u on the liquidsoap host.)

> Support of unwrapping remote playlists and putting these entries as single 
> entries into liquidsoap's playlist would be really cool.

I agree that it would be cool. We've actually discussed similar
extensions but it's not as simple as it seems. You can file a ticket,
but I don't promise anything -- it doesn't look like a big priority.

> 3)
> playlist reload does seem to be executed during playing out a playlist entry.
> This makes it impossible to switching between entries that are (endless) 
> streams.

Invalid since entries are not supposed to be endless streams.

> 4)
> If playlist is reloaded then it starts from the beginning.
> This means if I add an entry in "normal" playmode then the playlist will 
> start from scratch again.

I guess we could detect if the playlist doesn't change at all after reloading...

> At least for "normal" mode it would be fine,
> if playlist would not be restarted in case that only entries after the 
> current playing have changed.

But you're already asking for more :p and the check will become more
expensive... There's a point where it might backfire if we do too much
stuff on potentially very long lists. Anyway, please file a ticket if
you really need it in the end, and we'll think about it carefully.

> 5)
> A good idea could be a explicit playlist reload function to trigger the 
> reload externally from the server interface.

It's already there, check the available server commands. It's called
<playlist_id>.reload. We also have a command for getting/setting the
current playlist URI.

> 6)
> Support of "file:///" protocol would be helpful. Many browsers support it.

Good point, file a ticket and we'll do it very easily.

> This could provide a common handling for URLs and files.

We already got one, files are really seen as special URLs. Requests
are all about URLs (URIs in fact). But they are still different from
streams.

> 7)
> Maybe same cause as 1) following did not work for me.
>   request.create("http://piradio.de:8765/radio";)

Same, yes.


Best regards,
-- 
David

------------------------------------------------------------------------------
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to