After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 383198 - totem crashed to gst_xvimagesink_update_colorbalance
totem crashed to gst_xvimagesink_update_colorbalance
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.10
Other Linux
: Normal critical
: 0.10.12
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-12-06 23:19 UTC by Sebastien Bacher
Modified: 2007-01-08 14:20 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description Sebastien Bacher 2006-12-06 23:19:44 UTC
When moving in a short .mov video with totem-gstreamer it crashed with that backtrace:

960           XvSetPortAttribute (xvimagesink->xcontext->disp,
(gdb) bt
  • #0 gst_xvimagesink_update_colorbalance
    at xvimagesink.c line 960
  • #1 gst_xvimagesink_set_xwindow_id
    at xvimagesink.c line 2289
  • #2 gst_x_overlay_set_xwindow_id
    at xoverlay.c line 164
  • #3 bacon_video_widget_set_video_property
  • #4 marshal_VOID__MINIOBJECT
    at gstbus.c line 159
  • #5 IA__g_closure_invoke
    at gclosure.c line 490
  • #6 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #7 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #8 IA__g_signal_emit
    at gsignal.c line 2243
  • #9 gst_bus_sync_signal_handler
    at gstbus.c line 928
  • #10 gst_bus_post
    at gstbus.c line 337
  • #11 gst_element_post_message
    at gstelement.c line 1396
  • #12 gst_bin_handle_message_func
    at gstbin.c line 2306
  • #13 gst_play_bin_handle_message
    at gstplaybin.c line 1683
  • #14 bin_bus_handler
    at gstbin.c line 2077
  • #15 gst_bus_post
    at gstbus.c line 337
  • #16 gst_element_post_message
    at gstelement.c line 1396
  • #17 gst_bin_handle_message_func
    at gstbin.c line 2306
  • #18 bin_bus_handler
    at gstbin.c line 2077
  • #19 gst_bus_post
    at gstbus.c line 337
  • #20 gst_element_post_message
    at gstelement.c line 1396
  • #21 gst_bin_handle_message_func
    at gstbin.c line 2306
  • #22 bin_bus_handler
    at gstbin.c line 2077
  • #23 gst_bus_post
    at gstbus.c line 337
  • #24 gst_element_post_message
    at gstelement.c line 1396
  • #25 gst_bin_handle_message_func
    at gstbin.c line 2306
  • #26 bin_bus_handler
    at gstbin.c line 2077
  • #27 gst_bus_post
    at gstbus.c line 337
  • #28 gst_element_post_message
    at gstelement.c line 1396
  • #29 gst_x_overlay_prepare_xwindow_id
    at xoverlay.c line 216
  • #30 gst_xvimagesink_setcaps
    at xvimagesink.c line 1818
  • #31 gst_base_sink_pad_setcaps
    at gstbasesink.c line 385
  • #32 gst_pad_set_caps
    at gstpad.c line 2277
  • #33 gst_proxy_pad_do_setcaps
    at gstghostpad.c line 281
  • #34 gst_pad_set_caps
    at gstpad.c line 2277
  • #35 gst_proxy_pad_do_setcaps
    at gstghostpad.c line 281
  • #36 gst_pad_set_caps
    at gstpad.c line 2277
  • #37 gst_pad_chain_unchecked
    at gstpad.c line 2336
  • #38 gst_pad_push
    at gstpad.c line 3510
  • #39 gst_base_transform_chain
    at gstbasetransform.c line 1530
  • #40 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #41 gst_pad_push
    at gstpad.c line 3510

From gdb:

(gdb) p xvimagesink->xcontext
$1 = (GstXContext *) 0x0
Comment 1 Tim-Philipp Müller 2007-01-08 14:20:44 UTC
I think this has been fixed in CVS HEAD by this commit (added locking and context creation if none exists yet):

 2007-01-07  Julien MOUTTE  <julien@moutte.net>

        * sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
        (gst_ximagesink_handle_xerror), (gst_ximagesink_ximage_new),
        (gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put),
        (gst_ximagesink_handle_xevents), (gst_ximagesink_setcaps),
        (gst_ximagesink_change_state), (gst_ximagesink_set_xwindow_id),
        (gst_ximagesink_expose), (gst_ximagesink_set_event_handling):
        * sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
        (gst_xvimage_buffer_finalize), (gst_xvimagesink_handle_xerror),
        (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
        (gst_xvimagesink_handle_xevents), (gst_xvimagesink_setcaps),
        (gst_xvimagesink_change_state), (gst_xvimagesink_set_xwindow_id),
        (gst_xvimagesink_expose), (gst_xvimagesink_set_event_handling):
        Use flow_lock much more to protect every access to xwindow.
        Try to catch erros while creating images in case some drivers are
        just generating an XError when the requested image is too big.
        Should fix : #354698, #384008, #384060.
        * tests/icles/stress-xoverlay.c: (cycle_window), (create_window):
        Implement some stress testing of setting window xid.


Please re-open if you can still reproduce this.