[gst-devel] Random segfault with GTK embedding after "have-xwindow-id" (python)

Florent fthiery at gmail.com
Fri Apr 17 14:09:51 CEST 2009


Hi

I am trying to improve the stability of my gst-gengui [1] utility
which is currently doubful with video pipelines. I think i might do
something very wrong here, and i would appreciate any code review.

I have a problem with refreshing my app. The refreshing does
1) stop the running pipeline
2) gst.parse_launch, bus.enable_sync_message_emission, bus.connect,
sync-message::element, then set_state(PLAYING)
3) clean the gtk layout
4) inspect new pipeline
5) rebuild the interface (whose final step is embedding the xvimagesink)

When i use very simple pipeline, like "videotestsrc ! xvimagesink ", i
can refresh as much as i want without problems. However, when i add
e.g. videobalance, videoparse or videoanalyse, videorate, with or
without queues, i get a random segfault (sometimes happens at
startup). The only element i can add in between without getting the
problem is identity.

My app's outputs are:
* with videobalance :

prepare-xwindow-id, <gst.Message prepare-xwindow-id; from xvimagesink0
at 0xb480b550>
<GstStructure (prepare-xwindow-id) at b480dc18>
0:00:00.449244512 28856 0x8773e58 WARN           xvimagesink
xvimagesink.c:600:gst_xvimagesink_xvimage_new:<xvimagesink0>
unexpected XShm image size (got 115200, expected 153600)
<GstStructure (have-xwindow-id) at 872ecb0>
sys:1: Warning: invalid unclassed pointer in cast to `GstBuffer'
(gst-gengui:28856): GStreamer-CRITICAL **: gst_mini_object_ref:
assertion `GST_IS_MINI_OBJECT (mini_object)' failed
sys:1: Warning: invalid uninstantiatable type `(null)' in cast to `GstBuffer'
Segmentation fault

* with "videorate":
right after the <GstStructure (have-xwindow-id) at 87376d8> message,
sys:1: Warning: invalid unclassed pointer in cast to `GstBuffer'

(gst-gengui:22844): GStreamer-CRITICAL **: gst_mini_object_ref:
assertion `GST_IS_MINI_OBJECT (mini_object)' failed
The program 'gst-gengui' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 70 error_code 8 request_code 140 minor_code 19)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Thanks for any help,

Florent

[1] http://code.google.com/p/gst-gengui/




More information about the gstreamer-devel mailing list