Missing Error Messages.

Stirling Westrup swestrup at gmail.com
Wed Dec 19 12:01:30 PST 2012


I'm trying to track down an issue with error messages somehow going
missing or being unreported.

I have a pipeline (called "pipeline") holding a bin (called
"videostream_02") which has an xvimagesink element (called
"xvsink_02").
If I provide a bad output display name to the xvimagesink, it
generates an appropriate error message, but the watch I've added to
the pipeline never sees it.

Running under debug produces these relevant messages:

0:00:00.185429538  8681      0x1c40000 DEBUG                    bin
gstbin.c:2303:gst_bin_element_set_state:<videostream_02> setting
element xvsink_02 to READY, base_time 211:21:22.757765745
0:00:00.185543968  8681      0x1c40000 WARN             xvimagesink
xvimagesink.c:1290:gst_xvimagesink_xcontext_get:<xvsink_02> error:
Could not initialise Xv output
0:00:00.185556642  8681      0x1c40000 WARN             xvimagesink
xvimagesink.c:1290:gst_xvimagesink_xcontext_get:<xvsink_02> error:
Could not open display
0:00:00.185577660  8681      0x1c40000 DEBUG                    bin
gstbin.c:3281:gst_bin_handle_message_func:<videostream_02> [msg
0x7f8618002380] handling child xvsink_02 message of type error
0:00:00.185587474  8681      0x1c40000 DEBUG                    bin
gstbin.c:3288:gst_bin_handle_message_func:<videostream_02> got ERROR
message, unlocking state change
0:00:00.185596167  8681      0x1c40000 DEBUG                    bin
gstbin.c:3573:gst_bin_handle_message_func:<videostream_02> posting
message upward
0:00:00.185606381  8681      0x1c40000 DEBUG                    bin
gstbin.c:3281:gst_bin_handle_message_func:<pipeline> [msg
0x7f8618002380] handling child xvsink_02 message of type error
0:00:00.185615839  8681      0x1c40000 DEBUG                    bin
gstbin.c:3288:gst_bin_handle_message_func:<pipeline> got ERROR
message, unlocking state change
0:00:00.185626904  8681      0x1c40000 DEBUG                    bin
gstbin.c:3573:gst_bin_handle_message_func:<pipeline> posting message
upward

The code to add the watch to the pipeline (done just after first
creating the pipeline) is this:

gst_bin_add(GST_BIN(pipeline), reader);

// Install a message handler at the top level.
GstBus *bus = gst_pipeline_get_bus( GST_PIPELINE(pipeline) );
gst_bus_add_watch_full
    ( bus
    , G_PRIORITY_DEFAULT
    , bus_message_callback
    , data
    , bus_message_notify
    );
gst_object_unref(bus);



The watch handler seems to work, as it correctly catches EOS messages,
but it doesn't seem to get called for the ERROR message, and there's
no sign that bus_message_notify is ever called.



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup


More information about the gstreamer-devel mailing list