<div dir="ltr">The GST_DEBUG shows me that the states are changing but I still do not see the messages.<br>Also None of my queries seem to work. (Duration, Position) It seems like there is an issue<br>with the gmainloop or something.<br>
<br>Here is the code that creates the pipe.<br><br>__declspec(dllexport) gboolean video_pipeline_construct_ts (const gchar *uri)<br>{<br>&nbsp;&nbsp;&nbsp; GstState state;<br>&nbsp;&nbsp;&nbsp; GstEleemnt *pipe;<br>&nbsp;&nbsp;&nbsp; GstElement *videosink;<br>&nbsp;&nbsp;&nbsp; GstElement *filesrc;<br>
&nbsp;&nbsp;&nbsp; GstElement *demux;<br>&nbsp;&nbsp;&nbsp; GstElement *Decode;<br>&nbsp;&nbsp;&nbsp; GstElement *ColorSpace;<br>&nbsp;&nbsp;&nbsp; GstElement *MultiQueue;<br>&nbsp;&nbsp;&nbsp; GstBus *bus;<br>&nbsp;&nbsp;&nbsp; GstPad *pad;<br><br>&nbsp;&nbsp;&nbsp; pipe = NULL;<br><br>&nbsp;&nbsp;&nbsp; pipe = gst_pipeline_new(&quot;Pipe&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; g_return_val_if_fail (pipe != NULL, FALSE);<br><br>&nbsp;&nbsp;&nbsp; videosink= gst_element_factory_make (&quot;xvimagesink&quot;, &quot;videosink&quot;);<br>&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(videosink))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************videosink == NULL!&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; filesrc = gst_element_factory_make(&quot;filesrc&quot;,&quot;source1&quot;);<br>&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(filesrc))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************filesrc == NULL!&quot;);<br><br>&nbsp;&nbsp;&nbsp; demux = gst_element_factory_make(&quot;flutsdemux&quot;,&quot;demux&quot;);<br>
&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(demux))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************flutsdemux == NULL!&quot;);<br><br>&nbsp;&nbsp;&nbsp; Decode= gst_element_factory_make(&quot;decodebin&quot;,&quot;decoder&quot;);<br>&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(Decode))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************Decode == NULL!&quot;);<br><br>&nbsp;&nbsp;&nbsp; ColorSpace = gst_element_factory_make(&quot;ffmpegcolorspace&quot;,&quot;colorspace&quot;);<br>&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(ColorSpace))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************ColorSpace == NULL!&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; MultiQueue = gst_element_factory_make(&quot;multiqueue&quot;,&quot;multiqueue&quot;);<br>&nbsp;&nbsp;&nbsp; if(!G_IS_OBJECT(MultiQueue))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_warning(&quot;****************MultiQueue == NULL!&quot;);<br><br>&nbsp;&nbsp;&nbsp; g_signal_connect (demux, &quot;pad-added&quot;, G_CALLBACK (new_demux_pad), player);<br>
<br>&nbsp;&nbsp;&nbsp; g_signal_connect (MultiQueue, &quot;pad-added&quot;, G_CALLBACK (new_multiqueue_pad), player);<br><br>&nbsp;&nbsp;&nbsp; g_signal_connect (Decode, &quot;new-decoded-pad&quot;, G_CALLBACK (cb_TS_DEC_New_Pad), player);<br><br><br>
&nbsp;&nbsp;&nbsp; gst_bin_add(GST_BIN(pipe),filesrc);<br><br>&nbsp;&nbsp;&nbsp; gst_bin_add(GST_BIN(pipe),demux);<br><br>&nbsp;&nbsp;&nbsp; gst_bin_add(GST_BIN(pipe),Multiqueue);<br><br>&nbsp;&nbsp;&nbsp; gst_bin_add(GST_BIN(pipe),Decode);<br><br>&nbsp;&nbsp;&nbsp; vbin = gst_bin_new(&quot;vbin&quot;);<br>
&nbsp;&nbsp;&nbsp; g_assert(vbin);<br>&nbsp;&nbsp;&nbsp; gst_bin_add_many(GST_BIN(vbin) ColorSpace, videosink, NULL);<br>&nbsp;&nbsp;&nbsp; if(!gst_element_link_many(ColorSpace, videosink, NULL))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug(&quot;****************Failed to link vbin elements!&quot;);<br>
&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; if(!gst_element_link_many(filesrc,demux, NULL))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug(&quot;****************Failed to link pipe elements!&quot;);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; pad = gst_element_get_pad (ColorSpace, &quot;sink&quot;);<br>
&nbsp;&nbsp;&nbsp; gst_element_add_pad (vbin, gst_ghost_pad_new (&quot;sink&quot;, pad));<br>&nbsp;&nbsp;&nbsp; gst_object_unref (pad);<br><br>&nbsp;&nbsp;&nbsp; gst_bin_add(GST_BIN(pipe),vbin);<br><br>&nbsp;&nbsp;&nbsp; bus = gst_pipeline_get_bus (GST_PIPELINE (pipe));<br><br>&nbsp;&nbsp;&nbsp; if(bus)<br>
&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug (&quot;got video BUS.&quot;);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gst_bus_add_watch (bus, pipeline_bus_callback, NULL);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, NULL);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; g_signal_connect (bus, &quot;sync-message::element&quot;, G_CALLBACK (video_bus_element_sync_message), NULL);<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gst_object_unref (bus);<br>&nbsp;&nbsp; }<br>&nbsp;&nbsp; else<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug (&quot;Could not get video BUS.&quot;);<br>&nbsp;&nbsp; }<br><br><br>&nbsp;&nbsp;&nbsp; // Set the pipeline to the proper state<br>&nbsp;&nbsp;&nbsp; gst_element_get_state (pipe, &amp;state, NULL, 0);<br>
&nbsp;&nbsp;&nbsp; if (state &gt;= GST_STATE_PAUSED) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gst_element_set_state (pipe, GST_STATE_READY);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; debug (&quot;Setting Filesrc Location.&quot;);<br>&nbsp;&nbsp;&nbsp; if(filesrc != NULL)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug (&quot;setting location to = %s&quot;,uri);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_object_set (G_OBJECT (filesrc), &quot;location&quot;, uri, NULL);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp; return TRUE;<br><br>}<br><br>The gst_bus_sync_signal_handler gets called to set up the xoverlay interface. But the pipeline_bus_callback() never<br>
gets called.<br><br>Let me know if this is not the code you were looking for.<br><br>Thanks<br><br><br><div class="gmail_quote">On Mon, Sep 8, 2008 at 1:14 PM, Michael Smith <span dir="ltr">&lt;<a href="mailto:msmith@xiph.org">msmith@xiph.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">On Mon, Sep 8, 2008 at 11:00 AM, Levi Pope &lt;<a href="mailto:levi.pope@gmail.com">levi.pope@gmail.com</a>&gt; wrote:<br>

&gt; I have a GTK# app that PInvokes a c library that uses gstreamer for video<br>
&gt; playback.<br>
&gt; Every thing works fine on both Windows and Linux but I can not get any of my<br>
&gt; bus messages<br>
&gt; on Windows. Does anyone know why this is?<br>
<br>
</div></div>You should probably provide a testcase (or at a minimum show the code<br>
you&#39;re talking about) if you want help with this sort of thing.<br>
<br>
Alternatively, run with GST_DEBUG and see what might be going wrong.<br>
<br>
Mike<br>
<br>
-------------------------------------------------------------------------<br>
This SF.Net email is sponsored by the Moblin Your Move Developer&#39;s challenge<br>
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes<br>
Grand prize is a trip for two to an Open Source event anywhere in the world<br>
<a href="http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/" target="_blank">http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/</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>
</blockquote></div><br></div>