That&#39;s the best I can determine so far at least by removing it.  I&#39;m writing a program using the ruby-gnome2 gstreamer bindings that captures video (v4l) and audio (standard soundcard), displays the video onscreen, loops the audio back out for monitoring, and records to disk using avi/wav.  I&#39;ll be glad to provide the code, but in consideration of everyone&#39;s time I&#39;ll provide the gstreamer pipeline I&#39;m first since I&#39;m sure its something simple I&#39;m not doing right.<div>
<br></div><div>My pipeline is separated into several bins and looks like this:</div><div><br></div><div>AudioBin: (source ghost pad to the tee src)</div><div><br></div><div>autoaudiosrc ! audio/x-raw-int ! level ! tee name=audiotee</div>
<div>audiotee ! autoaudiosink</div><div><br></div><div>VideoBin: (source ghost pad to the tee src)</div><div><br></div><div>v4l2src ! video/x-raw-yuv, format=(fourcc)YUY2, framerate=(fraction)30000/1001, width=(int)720, height=(int)480 ! videorate ! tee name=videotee</div>
<div>videotee ! xvimagesink<br clear="all"><br></div><div>RecorderBin: (audio and video sink pads linked to the audio queue and video queue respectively)</div><div><br></div><div>queue name=audioqueue ! avimux name=mux</div>
<div>queue name=videoqueue ! jpegenc ! mux ! filesink</div><div><br></div><div>AudioBin ! VideoBin ! RecorderBin</div><div><br></div><div>The (horrible mess) of code that does all this is as follows:</div><div><br></div><div>
<div>    @pipeline = Gst::Pipeline.new</div><div>    </div><div>    @audiobin = Gst::Bin.new()</div><div>    @<a href="http://audiobin.name">audiobin.name</a> = &quot;AudioBin&quot;</div><div>    </div><div>    @autoaudiosrc = Gst::ElementFactory.make(&quot;autoaudiosrc&quot;)</div>
<div>    @audiocaps = Gst::ElementFactory.make(&quot;capsfilter&quot;)</div><div>    @audiocaps.caps = Gst::Caps.parse(&quot;audio/x-raw-int&quot;)</div><div>    @level = Gst::ElementFactory.make(&quot;level&quot;)</div><div>
    @level.peak_ttl = 0</div><div>    @level.peak_falloff = 20</div><div>    @audiotee = Gst::ElementFactory.make(&quot;tee&quot;)</div><div>    @audiosink = Gst::ElementFactory.make(&quot;autoaudiosink&quot;)</div><div>    @audiobin.add(@autoaudiosrc)</div>
<div>    @audiobin.add(@audiocaps)</div><div>    @audiobin.add(@level)</div><div>    @audiobin.add(@audiotee)</div><div>    @audiobin.add(@audiosink)</div><div><br></div><div>    @autoaudiosrc &gt;&gt; @audiocaps &gt;&gt; @audiotee    </div>
<div>    @audiotee &gt;&gt; @level &gt;&gt; @audiosink</div><div><br></div><div>    @audiotee_src_pad = @audiotee.get_request_pad(&quot;src%d&quot;)</div><div>    @audiobin_ghost_pad = Gst::GhostPad.new(&#39;src&#39;, @audiotee_src_pad)</div>
<div>    @audiobin.add_pad(@audiobin_ghost_pad)</div><div><br></div><div>    @videobin = Gst::Bin.new()</div><div>    @<a href="http://videobin.name">videobin.name</a> = &quot;VideoBin&quot;</div><div><br></div><div>    @v4l2src = Gst::ElementFactory.make(&quot;v4l2src&quot;)</div>
<div>    @videocaps = Gst::ElementFactory.make(&quot;capsfilter&quot;)</div><div>    @videocaps.caps = Gst::Caps.parse(&quot;video/x-raw-yuv, format=(fourcc)YUY2, framerate=(fraction)30000/1001, width=(int)720, height=(int)480&quot;)</div>
<div>    @videorate = Gst::ElementFactory.make(&quot;videorate&quot;)</div><div>    @videotee = Gst::ElementFactory.make(&quot;tee&quot;)</div><div>    @videosink = Gst::ElementFactory.make(&quot;xvimagesink&quot;)</div><div>
    @videosink.set_xwindow_id(@video.window.xid)</div><div>    </div><div>    @videobin.add(@v4l2src)</div><div>    @videobin.add(@videocaps)</div><div>    @videobin.add(@videorate)</div><div>    @videobin.add(@videotee)</div>
<div>    @videobin.add(@videosink)</div><div><br></div><div>    @v4l2src &gt;&gt; @videocaps &gt;&gt; @videorate &gt;&gt; @videotee</div><div>    @videotee &gt;&gt; @videosink</div><div><br></div><div>    @videotee_src_pad = @videotee.get_request_pad(&quot;src%d&quot;)</div>
<div>    @videobin_ghost_pad = Gst::GhostPad.new(&#39;src&#39;,@videotee_src_pad)</div><div>    @videobin.add_pad(@videobin_ghost_pad)</div><div>    </div><div>    @recorderbin = Gst::Bin.new()</div><div>    @<a href="http://recorderbin.name">recorderbin.name</a> = &quot;RecorderBin&quot;</div>
<div><br></div><div>    @audioqueue = Gst::ElementFactory.make(&quot;queue&quot;)</div><div>    @videoqueue = Gst::ElementFactory.make(&quot;queue&quot;)</div><div>    @jpegenc = Gst::ElementFactory.make(&quot;jpegenc&quot;)</div>
<div>    @avimux = Gst::ElementFactory.make(&quot;avimux&quot;)</div><div>    @filesink = Gst::ElementFactory.make(&quot;filesink&quot;)</div><div>    @filesink.stop</div><div>    @filesink.location = &quot;test.avi&quot;</div>
<div><br></div><div>    @recorderbin.add(@audioqueue)</div><div>    @recorderbin.add(@videoqueue)</div><div>    @recorderbin.add(@jpegenc)</div><div>    @recorderbin.add(@avimux)</div><div>    @recorderbin.add(@filesink)</div>
<div>    </div><div>    @audioqueue &gt;&gt; @avimux</div><div>    @videoqueue &gt;&gt; @jpegenc &gt;&gt; @avimux</div><div>    @avimux &gt;&gt; @filesink</div><div>    </div><div>    @audioqueue_audio_sink_pad = @audioqueue.get_static_pad(&quot;sink&quot;)</div>
<div>    @recorderbin_audio_ghost_pad = Gst::GhostPad.new(&#39;audio&#39;, @audioqueue_audio_sink_pad)</div><div>    @recorderbin.add_pad(@recorderbin_audio_ghost_pad)</div><div><br></div><div>    @videoqueue_video_sink_pad = @videoqueue.get_static_pad(&quot;sink&quot;)</div>
<div>    @recorderbin_video_ghost_pad = Gst::GhostPad.new(&#39;video&#39;, @videoqueue_video_sink_pad)</div><div>    @recorderbin.add_pad(@recorderbin_video_ghost_pad)</div><div>    </div><div>    # add objects to the main pipeline</div>
<div>    @pipeline.add(@audiobin)</div><div>    @pipeline.add(@videobin)</div><div><br></div><div>    @pipeline.add(@recorderbin)</div><div>    </div><div>    @audiobin &gt;&gt; @recorderbin</div><div>    @videobin &gt;&gt; @recorderbin</div>
</div><div><br></div><div>Thanks for any help you can provide,</div><div> <br>Matt<br>
</div>