[gst-devel] GST_DEBUG_BIN_TO_DOT_FILE doesn't show all elements.

wl2776 wl2776 at gmail.com
Tue Apr 6 11:21:04 CEST 2010


My media player uses playbin2. 
If I load a wav file into it, the result of the call
GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(m_player), GST_DEBUG_GRAPH_SHOW_ALL,
"player");
when m_player is in the playing state is this: 
http://n4.nabble.com/file/n1752600/player.png player.png (217kb)  , original
dot is this:  http://n4.nabble.com/file/n1752600/player.dot player.dot
(11Kb)  

Apparently, there are no any videosinks there.
However, I see messages 
"0:00:12.958634000  1716   003D9140 ERROR         directdrawsink
gstdirectdrawsink.c:887:gst_directdraw_sink_show_frame:<videosink> No buffer
to render.
"
in the debug window.

The creation code is the following:

m_loop = g_main_loop_new(NULL,FALSE);
m_player = gst_element_factory_make("playbin2","playbin0");
m_bus = gst_pipeline_get_bus(GST_PIPELINE(m_player));
gst_bus_enable_sync_message_emission(m_bus);
gst_bus_set_sync_handler (m_bus, (GstBusSyncHandler)gst_bus_sync_handler,
this);
gst_bus_add_watch (m_bus, bus_call, this);

if(!m_videosink){
  m_videosink = gst_element_factory_make("directdrawsink","videosink");
  if(m_videosink){
   
g_object_set(m_videosink,"sync",TRUE,"force-aspect-ratio",TRUE,"preroll-queue-len",1,NULL);
  if(!m_hwnd && m_parent)
    m_hwnd=m_parent->hwnd();

  if(m_hwnd)
    gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (m_videosink),m_hwnd);

  g_object_set(G_OBJECT(m_player),"video-sink",m_videosink,NULL);
}
gchar
*uri=g_filename_to_uri(g_convert(filename,-1,"UTF-8","CP1251",NULL,NULL,NULL),NULL,NULL);
if(uri){
  g_object_set(G_OBJECT(m_player),"uri",uri,NULL);
  g_free(uri);
}
m_loop_thread=g_thread_create((GThreadFunc)main_loop_run,this,FALSE,NULL)); 
GstStateChangeReturn
r=gst_element_set_state(GST_ELEMENT(m_player),GST_STATE_PLAYING);


error handling is omitted for brevity.

Then, bus-sync-handler waits for m_player to go to the PLAYING state, and,
when it does, calls
GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(m_player), GST_DEBUG_GRAPH_SHOW_ALL,
"player");

Is it a bug?

What should I do with the already created video sink, if I want to insert
additional elements to the playbin2 in order it can play sound and video
from the separate sources?

-- 
View this message in context: http://n4.nabble.com/GST-DEBUG-BIN-TO-DOT-FILE-doesn-t-show-all-elements-tp1752600p1752600.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.




More information about the gstreamer-devel mailing list