Catching Bus messages on Windows

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Catching Bus messages on Windows

Levi Pope
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
Reply | Threaded
Open this post in threaded view
|

Re: Catching Bus messages on Windows

michael smith-6-3
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
Reply | Threaded
Open this post in threaded view
|

Re: Catching Bus messages on Windows

Levi Pope
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:
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


-------------------------------------------------------------------------
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
Reply | Threaded
Open this post in threaded view
|

Re: Catching Bus messages on Windows

Martin.cheng
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
Reply | Threaded
Open this post in threaded view
|

Re: Catching Bus messages on Windows

Stefan Sauer
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