Summary: | crash in QApplication::syncX in non-mainthread | ||
---|---|---|---|
Product: | [Frameworks and Libraries] phonon-backend-gstreamer | Reporter: | quamis <quamis+kde> |
Component: | general | Assignee: | Daniel Vrátil <dvratil> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andrei.ilie, benjamin.kim.nguyen, blonder413, caulier.gilles, cd.graesser, eric, kdebug, martin.matthiesen, martin.sandsmark, myriam, romain.perier, sitter, tdfischer, tom |
Priority: | NOR | Keywords: | drkonqi |
Version: | 4.6.3 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/phonon-gstreamer/2cafb9db34ed1079eca22c913a48011b67ff9c70 | Version Fixed In: | 4.7.3 |
Description
quamis
2013-11-09 14:35:16 UTC
if i see the movie, then click on an image to view it, then click the movie again, everything works ok Random guess of the day: calling QApplication::syncX from a random thread is a bad idea. Supposedly that should be outsourced to a auto (queued-when-necessary) method invcoation doing the sync. As in that particular call chain there is a need to propagate the WID to gstreamer only; whether or not we xsync immediately should not matter in this case. *** Bug 323514 has been marked as a duplicate of this bug. *** Git commit 2cafb9db34ed1079eca22c913a48011b67ff9c70 by Dan Vrátil. Committed on 08/04/2014 at 17:46. Pushed by dvratil into branch '4.7'. Only call QApplication::syncX() from the main thread This fixes a regression introduced in 2db4c4. In order to pass WID to gstreamer synchronously, a Qt::DirectConnection between Pipeline signal and a VideoWidget slot must be created. However the signal from Pipeline can be emitted from an arbitrary thread, so we can't call QApplication::syncX() directly from the slot callchain. This patch moves the call to VideoWidget::syncX() slot that is called from X11Renderer via queued invocation to make sure it's always executed from the main thread. FIXED-IN: 4.7.3 Related: bug 332977, bug 305333 M +13 -0 gstreamer/videowidget.cpp M +1 -0 gstreamer/videowidget.h M +5 -14 gstreamer/x11renderer.cpp http://commits.kde.org/phonon-gstreamer/2cafb9db34ed1079eca22c913a48011b67ff9c70 *** Bug 321490 has been marked as a duplicate of this bug. *** *** Bug 329978 has been marked as a duplicate of this bug. *** *** Bug 335915 has been marked as a duplicate of this bug. *** *** Bug 335996 has been marked as a duplicate of this bug. *** *** Bug 336309 has been marked as a duplicate of this bug. *** *** Bug 336594 has been marked as a duplicate of this bug. *** *** Bug 337300 has been marked as a duplicate of this bug. *** |