I have a GTK# app that PInvokes a c library that uses gstreamer for video playback.
Every thing works fine on both Windows and Linux but I can not get any of my bus messages on Windows. Does anyone know why this is? Thanks Levi ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
On Mon, Sep 8, 2008 at 11:00 AM, Levi Pope <[hidden email]> wrote:
> I have a GTK# app that PInvokes a c library that uses gstreamer for video > playback. > Every thing works fine on both Windows and Linux but I can not get any of my > bus messages > on Windows. Does anyone know why this is? You should probably provide a testcase (or at a minimum show the code you're talking about) if you want help with this sort of thing. Alternatively, run with GST_DEBUG and see what might be going wrong. Mike ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
The GST_DEBUG shows me that the states are changing but I still do not see the messages.
Also None of my queries seem to work. (Duration, Position) It seems like there is an issue with the gmainloop or something. Here is the code that creates the pipe. __declspec(dllexport) gboolean video_pipeline_construct_ts (const gchar *uri) { GstState state; GstEleemnt *pipe; GstElement *videosink; GstElement *filesrc; GstElement *demux; GstElement *Decode; GstElement *ColorSpace; GstElement *MultiQueue; GstBus *bus; GstPad *pad; pipe = NULL; pipe = gst_pipeline_new("Pipe"); g_return_val_if_fail (pipe != NULL, FALSE); videosink= gst_element_factory_make ("xvimagesink", "videosink"); if(!G_IS_OBJECT(videosink)) g_warning("****************videosink == NULL!"); filesrc = gst_element_factory_make("filesrc","source1"); if(!G_IS_OBJECT(filesrc)) g_warning("****************filesrc == NULL!"); demux = gst_element_factory_make("flutsdemux","demux"); if(!G_IS_OBJECT(demux)) g_warning("****************flutsdemux == NULL!"); Decode= gst_element_factory_make("decodebin","decoder"); if(!G_IS_OBJECT(Decode)) g_warning("****************Decode == NULL!"); ColorSpace = gst_element_factory_make("ffmpegcolorspace","colorspace"); if(!G_IS_OBJECT(ColorSpace)) g_warning("****************ColorSpace == NULL!"); MultiQueue = gst_element_factory_make("multiqueue","multiqueue"); if(!G_IS_OBJECT(MultiQueue)) g_warning("****************MultiQueue == NULL!"); g_signal_connect (demux, "pad-added", G_CALLBACK (new_demux_pad), player); g_signal_connect (MultiQueue, "pad-added", G_CALLBACK (new_multiqueue_pad), player); g_signal_connect (Decode, "new-decoded-pad", G_CALLBACK (cb_TS_DEC_New_Pad), player); gst_bin_add(GST_BIN(pipe),filesrc); gst_bin_add(GST_BIN(pipe),demux); gst_bin_add(GST_BIN(pipe),Multiqueue); gst_bin_add(GST_BIN(pipe),Decode); vbin = gst_bin_new("vbin"); g_assert(vbin); gst_bin_add_many(GST_BIN(vbin) ColorSpace, videosink, NULL); if(!gst_element_link_many(ColorSpace, videosink, NULL)) { debug("****************Failed to link vbin elements!"); } if(!gst_element_link_many(filesrc,demux, NULL)) { debug("****************Failed to link pipe elements!"); } pad = gst_element_get_pad (ColorSpace, "sink"); gst_element_add_pad (vbin, gst_ghost_pad_new ("sink", pad)); gst_object_unref (pad); gst_bin_add(GST_BIN(pipe),vbin); bus = gst_pipeline_get_bus (GST_PIPELINE (pipe)); if(bus) { debug ("got video BUS."); gst_bus_add_watch (bus, pipeline_bus_callback, NULL); gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, NULL); g_signal_connect (bus, "sync-message::element", G_CALLBACK (video_bus_element_sync_message), NULL); gst_object_unref (bus); } else { debug ("Could not get video BUS."); } // Set the pipeline to the proper state gst_element_get_state (pipe, &state, NULL, 0); if (state >= GST_STATE_PAUSED) { gst_element_set_state (pipe, GST_STATE_READY); } debug ("Setting Filesrc Location."); if(filesrc != NULL) { debug ("setting location to = %s",uri); g_object_set (G_OBJECT (filesrc), "location", uri, NULL); } return TRUE; } The gst_bus_sync_signal_handler gets called to set up the xoverlay interface. But the pipeline_bus_callback() never gets called. Let me know if this is not the code you were looking for. Thanks On Mon, Sep 8, 2008 at 1:14 PM, Michael Smith <[hidden email]> wrote:
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Excuse me
What's going on about this problem? Did you solve it finally? I had same problem on Windows that I can get any message from bus In addition, in my bus_sync_handler function, I supposed to set the window to show the video as window id. It would be down if I did this, but it worked fine on Linux Are there anything about OS? plz give me some hints, thanks best wishes Martin Cheng |
On 09/08/11 04:47, Martin.cheng wrote:
> Excuse me > What's going on about this problem? > Did you solve it finally? > I had same problem on Windows that I can get any message from bus > In addition, in my bus_sync_handler function, I supposed to set the window > to show the video as window id. > It would be down if I did this, but it worked fine on Linux > Are there anything about OS? > plz give me some hints, thanks Are you running a main_loop or polling the bus? Stefan > best wishes > Martin Cheng > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Catching-Bus-messages-on-Windows-tp968644p3797745.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |