<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> GstState state;<br> GstEleemnt *pipe;<br> GstElement *videosink;<br> GstElement *filesrc;<br>
GstElement *demux;<br> GstElement *Decode;<br> GstElement *ColorSpace;<br> GstElement *MultiQueue;<br> GstBus *bus;<br> GstPad *pad;<br><br> pipe = NULL;<br><br> pipe = gst_pipeline_new("Pipe");<br>
<br> g_return_val_if_fail (pipe != NULL, FALSE);<br><br> videosink= gst_element_factory_make ("xvimagesink", "videosink");<br> if(!G_IS_OBJECT(videosink))<br> g_warning("****************videosink == NULL!");<br>
<br> filesrc = gst_element_factory_make("filesrc","source1");<br> if(!G_IS_OBJECT(filesrc))<br> g_warning("****************filesrc == NULL!");<br><br> demux = gst_element_factory_make("flutsdemux","demux");<br>
if(!G_IS_OBJECT(demux))<br> g_warning("****************flutsdemux == NULL!");<br><br> Decode= gst_element_factory_make("decodebin","decoder");<br> if(!G_IS_OBJECT(Decode))<br>
g_warning("****************Decode == NULL!");<br><br> ColorSpace = gst_element_factory_make("ffmpegcolorspace","colorspace");<br> if(!G_IS_OBJECT(ColorSpace))<br> g_warning("****************ColorSpace == NULL!");<br>
<br> MultiQueue = gst_element_factory_make("multiqueue","multiqueue");<br> if(!G_IS_OBJECT(MultiQueue))<br> g_warning("****************MultiQueue == NULL!");<br><br> g_signal_connect (demux, "pad-added", G_CALLBACK (new_demux_pad), player);<br>
<br> g_signal_connect (MultiQueue, "pad-added", G_CALLBACK (new_multiqueue_pad), player);<br><br> g_signal_connect (Decode, "new-decoded-pad", G_CALLBACK (cb_TS_DEC_New_Pad), player);<br><br><br>
gst_bin_add(GST_BIN(pipe),filesrc);<br><br> gst_bin_add(GST_BIN(pipe),demux);<br><br> gst_bin_add(GST_BIN(pipe),Multiqueue);<br><br> gst_bin_add(GST_BIN(pipe),Decode);<br><br> vbin = gst_bin_new("vbin");<br>
g_assert(vbin);<br> gst_bin_add_many(GST_BIN(vbin) ColorSpace, videosink, NULL);<br> if(!gst_element_link_many(ColorSpace, videosink, NULL))<br> {<br> debug("****************Failed to link vbin elements!");<br>
}<br><br> if(!gst_element_link_many(filesrc,demux, NULL))<br> {<br> debug("****************Failed to link pipe elements!");<br> }<br><br> pad = gst_element_get_pad (ColorSpace, "sink");<br>
gst_element_add_pad (vbin, gst_ghost_pad_new ("sink", pad));<br> gst_object_unref (pad);<br><br> gst_bin_add(GST_BIN(pipe),vbin);<br><br> bus = gst_pipeline_get_bus (GST_PIPELINE (pipe));<br><br> if(bus)<br>
{<br> debug ("got video BUS.");<br><br> gst_bus_add_watch (bus, pipeline_bus_callback, NULL);<br><br> gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, NULL);<br> g_signal_connect (bus, "sync-message::element", G_CALLBACK (video_bus_element_sync_message), NULL);<br>
<br> gst_object_unref (bus);<br> }<br> else<br> {<br> debug ("Could not get video BUS.");<br> }<br><br><br> // Set the pipeline to the proper state<br> gst_element_get_state (pipe, &state, NULL, 0);<br>
if (state >= GST_STATE_PAUSED) {<br> gst_element_set_state (pipe, GST_STATE_READY);<br> }<br><br> debug ("Setting Filesrc Location.");<br> if(filesrc != NULL)<br> {<br> debug ("setting location to = %s",uri);<br>
g_object_set (G_OBJECT (filesrc), "location", uri, NULL);<br> }<br><br> 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"><<a href="mailto:msmith@xiph.org">msmith@xiph.org</a>></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 <<a href="mailto:levi.pope@gmail.com">levi.pope@gmail.com</a>> wrote:<br>
> I have a GTK# app that PInvokes a c library that uses gstreamer for video<br>
> playback.<br>
> Every thing works fine on both Windows and Linux but I can not get any of my<br>
> bus messages<br>
> 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'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's challenge<br>
Build the coolest Linux based applications with Moblin SDK & 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&url=/" target="_blank">http://moblin-contest.org/redirect.php?banner_id=100&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>