Opened 11 years ago
Last modified 16 months ago
#45321 reopened defect
port:phonon_backend_gstreamer causes digikam 4.3.0 to abort when $DISPLAY is set
| Reported by: | RJVB (René Bertin) | Owned by: | michaelld (Michael Dickens) |
|---|---|---|---|
| Priority: | High | Milestone: | |
| Component: | ports | Version: | |
| Keywords: | haspatch | Cc: | mkae (Marko Käning), cooljeanius (Eric Gallager) |
| Port: | phonon-backend-gstreamer |
Description
I installed phonon_backend_gstreamer in hopes to improve audio capabilities in Qt4/KDE. It did not make a noticeable difference (the relevant controls remain inactive in qtconfig), and now I did notice an annoying side-effect of having it installed.
Launching digikam with $DISPLAY set, either from an xterm or through LaunchServices, causes it to abort due to a call to XGetWindowAttributes without first connecting to an X11 server:
(lldb) b XGetWindowAttributes
breakpoint set --name 'XGetWindowAttributes'
Breakpoint created: 2: name = 'XGetWindowAttributes', locations = 1
(lldb) r
Process 57949 launched: '/Applications/MacPorts/KDE4/digikam.app/Contents/MacOS/digikam' (x86_64)
Process 57949 stopped
* thread #1: tid = 0x2d03, 0x00000001002c1c2e digikam`main + 30 at main.cpp:71, stop reason = breakpoint 1.1
frame #0: 0x00000001002c1c2e digikam`main + 30 at main.cpp:71
68
69 int main(int argc, char* argv[])
70 {
-> 71 KAboutData aboutData("digikam",
72 0,
73 ki18n("digiKam"),
74 digiKamVersion().toAscii(),
(lldb) c
Process 57949 resuming
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
WARNING: Disabling PulseAudio integration for lack of GLib event loop.
StartNotification name = default
Process 57949 stopped
* thread #1: tid = 0x2d03, 0x000000010660249a libX11.6.dylib`XGetWindowAttributes, stop reason = breakpoint 2.1
frame #0: 0x000000010660249a libX11.6.dylib`XGetWindowAttributes
(lldb) bt
* thread #1: tid = 0x2d03, 0x000000010660249a libX11.6.dylib`XGetWindowAttributes, stop reason = breakpoint 2.1
frame #0: 0x000000010660249a libX11.6.dylib`XGetWindowAttributes
frame #1: 0x000000012953b948 libgstximagesink.so`gst_ximagesink_set_window_handle + 230
frame #2: 0x00000001267c838a phonon_gstreamer.so`Phonon::Gstreamer::X11Renderer::setOverlay() + 122
frame #3: 0x00000001267c89ab phonon_gstreamer.so`Phonon::Gstreamer::X11Renderer::X11Renderer(Phonon::Gstreamer::VideoWidget*) + 427
frame #4: 0x00000001267a304b phonon_gstreamer.so`Phonon::Gstreamer::DeviceManager::createVideoRenderer(Phonon::Gstreamer::VideoWidget*) + 187
frame #5: 0x00000001267c4198 phonon_gstreamer.so`Phonon::Gstreamer::VideoWidget::setupVideoBin() + 40
frame #6: 0x00000001267c45b6 phonon_gstreamer.so`Phonon::Gstreamer::VideoWidget::VideoWidget(Phonon::Gstreamer::Backend*, QWidget*) + 246
frame #7: 0x000000012679ea84 phonon_gstreamer.so`Phonon::Gstreamer::Backend::createObject(Phonon::BackendInterface::Class, QObject*, QList<QVariant> const&) + 388
frame #8: 0x0000000100b7bd5a libphonon.4.dylib`Phonon::Factory::createVideoWidget(QObject*) + 122
frame #9: 0x0000000100ba96c6 libphonon.4.dylib`Phonon::VideoWidgetPrivate::createBackendObject() + 54
frame #10: 0x0000000100ba893a libphonon.4.dylib`Phonon::VideoWidget::VideoWidget(QWidget*) + 202
frame #11: 0x0000000100ba801b libphonon.4.dylib`Phonon::VideoPlayerPrivate::ensureCreated() const + 123
frame #12: 0x0000000100ba85c5 libphonon.4.dylib`Phonon::VideoPlayer::mediaObject() const + 21
frame #13: 0x000000010024bb15 digikam`MediaPlayerView + 1413 at mediaplayerview.cpp:166
frame #14: 0x0000000100238f45 digikam`StackedView + 437 at stackedview.cpp:115
frame #15: 0x00000001002430cb digikam`DigikamView + 715 at digikamview.cpp:262
frame #16: 0x0000000100124b11 digikam`Digikam::DigikamApp::setupView() + 145 at digikamapp.cpp:551
frame #17: 0x00000001001243d1 digikam`DigikamApp + 2017 at digikamapp.cpp:265
frame #18: 0x00000001002c3204 digikam`main + 5620 at main.cpp:189
frame #19: 0x000000010000f004 digikam`start + 52
(lldb) f 4
Process 57949 stopped
* thread #1: tid = 0x2d03, 0x000000010660249a libX11.6.dylib`XGetWindowAttributes, stop reason = signal SIGSTOP
frame #0: 0x000000010660249a libX11.6.dylib`XGetWindowAttributes
Uninstalling phonon_backend_gstreamer resolves this issue, but it might be useful to understand why this happens and see if one can work around it. Phonon being a Qt4 package there is no reason it would ever want to do X11-related things on OS X, or is there?
Attachments (2)
Change History (8)
comment:1 Changed 11 years ago by mf2k (Frank Schima)
| Cc: | michaelld@… removed |
|---|---|
| Owner: | changed from macports-tickets@… to michaelld@… |
| Port: | phonon-backend-gstreamer added; phonon_backend_gstreamer removed |
Changed 11 years ago by RJVB (René Bertin)
| Attachment: | phononBGSTr-avoid-x11renderer.patch added |
|---|
comment:3 Changed 11 years ago by mkae (Marko Käning)
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Done in r129223
comment:4 Changed 17 months ago by barracuda156
Replying to RJVB:
Oh wow, this is again broken, apparently, and that is why digikam crashed for me. Deactivating phonon-backend-gstreamer fixed it.
comment:5 Changed 17 months ago by RJVB (René Bertin)
| Keywords: | haspatch added |
|---|---|
| Priority: | Normal → High |
| Resolution: | fixed |
| Status: | closed → reopened |
| Version: | 2.3.1 |
The patch that was included turned out to be pointless (modifying the default of a CMake variable that was going to be set to that same value a few lines later), and upstream missed a code path that needs to be excluded too when not building the "X11 renderer".
I'm attaching a new patch that fixes the port.
Changed 17 months ago by RJVB (René Bertin)
| Attachment: | PBGS-repatch.diff added |
|---|
Fix port:phonon-backend-gstreamer (#8142ad6b5bc52b1f55903c48fc947f901244d55c)
comment:6 Changed 16 months ago by cooljeanius (Eric Gallager)
| Cc: | cooljeanius added |
|---|

This patch resolves the issue by excluding the code that would pick an X11 renderer