Application crashes using Qt and Gstreamer with Suse Leap 42.1
-
Hi all.
I'm using Qt 5.6 on Suse Leap 42.1 and having crashes when I use gstreamer and Qt to try and play an rtsp stream.
I know my gstreamer works because I can run command lines and play the streams no problem. Examples:
gst-launch-1.0 playbin uri="rtsp://localhost:8554/SampleVideo.mkv" gst-launch-1.0 rtspsrc location="rtsp://localhost:8554/SampleVideo.mkv" ! decodebin ! autovideosink
I can also get this stream to play if I write a small test application using the gstreamer C libraries.
The crash occurs whenever I start linking against any Qt libraries at all. Even if they aren't used.
Furthermore, the same crash also occurs if I use the MediaPlayer qml class to attempt to play the stream. The following is my test application which is as basic as they come yet causes the crash:
import QtQuick 2.5 import QtQuick.Window 2.2 import QtMultimedia 5.5 Window { visible: true width: 600 height: 600 MediaPlayer { id: player source: "rtsp://localhost:8554/SampleVideo.mkv" autoPlay: true loops: MediaPlayer.Infinite } VideoOutput { id: videoOutput source: player anchors.fill: parent } }
The backtrace of this odd crash is as follows:
#0 0x00007fffc37c900e in () at /usr/lib64/libkdecore.so.5 #1 0x00007ffff7dea8ea in call_init.part () at /lib64/ld-linux-x86-64.so.2 #2 0x00007ffff7dea9d3 in _dl_init_internal () at /lib64/ld-linux-x86-64.so.2 #3 0x00007ffff7deeb08 in dl_open_worker () at /lib64/ld-linux-x86-64.so.2 #4 0x00007ffff7dea7a4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2 #5 0x00007ffff7dee2fb in _dl_open () at /lib64/ld-linux-x86-64.so.2 #6 0x00007ffff35d202b in dlopen_doit () at /lib64/libdl.so.2 #7 0x00007ffff7dea7a4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2 #8 0x00007ffff35d25dd in _dlerror_run () at /lib64/libdl.so.2 #9 0x00007ffff35d20c1 in dlopen@@GLIBC_2.2.5 () at /lib64/libdl.so.2 #10 0x00007fffc3df9f25 in libmodman::module_manager::load_file(std::string, bool) () at /usr/lib64/libmodman.so.1 #11 0x00007fffc3dfa2b3 in libmodman::module_manager::load_dir(std::string, bool) () at /usr/lib64/libmodman.so.1 #12 0x00007fffd019de06 in () at /usr/lib64/libproxy.so.1 #13 0x00007fffd019e9bb in px_proxy_factory_new () at /usr/lib64/libproxy.so.1 #14 0x00007fffd03b46f9 in () at /usr/lib64/gio/modules/libgiolibproxy.so #15 0x00007fffde9ff0eb in g_type_create_instance () at /usr/lib64/libgobject-2.0.so.0 #16 0x00007fffde9e405d in () at /usr/lib64/libgobject-2.0.so.0 #17 0x00007fffde9e5b6d in g_object_newv () at /usr/lib64/libgobject-2.0.so.0 #18 0x00007fffde9e631c in g_object_new () at /usr/lib64/libgobject-2.0.so.0 #19 0x00007fffd1453071 in () at /usr/lib64/libgio-2.0.so.0 #20 0x00007fffd14531f0 in () at /usr/lib64/libgio-2.0.so.0 #21 0x00007fffd146196d in () at /usr/lib64/libgio-2.0.so.0 #22 0x00007fffde9e4409 in () at /usr/lib64/libgobject-2.0.so.0 #23 0x00007fffde9e5f24 in g_object_new_valist () at /usr/lib64/libgobject-2.0.so.0 #24 0x00007fffde9e6304 in g_object_new () at /usr/lib64/libgobject-2.0.so.0 #25 0x00007fffd1459ee6 in () at /usr/lib64/libgio-2.0.so.0 #26 0x00007fffd146ed38 in g_socket_client_connect () at /usr/lib64/libgio-2.0.so.0 #27 0x00007fffd146ef2a in g_socket_client_connect_to_uri () at /usr/lib64/libgio-2.0.so.0 #28 0x00007fffd1ba8f46 in gst_rtsp_connection_connect_with_response () at /usr/lib64/libgstrtsp-1.0.so.0 #29 0x00007fffd1fe4bde in () at /usr/lib64/gstreamer-1.0/libgstrtsp.so #30 0x00007fffd1febe1c in () at /usr/lib64/gstreamer-1.0/libgstrtsp.so #31 0x00007fffd1fefb0d in () at /usr/lib64/gstreamer-1.0/libgstrtsp.so #32 0x00007fffd92b3389 in () at /usr/lib64/libgstreamer-1.0.so.0 #33 0x00007ffff33338ec in () at /usr/lib64/libglib-2.0.so.0
Lines 1 through 8 are (i believe, although I could be wrong) kde trying to handle the crash and failing.
The crash happens on more than one leap 42.1 machine here in the office so its not something specific to my machine setup.
Any help would be much appreciated.
Thanks
Dave