connect 2 &#39;queue&#39; elements after camera element.<br><br>BR,<br>Praveen Pandey<br><br><div class="gmail_quote">On Thu, Jan 13, 2011 at 9:39 PM, Hu, Gang A <span dir="ltr">&lt;<a href="http://gang.a.hu">gang.a.hu</a>@<a href="http://intel.com">intel.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">






<div>
<font face="Calibri, sans-serif" size="2">
<div style="text-align: justify;">Hi,</div>
<div style="text-align: justify;"> I am developing a three pads camera source element. I created this element based on GstBaseSrc, and add another two pads to GstBaseSrc and created a new basesrc in my camera source. </div>

<div style="text-align: justify;">My currently design is the vfsrc pad always has data flow. Another copy of data flow will be image or video depends on the mode setting to the camera source.</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
<div style="text-align: justify;">This pipeline is working now.</div>
<div style="text-align: justify;">gst-launch -ev mfldv4l2camsrc num-buffers=2 .vfsrc ! video/x-raw-yuv,width=640,height=480 ! sdlvideosink</div>
<div style="text-align: justify;"> </div>
<div style="text-align: justify;">But if I want use the imgpad,</div>
<div style="text-align: justify;">gst-launch -ev mfldv4l2camsrc num-buffers=2 name=aa  .imgsrc ! video/x-raw-yuv,width=640,height=480 ! fakesink  aa.vfsrc ! video/x-raw-yuv,width=640,height=480 ! sdlvideosink</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
<div style="text-align: justify;"> the pipeline will stop at waiting for playing.</div>
<div style="text-align: justify;">gst_base_sink_wait_preroll:&lt;sdlvideosink0&gt; waiting in preroll for flush or PLAYING</div>
<div style="text-align: justify;">cat</div>
<div style="text-align: justify;">What is the potential issue? </div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
<div style="text-align: justify;">This is my source code repository:</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"><a href="http://meego.gitorious.org/maemo-multimedia/mfldv4l2camsrc/commits/camerabin2" target="_blank"><font color="#0000ff" face="Calibri, sans-serif"><u>http://meego.gitorious.org/maemo-multimedia/mfldv4l2camsrc/commits/camerabin2</u></font></a></font></div>

<div style="text-align: justify;">This is the some of the log of the basesrc anb basesink.</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
<div style="text-align: justify;">gst_cam_base_src_init: creating vfsrc pad</div>
<div style="text-align: justify;">gst_cam_base_src_init: creating imgsrc pad</div>
<div style="text-align: justify;">gst_cam_base_src_init: creating vidsrc pad</div>
<div style="text-align: justify;">gst_cam_base_src_init: setting functions on src pad</div>
<div style="text-align: justify;">gst_cam_base_src_init: adding three src pads</div>
<div style="text-align: justify;">gst_cam_base_src_init: init done</div>
<div style="text-align: justify;">gst_cam_base_src_set_property:&lt;mfldv4l2camsrc0&gt; Setting pad mode: 1</div>
<div style="text-align: justify;">gst_cam_base_src_set_pad_mode:&lt;mfldv4l2camsrc0&gt; Set pad mode to 1</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;sdlvideosink0&gt; READY to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;sdlvideosink0&gt; doing async state change</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;sdlvideosink0&gt; Trying pull mode first</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;sdlvideosink0&gt; pull mode disabled</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;sdlvideosink0&gt; Falling back to push mode</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;sdlvideosink0&gt; Success activating push mode</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;filesink0&gt; READY to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;filesink0&gt; doing async state change</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;filesink0&gt; Trying pull mode first</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;filesink0&gt; pull mode disabled</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;filesink0&gt; Falling back to push mode</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:&lt;filesink0&gt; Success activating push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; vidsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; starting source of pad vidsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:&lt;mfldv4l2camsrc0&gt; negotiate of pad vidsrc</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; imgsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; starting source of pad imgsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:&lt;mfldv4l2camsrc0&gt; negotiate of pad imgsrc</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; vfsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; starting source of pad vfsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:&lt;mfldv4l2camsrc0&gt; is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:&lt;mfldv4l2camsrc0&gt; negotiate of pad vfsrc</div>
<div style="text-align: justify;"> </div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:&lt;mfldv4l2camsrc0&gt; doing seek: (NULL)</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:&lt;mfldv4l2camsrc0&gt; seek with seqnum 19</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:&lt;mfldv4l2camsrc0&gt; segment configured from 0 to -1, position 0</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:&lt;mfldv4l2camsrc0&gt; Sending newsegment from 0 to -1</div>
<div style="text-align: justify;">gst_cam_base_src_loop:&lt;mfldv4l2camsrc0&gt; next_ts 99:99:99.999999999 size 4096</div>
<div style="text-align: justify;">gst_cam_base_src_wait_playing:&lt;mfldv4l2camsrc0&gt; live source waiting for running state</div>
<div style="text-align: justify;">gst_base_sink_query_latency:&lt;sdlvideosink0&gt; we are not yet ready for LATENCY query</div>
<div style="text-align: justify;">gst_base_sink_query_latency:&lt;sdlvideosink0&gt; latency query failed and we are live</div>
<div style="text-align: justify;">gst_base_sink_query:&lt;sdlvideosink0&gt; query latency returns 0</div>
<div style="text-align: justify;">gst_base_sink_query_latency:&lt;filesink0&gt; we are not yet ready for LATENCY query</div>
<div style="text-align: justify;">gst_base_sink_query_latency:&lt;filesink0&gt; latency query failed but we are not live</div>
<div style="text-align: justify;">gst_base_sink_query_latency:&lt;filesink0&gt; latency query: live: 0, have_latency 0, upstream: 0, min 0:00:00.000000000, max 99:99:99.999999999</div>
<div style="text-align: justify;">gst_base_sink_query:&lt;filesink0&gt; query latency returns 1</div>
<div style="text-align: justify;">gst_cam_base_src_change_state:&lt;mfldv4l2camsrc0&gt; PAUSED-&gt;PLAYING</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; unschedule clock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; live running 1</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; unlock stop</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; signal</div>
<div style="text-align: justify;">gst_cam_base_src_wait_playing:&lt;mfldv4l2camsrc0&gt; live source unlocked</div>
<div style="text-align: justify;">gst_cam_base_src_get_range:&lt;mfldv4l2camsrc0&gt; calling create offset 18446744073709551615 length 4096, time 0</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:&lt;mfldv4l2camsrc0&gt; no latency needed, live 1, sync 0</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:&lt;mfldv4l2camsrc0&gt; startup timestamp: 0:00:00.299494749, running_time 0:00:00.332892825</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:&lt;mfldv4l2camsrc0&gt; no timestamp offset needed</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:&lt;mfldv4l2camsrc0&gt; no sync needed</div>
<div style="text-align: justify;">gst_cam_base_src_get_range:&lt;mfldv4l2camsrc0&gt; buffer ok</div>
<div style="text-align: justify;">gst_base_sink_event:&lt;sdlvideosink0&gt; received event 0x8f49f68 newsegment event from &#39;vfsrc&#39; at time 99:99:99.999999999: GstEventNewsegment, update=(boolean)false, rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME,
start=(gint64)0, stop=(gint64)-1, position=(gint64)0;</div>
<div style="text-align: justify;">gst_base_sink_event:&lt;sdlvideosink0&gt; newsegment 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_configure_segment:&lt;sdlvideosink0&gt; configured NEWSEGMENT update 0, rate 1.000000, applied rate 1.000000, format GST_FORMAT_TIME, 0:00:00.000000000 -- 99:99:99.999999999, time 0:00:00.000000000, accum 0:00:00.000000000</div>

<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:&lt;sdlvideosink0&gt; now 0 prerolled items</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:&lt;sdlvideosink0&gt; need more preroll data 0 &lt;= 0</div>
<div style="text-align: justify;">gst_base_sink_chain_unlocked:&lt;sdlvideosink0&gt; got times start: 0:00:00.299494749, end: 0:00:00.332828082</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:&lt;sdlvideosink0&gt; now 1 prerolled items</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:&lt;sdlvideosink0&gt; prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:&lt;sdlvideosink0&gt; preroll buffer 0:00:00.299494749</div>
<div style="text-align: justify;">st_base_sink_set_last_buffer_unlocked:&lt;sdlvideosink0&gt; setting last buffer to 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_commit_state:&lt;sdlvideosink0&gt; commiting state to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_commit_state:&lt;sdlvideosink0&gt; posting PAUSED state change message</div>
<div style="text-align: justify;">gst_base_sink_commit_state:&lt;sdlvideosink0&gt; posting async-done message</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:&lt;sdlvideosink0&gt; rendering queued object 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_do_sync:&lt;sdlvideosink0&gt; non syncable object 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_render_object:&lt;sdlvideosink0&gt; rendering event 0x8f49f68, type newsegment</div>
<div style="text-align: justify;">gst_base_sink_render_object:&lt;sdlvideosink0&gt; Got seqnum #19</div>
<div style="text-align: justify;">gst_base_sink_configure_segment:&lt;sdlvideosink0&gt; configured NEWSEGMENT update 0, rate 1.000000, applied rate 1.000000, format GST_FORMAT_TIME, 0:00:00.000000000 -- 99:99:99.999999999, time 0:00:00.000000000, accum 0:00:00.000000000</div>

<div style="text-align: justify;">gst_base_sink_render_object:&lt;sdlvideosink0&gt; object unref after render 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_get_sync_times:&lt;sdlvideosink0&gt; got times start: 0:00:00.299494749, stop: 0:00:00.332828082, do_sync 1</div>
<div style="text-align: justify;">gst_base_sink_do_preroll:&lt;sdlvideosink0&gt; prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:&lt;sdlvideosink0&gt; prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_wait_preroll:&lt;sdlvideosink0&gt; waiting in preroll for flush or PLAYING</div>
<div style="text-align: justify;">3:gst_cam_base_src_event_handler:&lt;mfldv4l2camsrc0&gt; Hanlde event of pad vfsrc</div>
<div style="text-align: justify;">1:gst_cam_base_src_default_event:&lt;mfldv4l2camsrc0&gt; handle event navigation event from &#39;src&#39; at time 99:99:99.999999999: application/x-gst-navigation, event=(string)mouse-move, button=(int)0, pointer_x=(double)639, pointer_y=(double)179;</div>

<div style="text-align: justify;">gst_cam_base_src_event_handler:&lt;mfldv4l2camsrc0&gt; Hanlde event of pad vfsrc</div>
<div style="text-align: justify;"> </div>
<div style="text-align: justify;">gst_cam_base_src_change_state:&lt;mfldv4l2camsrc0&gt; PLAYING-&gt;PAUSED</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; unlock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; unschedule clock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:&lt;mfldv4l2camsrc0&gt; live running 0</div>
<div style="text-align: justify;">gst_base_sink_set_flushing:&lt;sdlvideosink0&gt; flushing out data thread, need preroll to TRUE</div>
<div style="text-align: justify;">gst_base_sink_preroll_queue_flush:&lt;sdlvideosink0&gt; flushing queue 0x8e8c0a0</div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_wait_preroll:&lt;sdlvideosink0&gt; preroll interrupted because of flush</b></font></div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_do_preroll:&lt;sdlvideosink0&gt; preroll failed -2</b></font></div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_do_sync:&lt;sdlvideosink0&gt; preroll failed</b></font></div>
<div style="text-align: justify;">gst_base_sink_render_object:&lt;sdlvideosink0&gt; do_sync returned wrong-state</div>
<div style="text-align: justify;">gst_base_sink_render_object:&lt;sdlvideosink0&gt; object unref after render 0x8ddf300</div>
<div style="text-align: justify;">gst_cam_base_src_loop:&lt;mfldv4l2camsrc0&gt; pausing after gst_pad_push() to vfpad = wrong-state</div>
<div style="text-align: justify;">gst_cam_base_src_loop:&lt;mfldv4l2camsrc0&gt; pausing task, reason wrong-state</div>
<div style="text-align: justify;">st_base_sink_set_last_buffer_unlocked:&lt;sdlvideosink0&gt; setting last buffer to (nil)</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;sdlvideosink0&gt; PAUSED to READY, don&#39;t need_preroll</div>
<div style="text-align: justify;">gst_base_sink_set_flushing:&lt;filesink0&gt; flushing out data thread, need preroll to TRUE</div>
<div style="text-align: justify;">gst_base_sink_preroll_queue_flush:&lt;filesink0&gt; flushing queue 0x8e86288</div>
<div style="text-align: justify;">gst_base_sink_change_state:&lt;filesink0&gt; PAUSED to READY, posting async-done</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:&lt;mfldv4l2camsrc0&gt; Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_stop:&lt;mfldv4l2camsrc0&gt; stopping source</div>
<div style="text-align: justify;">gst_cam_base_src_change_state:&lt;mfldv4l2camsrc0&gt; Sending EOS event</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
<div style="text-align: justify;">Thanks.</div>
<div style="text-align: justify;"><font face="Times New Roman, serif"> </font></div>
</font>
</div>

<br>------------------------------------------------------------------------------<br>
Protect Your Site and Customers from Malware Attacks<br>
Learn about various malware tactics and how to avoid them. Understand<br>
malware threats, the impact they can have on your business, and how you<br>
can protect your company and customers by using code signing.<br>
<a href="http://p.sf.net/sfu/oracle-sfdevnl" target="_blank">http://p.sf.net/sfu/oracle-sfdevnl</a><br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br>