connect 2 'queue' 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"><<a href="http://gang.a.hu">gang.a.hu</a>@<a href="http://intel.com">intel.com</a>></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:<sdlvideosink0> 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:<mfldv4l2camsrc0> Setting pad mode: 1</div>
<div style="text-align: justify;">gst_cam_base_src_set_pad_mode:<mfldv4l2camsrc0> Set pad mode to 1</div>
<div style="text-align: justify;">gst_base_sink_change_state:<sdlvideosink0> READY to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_change_state:<sdlvideosink0> doing async state change</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<sdlvideosink0> Trying pull mode first</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<sdlvideosink0> pull mode disabled</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<sdlvideosink0> Falling back to push mode</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<sdlvideosink0> Success activating push mode</div>
<div style="text-align: justify;">gst_base_sink_change_state:<filesink0> READY to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_change_state:<filesink0> doing async state change</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<filesink0> Trying pull mode first</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<filesink0> pull mode disabled</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<filesink0> Falling back to push mode</div>
<div style="text-align: justify;">gst_base_sink_pad_activate:<filesink0> Success activating push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> vidsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> starting source of pad vidsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:<mfldv4l2camsrc0> negotiate of pad vidsrc</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> imgsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> starting source of pad imgsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:<mfldv4l2camsrc0> negotiate of pad imgsrc</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> vfsrc activating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> starting source of pad vfsrc</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> format: time, have size: 1, size: 18446744073709551615, duration: -1</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is seekable: 0</div>
<div style="text-align: justify;">gst_cam_base_src_start:<mfldv4l2camsrc0> is random_access: 0</div>
<div style="text-align: justify;">gst_cam_base_src_negotiate:<mfldv4l2camsrc0> negotiate of pad vfsrc</div>
<div style="text-align: justify;"> </div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:<mfldv4l2camsrc0> doing seek: (NULL)</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:<mfldv4l2camsrc0> seek with seqnum 19</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:<mfldv4l2camsrc0> segment configured from 0 to -1, position 0</div>
<div style="text-align: justify;">gst_cam_base_src_perform_seek:<mfldv4l2camsrc0> Sending newsegment from 0 to -1</div>
<div style="text-align: justify;">gst_cam_base_src_loop:<mfldv4l2camsrc0> next_ts 99:99:99.999999999 size 4096</div>
<div style="text-align: justify;">gst_cam_base_src_wait_playing:<mfldv4l2camsrc0> live source waiting for running state</div>
<div style="text-align: justify;">gst_base_sink_query_latency:<sdlvideosink0> we are not yet ready for LATENCY query</div>
<div style="text-align: justify;">gst_base_sink_query_latency:<sdlvideosink0> latency query failed and we are live</div>
<div style="text-align: justify;">gst_base_sink_query:<sdlvideosink0> query latency returns 0</div>
<div style="text-align: justify;">gst_base_sink_query_latency:<filesink0> we are not yet ready for LATENCY query</div>
<div style="text-align: justify;">gst_base_sink_query_latency:<filesink0> latency query failed but we are not live</div>
<div style="text-align: justify;">gst_base_sink_query_latency:<filesink0> 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:<filesink0> query latency returns 1</div>
<div style="text-align: justify;">gst_cam_base_src_change_state:<mfldv4l2camsrc0> PAUSED->PLAYING</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> unschedule clock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> live running 1</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> unlock stop</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> signal</div>
<div style="text-align: justify;">gst_cam_base_src_wait_playing:<mfldv4l2camsrc0> live source unlocked</div>
<div style="text-align: justify;">gst_cam_base_src_get_range:<mfldv4l2camsrc0> calling create offset 18446744073709551615 length 4096, time 0</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:<mfldv4l2camsrc0> no latency needed, live 1, sync 0</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:<mfldv4l2camsrc0> startup timestamp: 0:00:00.299494749, running_time 0:00:00.332892825</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:<mfldv4l2camsrc0> no timestamp offset needed</div>
<div style="text-align: justify;">gst_cam_base_src_do_sync:<mfldv4l2camsrc0> no sync needed</div>
<div style="text-align: justify;">gst_cam_base_src_get_range:<mfldv4l2camsrc0> buffer ok</div>
<div style="text-align: justify;">gst_base_sink_event:<sdlvideosink0> received event 0x8f49f68 newsegment event from 'vfsrc' 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:<sdlvideosink0> newsegment 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_configure_segment:<sdlvideosink0> 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:<sdlvideosink0> now 0 prerolled items</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:<sdlvideosink0> need more preroll data 0 <= 0</div>
<div style="text-align: justify;">gst_base_sink_chain_unlocked:<sdlvideosink0> got times start: 0:00:00.299494749, end: 0:00:00.332828082</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:<sdlvideosink0> now 1 prerolled items</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:<sdlvideosink0> prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:<sdlvideosink0> preroll buffer 0:00:00.299494749</div>
<div style="text-align: justify;">st_base_sink_set_last_buffer_unlocked:<sdlvideosink0> setting last buffer to 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_commit_state:<sdlvideosink0> commiting state to PAUSED</div>
<div style="text-align: justify;">gst_base_sink_commit_state:<sdlvideosink0> posting PAUSED state change message</div>
<div style="text-align: justify;">gst_base_sink_commit_state:<sdlvideosink0> posting async-done message</div>
<div style="text-align: justify;">gst_base_sink_queue_object_unlocked:<sdlvideosink0> rendering queued object 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_do_sync:<sdlvideosink0> non syncable object 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_render_object:<sdlvideosink0> rendering event 0x8f49f68, type newsegment</div>
<div style="text-align: justify;">gst_base_sink_render_object:<sdlvideosink0> Got seqnum #19</div>
<div style="text-align: justify;">gst_base_sink_configure_segment:<sdlvideosink0> 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:<sdlvideosink0> object unref after render 0x8f49f68</div>
<div style="text-align: justify;">gst_base_sink_get_sync_times:<sdlvideosink0> 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:<sdlvideosink0> prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_preroll_object:<sdlvideosink0> prerolling object 0x8ddf300</div>
<div style="text-align: justify;">gst_base_sink_wait_preroll:<sdlvideosink0> waiting in preroll for flush or PLAYING</div>
<div style="text-align: justify;">3:gst_cam_base_src_event_handler:<mfldv4l2camsrc0> Hanlde event of pad vfsrc</div>
<div style="text-align: justify;">1:gst_cam_base_src_default_event:<mfldv4l2camsrc0> handle event navigation event from 'src' 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:<mfldv4l2camsrc0> Hanlde event of pad vfsrc</div>
<div style="text-align: justify;"> </div>
<div style="text-align: justify;">gst_cam_base_src_change_state:<mfldv4l2camsrc0> PLAYING->PAUSED</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> unlock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> unschedule clock</div>
<div style="text-align: justify;">gst_cam_base_src_set_playing:<mfldv4l2camsrc0> live running 0</div>
<div style="text-align: justify;">gst_base_sink_set_flushing:<sdlvideosink0> flushing out data thread, need preroll to TRUE</div>
<div style="text-align: justify;">gst_base_sink_preroll_queue_flush:<sdlvideosink0> flushing queue 0x8e8c0a0</div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_wait_preroll:<sdlvideosink0> preroll interrupted because of flush</b></font></div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_do_preroll:<sdlvideosink0> preroll failed -2</b></font></div>
<div style="text-align: justify;"><font size="4"><b>gst_base_sink_do_sync:<sdlvideosink0> preroll failed</b></font></div>
<div style="text-align: justify;">gst_base_sink_render_object:<sdlvideosink0> do_sync returned wrong-state</div>
<div style="text-align: justify;">gst_base_sink_render_object:<sdlvideosink0> object unref after render 0x8ddf300</div>
<div style="text-align: justify;">gst_cam_base_src_loop:<mfldv4l2camsrc0> pausing after gst_pad_push() to vfpad = wrong-state</div>
<div style="text-align: justify;">gst_cam_base_src_loop:<mfldv4l2camsrc0> pausing task, reason wrong-state</div>
<div style="text-align: justify;">st_base_sink_set_last_buffer_unlocked:<sdlvideosink0> setting last buffer to (nil)</div>
<div style="text-align: justify;">gst_base_sink_change_state:<sdlvideosink0> PAUSED to READY, don't need_preroll</div>
<div style="text-align: justify;">gst_base_sink_set_flushing:<filesink0> flushing out data thread, need preroll to TRUE</div>
<div style="text-align: justify;">gst_base_sink_preroll_queue_flush:<filesink0> flushing queue 0x8e86288</div>
<div style="text-align: justify;">gst_base_sink_change_state:<filesink0> PAUSED to READY, posting async-done</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_activate_push:<mfldv4l2camsrc0> Deactivating in push mode</div>
<div style="text-align: justify;">gst_cam_base_src_stop:<mfldv4l2camsrc0> stopping source</div>
<div style="text-align: justify;">gst_cam_base_src_change_state:<mfldv4l2camsrc0> 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>