Hi!

2011/5/12 Martin Hamant <[email protected]>:
> OKAY, my bad, sorry for the spam... I understand now !
> a dummy source should exist, simply because it has to exists.
> So simply add:
>
> output.dummy(blank())
>
> I did that the first time, but I forgot "-t" argument on the command line I
> was not able to connect to the telnet interface... So I detucted "it doesn't
> work" .... grrrr :)
>
> Thank you again Romain. I'll keep the list informed because I can feel this
> project could be a useful tool.

No problem, sorry for the silence, I was busy..

The dummy output is a silly requirement due to the fact that as for
now, liquidsoap does not start if it does not have at least one
output. However, this will probably change in the near future..

Thanks for your patience and don't hesitate to come back with more questions :)

Romain

>
>
> Le 12/05/2011 12:30, Martin Hamant a écrit :
>>
>> output in a output, it makes no sense, sorry :S
>>
>> I should be something more like
>>
>> out = output.dummy(blank())
>>
>> But really I am bit lost :D
>>
>> Le 12/05/2011 11:37, Martin Hamant a écrit :
>>>
>>> Hello Romain,
>>>
>>> Thank you for this detailed answer !
>>> I read the documentation section you specified
>>> (http://savonet.sourceforge.net/doc-svn/dynamic_sources.html)
>>> I tried a dry test by copy/paste of the code, adding a dummy source
>>> parameter like this:
>>>
>>> out = output.icecast(%mp3,
>>>                     host="test",
>>>                     password="hackme",
>>>                     fallible=true,
>>>                        output.dummy(blank()))
>>>
>>> Gives the following error
>>>
>>> At line 19, char 15:
>>>  this value has type
>>>    source(_) (infered at line 6 char 21 - line 10 char 25)
>>>  but it should be a subtype of
>>>    (_)->_
>>>
>>> What am I doing wrong ?
>>>
>>>
>>> Le 10/05/2011 17:05, Romain Beauxis a écrit :
>>>>
>>>> 2011/5/10 Martin Hamant<[email protected]>:
>>>>>
>>>>> Hi everybody,
>>>>
>>>> Hi Martin!
>>>>
>>>>> Here is the context of my questions: At our company SOUND4, we are
>>>>> designing professional broadcast sound cards (voice and FM processors).
>>>>> As our products are going to be driven by linux in a next future, I am
>>>>> looking for a simple method (ie: third party software, not packaged
>>>>> within our product) that would provide to our customer a way to add
>>>>> their own ice/shoutcast stream links from the computer which host the
>>>>> soundcard (the audio driver is alsa compliant).
>>>>
>>>> That sounds great!
>>>>
>>>>> By now we are pointing
>>>>> our customer to edcast, as they are using windows hosts - problem -
>>>>> such
>>>>> a software doesn't really exist in this way under linux... there are a
>>>>> few GUI like darksnow/darkice but it doesn't really do the trick: we
>>>>> need the customer to be able to add a output link in a dynamic way
>>>>> (without interupting, mostly). My first question is:
>>>>>
>>>>> - is there a way to give to liquidsoap a list of outputs (ie: a file)
>>>>> that would be checked periodically, and when a new output "server" is
>>>>> discovered in this file, a new connection is initiated to it.
>>>>
>>>> Yes! In the recent hg trunk, we have a support for dynamically
>>>> creating/destroying new sources and output. It is supported by the
>>>> scripting language so you may be able to fit it to your own needs. In
>>>> your case, it could be:
>>>>  * A regular tasks started using add_timeout that periodically checks
>>>> your file and behaves according to your convention
>>>> However, you may also implement it as a push:
>>>>  * When the client clics on a button, a telnet/server command is sent
>>>> to liquidsoap to create/destroy an output.
>>>>
>>>> There is some documentation online about this functionality there:
>>>>   http://savonet.sourceforge.net/doc-svn/dynamic_sources.html
>>>>
>>>>> - second, is there a way to get the network status of a given link  (on
>>>>> air time, last reconnection, transfer rate, used codec, server name).
>>>>
>>>> * On air: yes using on_metadata be notified of any new metadata on the
>>>> stream.
>>>>  * Is connected/Last reconnection: yes using the
>>>> on_{connect,disconnect} from output.icecast (or shoutcast) operators
>>>>  * Transfer rate: not for now I think
>>>>  * Used coded: if you mean it for an output, then the best is probably
>>>> to record that information when you create the output.
>>>>  * Server name: same answer as above :)
>>>>
>>>>> You'll understand, the need is a simple, provide to the user a  "add a
>>>>> shoutcast server" and "monitor the link" thing.
>>>>>
>>>>> I can feel liquidsoap could do that easily but I need starting tips.
>>>>> Then, I could do a simple interface to control all of that with some
>>>>> py/glade working (with time, because I am pretty new to python and
>>>>> object programming and i'll need to learn it).
>>>>
>>>> Well all of it sounds highly possible. Concerning the interface
>>>> between liquidsoap and your application, you have 3 choices:
>>>>  * Telnet server
>>>>  * Unix socket
>>>>  * HTTP server
>>>>
>>>> The telnet and http server require to open some network port and to
>>>> make sure they are protected from the evil global internet while the
>>>> Unix socket can be accessed locally and protected as done for regular
>>>> files.
>>>> The telnet/unix socket API was not initially meant for machine reading
>>>> but is not too hard to parse and should not change (we care about
>>>> backward compatibility). On the other hand, the HTTP server interface
>>>> has the advantage of being quite standard to implement in many
>>>> programming languages.
>>>> You may register your own telnet/server commands as well as HTTP
>>>> handles. With a recent hg, you can also export any language variable
>>>> to the JSON format, which makes it easier to parse in your
>>>> application..
>>>>
>>>> A couple of references:
>>>>   * http://savonet.sourceforge.net/doc-svn/server.html : Interaction
>>>> with telnet/unix socket
>>>>   * http://savonet.sourceforge.net/doc-svn/harbor_http.html :
>>>> interaction with the HTTP server
>>>>   * http://savonet.sourceforge.net/doc-svn/icy_metadata.html : you may
>>>> want to allow your user to manually update the metadatas of the output
>>>> stream. This can be one way to do it directly at the icecast/shoutcast
>>>> level. Otherwise, you may use insert_metadata.
>>>>
>>>>
>>>> Romain
>

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to