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 _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |