[campcaster-dev] First shot at JACK. Configuring
  • I compiled campcaster from SVN trunk today and it's running well.
    Though I can't find a way to tell it to use the JACK sink. I've been
    using the JACK sink for gstreamer-0.10 in Debian testing (lenny)
    between rhythmbox and darkice with great success, so I know the
    subsystem is working well.





    I'm assuming this is the section of configuration I need to change,
    though changing "default" to "jack", "JACK", "auto", and "autodetect"
    do nothing. I'm digging through source now, but some kind of
    authoritative word on how this configuration is passed to gstreamer
    would be nice to get into the wiki. FWIW, rhythmbox and the Gnome
    sound control panel don't need any configuration, they appear to
    perform an autodetect, which finds that jackd is running and passes
    that to gstreamer.

    Ideally, there would be a single campcaster client to JACK with six
    outputs.

    -lee
  • 10 Comments sorted by
  • Hi Lee,

    I am not able to solve your problem, but i can help you to find out.

    All of Gstreamer is done in the playlistExecutor moduler. What we play
    in Campcaster will be handled by the GstreamerPlayer. And being more
    specific the pipe-line is set in GstreamerPlayContext header file. For
    what i just have found out, the pipe-line is not well documented.

    http://code.campware.org/projects/campcaster/browser/trunk/campcaster/src/modules/playlistExecutor/src



    Frans van Berckel

    On Sat, 2008-03-15 at 20:24 -0400, Lee Azzarello wrote:
    > I compiled campcaster from SVN trunk today and it's running well.
    > Though I can't find a way to tell it to use the JACK sink. I've been
    > using the JACK sink for gstreamer-0.10 in Debian testing (lenny)
    > between rhythmbox and darkice with great success, so I know the
    > subsystem is working well.
    >
    >
    >
    >

    >
    > I'm assuming this is the section of configuration I need to change,
    > though changing "default" to "jack", "JACK", "auto", and "autodetect"
    > do nothing. I'm digging through source now, but some kind of
    > authoritative word on how this configuration is passed to gstreamer
    > would be nice to get into the wiki. FWIW, rhythmbox and the Gnome
    > sound control panel don't need any configuration, they appear to
    > perform an autodetect, which finds that jackd is running and passes
    > that to gstreamer.
    >
    > Ideally, there would be a single campcaster client to JACK with six
    > outputs.
    >
    > -lee
    >
  • Hi Lee,

    For what i have found out, maybe we can migrate for using osssink and
    alsasink to autoaudiosink.

    http://gstreamer.freedesktop.org/data/doc/gstreamer/0.10.0/gst-plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosink.html

    This is set in GstreamerPlayContext.h line 275.

    GstElement *sink = (oss ? gst_element_factory_make("osssink",
    NULL) : gst_element_factory_make("alsasink", NULL));

    But I do not know what got to be done by the audio device handling in
    line 279 in this case of migrating.

    g_object_set(G_OBJECT(sink), "device", m_audioDevice.c_str(),
    NULL);


    Frans van Berckel

    On Sun, 2008-03-16 at 08:59 +0000, Frans van Berckel wrote:
    > Hi Lee,
    >
    > I am not able to solve your problem, but i can help you to find out.
    >
    > All of Gstreamer is done in the playlistExecutor moduler. What we play
    > in Campcaster will be handled by the GstreamerPlayer. And being more
    > specific the pipe-line is set in GstreamerPlayContext header file. For
    > what i just have found out, the pipe-line is not well documented.
    >
    > http://code.campware.org/projects/campcaster/browser/trunk/campcaster/src/modules/playlistExecutor/src
    >
    >
    >
    > Frans van Berckel
  • Excellent, thanks for the help. I did figure out the keyword for JACK,
    it is simply, "jacksink". I'll look through changing the code to
    autoaudiosink, which seems to be what rhythmbox is doing.

    Another thing that I noticed is that there are a bunch of tarballs for
    gstreamer in campcaster SVN. Does this mean that the build process
    compiles and installs gstreamer? If so this might conflict with the
    version of gstreamer already installed by the operating system.

    -lee

    On Mar 16, 2008, at 7:44 AM, Frans van Berckel wrote:

    > Hi Lee,
    >
    > For what i have found out, maybe we can migrate for using osssink and
    > alsasink to autoaudiosink.
    >
    > http://gstreamer.freedesktop.org/data/doc/gstreamer/0.10.0/gst-plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosink.html
    >
    > This is set in GstreamerPlayContext.h line 275.
    >
    > GstElement *sink = (oss ? gst_element_factory_make("osssink",
    > NULL) : gst_element_factory_make("alsasink", NULL));
    >
    > But I do not know what got to be done by the audio device handling in
    > line 279 in this case of migrating.
    >
    > g_object_set(G_OBJECT(sink), "device", m_audioDevice.c_str(),
    > NULL);
    >
    >
    > Frans van Berckel
    >
    > On Sun, 2008-03-16 at 08:59 +0000, Frans van Berckel wrote:
    >> Hi Lee,
    >>
    >> I am not able to solve your problem, but i can help you to find out.
    >>
    >> All of Gstreamer is done in the playlistExecutor moduler. What we
    >> play
    >> in Campcaster will be handled by the GstreamerPlayer. And being more
    >> specific the pipe-line is set in GstreamerPlayContext header file.
    >> For
    >> what i just have found out, the pipe-line is not well documented.
    >>
    >> http://code.campware.org/projects/campcaster/browser/trunk/campcaster/src/modules/playlistExecutor/src
    >>
    >>
    >>
    >> Frans van Berckel
    >
  • Hi Lee,

    On Sun, 2008-03-16 at 15:37 -0400, Lee Azzarello wrote:
    > Excellent, thanks for the help. I did figure out the keyword for JACK,
    > it is simply, "jacksink". I'll look through changing the code to
    > autoaudiosink, which seems to be what rhythmbox is doing.

    It's jackaudiosink but glade to help. Please post your patch here.

    > Another thing that I noticed is that there are a bunch of tarballs for
    > gstreamer in campcaster SVN. Does this mean that the build process
    > compiles and installs gstreamer? If so this might conflict with the
    > version of gstreamer already installed by the operating system.

    True, but have a notice we changed/hacked the Gstreamer code while using
    it's 0.8 version. Now these day we do not patch Gstreamer any more. So
    we have in mind of taking it out. But we did not take de decision yet.

    There is a ticked created. In general we want to drop as much as
    possible library's from the tools directory as we can.

    http://code.campware.org/projects/campcaster/ticket/1492

    Some is already done.

    http://code.campware.org/projects/campcaster/ticket/1953


    Do you know how to drop Gstreamer?

    Thanks for using Campcaster and your idea's as well,


    Frans van Berckel

    
    > Excellent, thanks for the help. I did figure out the keyword for
    > JACK,
    > it is simply, "jacksink". I'll look through changing the code to
    > autoaudiosink, which seems to be what rhythmbox is doing.
    >
    > Another thing that I noticed is that there are a bunch of tarballs
    > for
    > gstreamer in campcaster SVN. Does this mean that the build process
    > compiles and installs gstreamer? If so this might conflict with the
    > version of gstreamer already installed by the operating system.
    >
    > -lee
  • Hi Lee,

    Thanks for your support.

    On Mon, 2008-03-24 at 21:46 -0400, Lee Azzarello wrote:
    > On Mar 16, 2008, at 4:36 PM, Frans van Berckel wrote:
    > > On Sun, 2008-03-16 at 15:37 -0400, Lee Azzarello wrote:
    > >> Excellent, thanks for the help. I did figure out the keyword for
    > >> JACK, it is simply, "jacksink". I'll look through changing the 
    > >> code to autoaudiosink, which seems to be what rhythmbox is doing.
    > >
    > > It's jackaudiosink but glade to help. Please post your patch here.
    >
    > Okay. I got a very very rudimentary patch. It is far from tested in
    > any case other than live mode playback but it does prove that the
    > autoaudiosink works with the current SVN trunk! I have to implement
    > some new configuration options to assign JACK connection graph names
    > for playout, preview and cue sound cards. Ideally all of this can be
    > configured via XML.

    XML for settings sound ok, take for example a look in products etc.

    * src/products/scheduler/etc
    * src/products/gLiveSupport/etc

    Maybe we've got to move some of these settings into a gstreamerPlayer or
    playlistExecutor settings file as well.

    > I replaced the configuration for osssink, since OSS is obsolete in the
    > 2.6 kernel and supports all of the same devices as ALSA last time I
    > heard. I haven't tested if the autoaudiosink will detect OSS or ALSA,
    > though that is how it's documented. If you enter the keyword "auto" as
    > the audio device it'll enable autodetect. Any other word will be
    > assumed to be an ALSA sound device name.

    Ok gonna test it with Alsa, but what does the ...

    g_object_set(G_OBJECT(sink), "device", m_audioDevice.c_str(), NULL);

    ... line do if you set auto, does it skip the one?


    Frans van Berckel

    On Mon, 2008-03-24 at 21:46 -0400, Lee Azzarello wrote:
    > On Mar 16, 2008, at 4:36 PM, Frans van Berckel wrote:
    >
    > > Hi Lee,
    > >
    > > On Sun, 2008-03-16 at 15:37 -0400, Lee Azzarello wrote:
    > >> Excellent, thanks for the help. I did figure out the keyword for
    > >> JACK, it is simply, "jacksink". I'll look through changing the
    > >> code to autoaudiosink, which seems to be what rhythmbox is doing.
    > >
    > > It's jackaudiosink but glade to help. Please post your patch here.
    >
    > Okay. I got a very very rudimentary patch. It is far from tested in
    > any case other than live mode playback but it does prove that the
    > autoaudiosink works with the current SVN trunk! I have to implement
    > some new configuration options to assign JACK connection graph names
    > for playout, preview and cue sound cards. Ideally all of this can be
    > configured via XML.
    >
    > I replaced the configuration for osssink, since OSS is obsolete in the
    > 2.6 kernel and supports all of the same devices as ALSA last time I
    > heard. I haven't tested if the autoaudiosink will detect OSS or ALSA,
    > though that is how it's documented. If you enter the keyword "auto" as
    > the audio device it'll enable autodetect. Any other word will be
    > assumed to be an ALSA sound device name.
    >
    > -lee
  • On Mar 25, 2008, at 3:14 PM, Frans van Berckel wrote:

    >
    >
    > g_object_set(G_OBJECT(sink), "device", m_audioDevice.c_str(), NULL);
    >
    > ... line do if you set auto, does it skip the one?

    I spent some time reading about the g_object_set() function and it
    seems like it's just an abstract Gnome thing to associate some key/
    value pairs. In the unmodified version m_audioDevice could be set to "/
    dev/dsp" or "default" or any other ALSA sound card name. Adding the
    word "auto" doesn't appear to effect any kind of functionality, rather
    it informs Gnome that the "device name" of the configured sink is
    labeled "auto".

    -lee
  • Hi Lee,

    I created a ticket in Campcaster trac, to have it all in one.

    http://code.campware.org/projects/campcaster/ticket/2296


    Frans van Berckel

    On Tue, 2008-03-25 at 16:17 -0400, Lee Azzarello wrote:
    > On Mar 25, 2008, at 3:14 PM, Frans van Berckel wrote:
    > >
    > >
    > > g_object_set(G_OBJECT(sink), "device", m_audioDevice.c_str(), NULL);
    > >
    > > ... line do if you set auto, does it skip the one?
    >
    > I spent some time reading about the g_object_set() function and it
    > seems like it's just an abstract Gnome thing to associate some key/
    > value pairs. In the unmodified version m_audioDevice could be set to "/
    > dev/dsp" or "default" or any other ALSA sound card name. Adding the
    > word "auto" doesn't appear to effect any kind of functionality, rather
    > it informs Gnome that the "device name" of the configured sink is
    > labeled "auto".
    >
    > -lee
    >
  • Hello Lee,

    If you try to use campcaster like an web radio and get the sound to send it to icecast server, please let me know, because i was follow the documentation but impossible to work fine.
    I run campcaster on ubuntu hardy platform everything look good but i can't grab the sound from campcaster to send it to jack.
    Jack end darkice work good but campcaster didn't see like a audio source in jack control.
    I use gstreamer0.10 installed from depots.
    Thanks


  • I gave up on campcaster a while ago. It's over engineered and too hard
    to work with from a software development perspective. It was created
    as a tool for a live FM radio station and the designers didn't account
    for the fact that live FM radio is a minority use-case for the medium.
    I've been tooling around with some designs for using XMMS2 and a
    Google calendar as a substitute scheduler, though it's low on my
    priority list. I have a blog at http://lee.rockingtiger.com if you
    want to see what projects I'm up to, though nothing radio-related
    right now.

    -lee

    On Sun, Apr 19, 2009 at 2:17 PM, wrote:
    > Author: magnec
    > Link: Add a Comment