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

Douglas McClendon dmc.lists at cloudsession.com
Thu Feb 24 01:53:57 PST 2011


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 at 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


More information about the gstreamer-devel mailing list