jack and goom plugins together, possible? (erroneous pipeline, could not connect...)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

jack and goom plugins together, possible? (erroneous pipeline, could not connect...)

Douglas McClendon
I would very much like to be able to use gst to launch goom against a
particular jack port (or jack's system out, or even capture would be fine).

For testing purposes, I just launch jack as
'jackd -r -d dummy'

this works for me to launch goom(2k1) with gst against a bogus source

gst-launch -v audiotestsrc ! goom2k1 ! ffmpegcolorspace ! xvimagesink

but when I try what I think is the right thing

gst-launch -v jackaudiosrc ! goom2k1 ! ffmpegcolorspace ! xvimagesink

it gives

WARNING: erroneous pipeline: could not link jackaudiosrc0 to goom2k10

while a base test of jackaudiosrc does appear to work

[sysuser@sci-zyx ~]$ gst-launch -v jackaudiosrc connect=1 !
jackaudiosink connect=1
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0: actual-buffer-time
= 192000
/GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0:
actual-latency-time = 21333
/GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0.GstPad:src: caps =
audio/x-raw-float, endianness=(int)1234
, width=(int)32, rate=(int)48000, channels=(int)2,
channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANN
EL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
/GstPipeline:pipeline0/GstJackAudioSink:jackaudiosink0.GstPad:sink: caps
= audio/x-raw-float, endianness=(int)1
234, width=(int)32, rate=(int)48000, channels=(int)2,
channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CH
ANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >

-----------------

note that with --gst-debug=3, the failed goom launch gives-

...
...

0:00:00.034788030 15172  0x98a6050 INFO                GST_PADS
gstutils.c:1046:gst_pad_check_link: trying to link goom2k10:sink and
jackaudiosrc0:src
0:00:00.034808354 15172  0x98a6050 INFO                GST_PADS
gstutils.c:1061:gst_pad_check_link: Src pad goom2k10:sink is not source
pad, failed
0:00:00.034862761 15172  0x98a6050 INFO        GST_ELEMENT_PADS
gstutils.c:1209:gst_element_get_compatible_pad:<jackaudiosrc0> Could not
find a compatible pad to link to goom2k10:sink
0:00:00.034896215 15172  0x98a6050 ERROR           GST_PIPELINE
./grammar.y:614:gst_parse_perform_link: could not link jackaudiosrc0 to
goom2k10
0:00:00.034988127 15172  0x98a6050 INFO            GST_PIPELINE
./grammar.y:568:gst_parse_perform_link: linking goom2k10:(any) to
ffmpegcsp0:(any) (0/0) with caps "(NULL)"

...
...

Anyway, it seems maybe I should take libgoom or libvisual and just write
a jack app that bypasses gst, though perhaps using the gst goom plugin
code as a reference.

I would also like very much to be able to save goom output frames, i.e.
for a highrez post-facto video in addition to live visualization.  I
figure worst case I can see where the gst goom plugin is pushing a new
frame, and could save that out.  I wonder though if there is some
awesome extension to the gst-launch goom pipeline that could case video
frames to be saved, with audio too?

Thanks for any input and/or solutions, peace...

-dmc
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: jack and goom plugins together, possible? (erroneous pipeline, could not connect...)

Wim Taymans
On 02/24/2011 10:53 AM, Douglas McClendon wrote:

> I would very much like to be able to use gst to launch goom against a
> particular jack port (or jack's system out, or even capture would be
> fine).
>
> For testing purposes, I just launch jack as
> 'jackd -r -d dummy'
>
> this works for me to launch goom(2k1) with gst against a bogus source
>
> gst-launch -v audiotestsrc ! goom2k1 ! ffmpegcolorspace ! xvimagesink
>
> but when I try what I think is the right thing
>
> gst-launch -v jackaudiosrc ! goom2k1 ! ffmpegcolorspace ! xvimagesink

try

   gst-launch -v jackaudiosrc ! audioconvert ! goom2k1 !
ffmpegcolorspace ! xvimagesink

You can see that you need to convert when using gst-inspect on
jackaudiosrc and goom2k1
because jack outputs float samples and goom only accepts integer samples.

Wim


>
> it gives
>
> WARNING: erroneous pipeline: could not link jackaudiosrc0 to goom2k10
>
> while a base test of jackaudiosrc does appear to work
>
> [sysuser@sci-zyx ~]$ gst-launch -v jackaudiosrc connect=1 !
> jackaudiosink connect=1
> Setting pipeline to PAUSED ...
> /GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0:
> actual-buffer-time = 192000
> /GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0:
> actual-latency-time = 21333
> /GstPipeline:pipeline0/GstJackAudioSrc:jackaudiosrc0.GstPad:src: caps
> = audio/x-raw-float, endianness=(int)1234
> , width=(int)32, rate=(int)48000, channels=(int)2,
> channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANN
> EL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstAudioSrcClock
> /GstPipeline:pipeline0/GstJackAudioSink:jackaudiosink0.GstPad:sink:
> caps = audio/x-raw-float, endianness=(int)1
> 234, width=(int)32, rate=(int)48000, channels=(int)2,
> channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CH
> ANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
>
> -----------------
>
> note that with --gst-debug=3, the failed goom launch gives-
>
> ...
> ...
>
> 0:00:00.034788030 15172  0x98a6050 INFO                GST_PADS
> gstutils.c:1046:gst_pad_check_link: trying to link goom2k10:sink and
> jackaudiosrc0:src
> 0:00:00.034808354 15172  0x98a6050 INFO                GST_PADS
> gstutils.c:1061:gst_pad_check_link: Src pad goom2k10:sink is not
> source pad, failed
> 0:00:00.034862761 15172  0x98a6050 INFO        GST_ELEMENT_PADS
> gstutils.c:1209:gst_element_get_compatible_pad:<jackaudiosrc0> Could
> not find a compatible pad to link to goom2k10:sink
> 0:00:00.034896215 15172  0x98a6050 ERROR           GST_PIPELINE
> ./grammar.y:614:gst_parse_perform_link: could not link jackaudiosrc0
> to goom2k10
> 0:00:00.034988127 15172  0x98a6050 INFO            GST_PIPELINE
> ./grammar.y:568:gst_parse_perform_link: linking goom2k10:(any) to
> ffmpegcsp0:(any) (0/0) with caps "(NULL)"
>
> ...
> ...
>
> Anyway, it seems maybe I should take libgoom or libvisual and just
> write a jack app that bypasses gst, though perhaps using the gst goom
> plugin code as a reference.
>
> I would also like very much to be able to save goom output frames,
> i.e. for a highrez post-facto video in addition to live
> visualization.  I figure worst case I can see where the gst goom
> plugin is pushing a new frame, and could save that out.  I wonder
> though if there is some awesome extension to the gst-launch goom
> pipeline that could case video frames to be saved, with audio too?
>
> Thanks for any input and/or solutions, peace...
>
> -dmc
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel