[gst-devel] Two alsasrc in the one pipeline

Vitaly Mayatskih v.mayatskih at gmail.com
Wed Jul 4 08:38:57 CEST 2007


I need to mix streams from two soundcards and mux it with some video. I have
built a sample pipeline with one soundcard and it works fine:

gst-launch -v videotestsrc num-buffers=100 ! ffmpegcolorspace !
ffdeinterlace ! tee name="tee0" ! fakesink
\
    tee0. ! queue ! ffenc_h263p ! tee name="tee1" ! fakesink
\

    tee1. ! queue ! matroskamux name="mux" ! filesink location="/tmp/1.mkv"
\

    alsasrc device="hw:0" ! "audio/x-raw-int,width=16,rate=48000,channels=2"
! adder name="mix"
\
    ! tee name="tee2" ! ffenc_ac3 ! tee name="tee3" !
"audio/x-ac3,width=16,rate=48000,channels=2" ! mux.
\
    tee3. ! queue ! fakesink

When I add second card (even without linking to the 'adder' element) then
pipeline stops

    alsasrc device="hw:1" ! "audio/x-raw-int,width=16,rate=48000,channels=2"
! fakesink

The error is:

Setting pipeline to PLAYING ...
0:00:00.231934000 15579 0x804f050 WARN              pipeline
gstpipeline.c:568:gst_pipeline_change_state:<pipeline0>
error: Selected clock cannot be used in pipeline.
0:00:00.232189000 15579 0x804f050 WARN              pipeline
gstpipeline.c:568:gst_pipeline_change_state:<pipeline0>
error: Pipeline cannot operate with selected clock
ERROR: pipeline doesn't want to play

In my C-program I have to manually set pipeline's clock (got it from
alsasrc) and it works, but I don't know how to work correctly with two
alsasrcs.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070704/723dfe4b/attachment.htm>


More information about the gstreamer-devel mailing list