I'm getting the following crash on: g_signal_handler_disconnect(G_OBJECT(volume_), notify_volume_cb_id_)
disconnecting "notify::volume" on autoaudiosink.
#0 0x00007ffff4e881c3 in g_type_check_instance_cast () at /lib64/libgobject-2.0.so.0
#1 0x0000000000aa9381 in GstEnginePipeline::~GstEnginePipeline() (this=0x170afc0, __in_chrg=<optimized out>) at /home/jonas/Projects/strawberry/strawberry/src/engine/gstenginepipeline.cpp:174
#2 0x0000000000aa89df in std::_Destroy<GstEnginePipeline>(GstEnginePipeline*) (__pointer=0x170afc0) at /usr/include/c++/13/bits/stl_construct.h:151
#3 0x0000000000aa8830 in std::allocator_traits<std::allocator<void> >::destroy<GstEnginePipeline>(std::allocator<void>&, GstEnginePipeline*) (__p=0x170afc0) at /usr/include/c++/13/bits/alloc_traits.h:675
#4 std::_Sp_counted_ptr_inplace<GstEnginePipeline, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x170afb0) at /usr/include/c++/13/bits/shared_ptr_base.h:613
#5 0x00000000004ad995 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x170afb0) at /usr/include/c++/13/bits/shared_ptr_base.h:346
#6 0x00000000004aec4f in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x7fffffffb5f8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/shared_ptr_base.h:1071
#7 0x0000000000aa0f36 in std::__shared_ptr<GstEnginePipeline, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x7fffffffb5f0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/shared_ptr_base.h:1524
#8 0x0000000000aa12ef in std::__shared_ptr<GstEnginePipeline, (__gnu_cxx::_Lock_policy)2>::reset() (this=0x1718430) at /usr/include/c++/13/bits/shared_ptr_base.h:1642
#9 0x0000000000a9bda9 in GstEngine::Stop(bool) (this=0x17182a0, stop_after=false) at /home/jonas/Projects/strawberry/strawberry/src/engine/gstengine.cpp:286
#10 0x0000000000550d72 in Player::Stop(bool) (this=0x17efaf0, stop_after=false) at /home/jonas/Projects/strawberry/strawberry/src/core/player.cpp:562
#11 0x0000000000513543 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}::operator()() const (__closure=0x7fffffffb710)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:153
#12 0x000000000051bccd in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}&&) (args=0x7fffffffb8f0, fn=...) at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:72
#13 0x00000000005135a4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**) (f=&virtual table offset 320, o=0x17efaf0, arg=0x7fffffffb8f0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:152
#14 0x000000000050ab54 in QtPrivate::FunctionPointer<void (Player::*)(bool)>::call<QtPrivate::List<bool>, void>(void (Player::*)(bool), Player*, void**) (f=&virtual table offset 320, o=0x17efaf0, arg=0x7fffffffb8f0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:200
#15 0x0000000000500ad1 in QtPrivate::QCallableObject<void (Player::*)(bool), QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x32a8c20, r=0x17efaf0, a=0x7fffffffb8f0, ret=0x0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:571
#16 0x00007ffff55aa566 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffb8f0, r=0x17efaf0, this=0x32a8c20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobjectdefs_impl.h:487
#17 doActivate<false>(QObject*, int, void**) (sender=sender@entry=0x1db9810, signal_index=signal_index@entry=7, argv=<optimized out>, argv@entry=0x7fffffffb8f0) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobject.cpp:4111
#18 0x00007ffff55a38dd in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x1db9810, m=m@entry=0x7ffff74691e0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fffffffb8f0)
at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobject.cpp:4171
#19 0x00007ffff70de28b in QAction::triggered(bool) (this=this@entry=0x1db9810, _t1=<optimized out>) at /home/jonas/Projects/qtbase/build/src/gui/Gui_autogen/include/moc_qaction.cpp:484
#20 0x00007ffff70dfb5b in QAction::activate(QAction::ActionEvent) (this=0x1db9810, event=event@entry=QAction::Trigger) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qaction.cpp:1102
#21 0x00007ffff79c1be9 in QAction::trigger() (this=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qaction.h:210
#22 QToolButton::nextCheckState() (this=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:980
#23 0x00007ffff78b2106 in QAbstractButtonPrivate::click() (this=this@entry=0x1c9bc80) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:364
#24 0x00007ffff78b22a1 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:976
#25 0x00007ffff79c1b94 in QToolButton::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, e=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:587
#26 0x00007ffff77e81d0 in QWidget::event(QEvent*) (this=this@entry=0x1d27ce0, event=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidget.cpp:9022
#27 0x00007ffff78b34e2 in QAbstractButton::event(QEvent*) (this=this@entry=0x1d27ce0, e=e@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:933
#28 0x00007ffff79c1c2b in QToolButton::event(QEvent*) (this=0x1d27ce0, event=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:996
#29 0x00007ffff7790afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x15e6330, receiver=receiver@entry=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3288
#30 0x00007ffff7796ce0 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:2766
#31 0x00007ffff5558b67 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
#32 0x00007ffff5558c59 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1596
#33 0x00007ffff7795ef6 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
(receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20, alienWidget=alienWidget@entry=0x1d27ce0, nativeWidget=0x7fffffffc860, buttonDown=buttonDown@entry=0x7ffff7db69a0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:2347
#34 0x00007ffff77fd27b in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=this@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidgetwindow.cpp:649
#35 0x00007ffff77ff44b in QWidgetWindow::event(QEvent*) (this=0x3b39560, event=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidgetwindow.cpp:263
#36 0x00007ffff7790afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x15e6330, receiver=receiver@entry=0x3b39560, e=e@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3288
#37 0x00007ffff7798338 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffceb0, receiver=0x3b39560, e=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3239
#38 0x00007ffff5558b67 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
#39 0x00007ffff5558c59 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1596
#40 0x00007ffff6db4c17 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=e@entry=0x7fff00001aa0) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qguiapplication.cpp:2327
#41 0x00007ffff6db694d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x7fff00001aa0) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qguiapplication.cpp:2071
#42 0x00007ffff6e127ee in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1114
#43 0x00007fffeeae50b6 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
#44 0x00007ffff4af2710 in () at /lib64/libglib-2.0.so.0
#45 0x00007ffff4af4358 in () at /lib64/libglib-2.0.so.0
#46 0x00007ffff4af4a0c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#47 0x00007ffff57c5993 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1690510, flags=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:395
#48 0x00007fffeeae545e in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/jonas/Projects/qtbase/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
#49 0x00007ffff55629de in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffc740, flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qeventloop.cpp:100
#50 0x00007ffff55631f9 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffc740, flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/global/qflags.h:34
#51 0x00007ffff555c285 in QCoreApplication::exec() () at /home/jonas/Projects/qtbase/qtbase/src/corelib/global/qflags.h:74
#52 0x00000000004ad05b in main(int, char**) (argc=1, argv=0x7fffffffd738) at /home/jonas/Projects/strawberry/strawberry/src/main.cpp:323
No crash
Crash
command
Sorry for the noise. I see the issue now, the object is not alive, I got the object from deep-element-added, but I didn't check deep-element-removed, I guess I need to disconnect the volume on deep-element-removed and re-add it on the next deep-element-added.
It's crashing on the following line:
node = lookup_type_node_I (type_instance->g_class->g_type);
in g_type_check_instance_cast
.
I'm getting the following crash on: g_signal_handler_disconnect(G_OBJECT(volume_), notify_volume_cb_id_)
disconnecting "notify::volume" on autoaudiosink.
#0 0x00007ffff4e881c3 in g_type_check_instance_cast () at /lib64/libgobject-2.0.so.0
#1 0x0000000000aa9381 in GstEnginePipeline::~GstEnginePipeline() (this=0x170afc0, __in_chrg=<optimized out>) at /home/jonas/Projects/strawberry/strawberry/src/engine/gstenginepipeline.cpp:174
#2 0x0000000000aa89df in std::_Destroy<GstEnginePipeline>(GstEnginePipeline*) (__pointer=0x170afc0) at /usr/include/c++/13/bits/stl_construct.h:151
#3 0x0000000000aa8830 in std::allocator_traits<std::allocator<void> >::destroy<GstEnginePipeline>(std::allocator<void>&, GstEnginePipeline*) (__p=0x170afc0) at /usr/include/c++/13/bits/alloc_traits.h:675
#4 std::_Sp_counted_ptr_inplace<GstEnginePipeline, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x170afb0) at /usr/include/c++/13/bits/shared_ptr_base.h:613
#5 0x00000000004ad995 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x170afb0) at /usr/include/c++/13/bits/shared_ptr_base.h:346
#6 0x00000000004aec4f in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x7fffffffb5f8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/shared_ptr_base.h:1071
#7 0x0000000000aa0f36 in std::__shared_ptr<GstEnginePipeline, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x7fffffffb5f0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/shared_ptr_base.h:1524
#8 0x0000000000aa12ef in std::__shared_ptr<GstEnginePipeline, (__gnu_cxx::_Lock_policy)2>::reset() (this=0x1718430) at /usr/include/c++/13/bits/shared_ptr_base.h:1642
#9 0x0000000000a9bda9 in GstEngine::Stop(bool) (this=0x17182a0, stop_after=false) at /home/jonas/Projects/strawberry/strawberry/src/engine/gstengine.cpp:286
#10 0x0000000000550d72 in Player::Stop(bool) (this=0x17efaf0, stop_after=false) at /home/jonas/Projects/strawberry/strawberry/src/core/player.cpp:562
#11 0x0000000000513543 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}::operator()() const (__closure=0x7fffffffb710)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:153
#12 0x000000000051bccd in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**)::{lambda()#1}&&) (args=0x7fffffffb8f0, fn=...) at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:72
#13 0x00000000005135a4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Player::*)(bool)>::call(void (Player::*)(bool), Player*, void**) (f=&virtual table offset 320, o=0x17efaf0, arg=0x7fffffffb8f0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:152
#14 0x000000000050ab54 in QtPrivate::FunctionPointer<void (Player::*)(bool)>::call<QtPrivate::List<bool>, void>(void (Player::*)(bool), Player*, void**) (f=&virtual table offset 320, o=0x17efaf0, arg=0x7fffffffb8f0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:200
#15 0x0000000000500ad1 in QtPrivate::QCallableObject<void (Player::*)(bool), QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x32a8c20, r=0x17efaf0, a=0x7fffffffb8f0, ret=0x0)
at /usr/local/qt6/include/QtCore/qobjectdefs_impl.h:571
#16 0x00007ffff55aa566 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffb8f0, r=0x17efaf0, this=0x32a8c20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobjectdefs_impl.h:487
#17 doActivate<false>(QObject*, int, void**) (sender=sender@entry=0x1db9810, signal_index=signal_index@entry=7, argv=<optimized out>, argv@entry=0x7fffffffb8f0) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobject.cpp:4111
#18 0x00007ffff55a38dd in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x1db9810, m=m@entry=0x7ffff74691e0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fffffffb8f0)
at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qobject.cpp:4171
#19 0x00007ffff70de28b in QAction::triggered(bool) (this=this@entry=0x1db9810, _t1=<optimized out>) at /home/jonas/Projects/qtbase/build/src/gui/Gui_autogen/include/moc_qaction.cpp:484
#20 0x00007ffff70dfb5b in QAction::activate(QAction::ActionEvent) (this=0x1db9810, event=event@entry=QAction::Trigger) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qaction.cpp:1102
#21 0x00007ffff79c1be9 in QAction::trigger() (this=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qaction.h:210
#22 QToolButton::nextCheckState() (this=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:980
#23 0x00007ffff78b2106 in QAbstractButtonPrivate::click() (this=this@entry=0x1c9bc80) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:364
#24 0x00007ffff78b22a1 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:976
#25 0x00007ffff79c1b94 in QToolButton::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, e=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:587
#26 0x00007ffff77e81d0 in QWidget::event(QEvent*) (this=this@entry=0x1d27ce0, event=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidget.cpp:9022
#27 0x00007ffff78b34e2 in QAbstractButton::event(QEvent*) (this=this@entry=0x1d27ce0, e=e@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qabstractbutton.cpp:933
#28 0x00007ffff79c1c2b in QToolButton::event(QEvent*) (this=0x1d27ce0, event=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/widgets/qtoolbutton.cpp:996
#29 0x00007ffff7790afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x15e6330, receiver=receiver@entry=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3288
#30 0x00007ffff7796ce0 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x1d27ce0, e=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:2766
#31 0x00007ffff5558b67 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
#32 0x00007ffff5558c59 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1596
#33 0x00007ffff7795ef6 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
(receiver=receiver@entry=0x1d27ce0, event=event@entry=0x7fffffffbf20, alienWidget=alienWidget@entry=0x1d27ce0, nativeWidget=0x7fffffffc860, buttonDown=buttonDown@entry=0x7ffff7db69a0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:2347
#34 0x00007ffff77fd27b in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=this@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidgetwindow.cpp:649
#35 0x00007ffff77ff44b in QWidgetWindow::event(QEvent*) (this=0x3b39560, event=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qwidgetwindow.cpp:263
#36 0x00007ffff7790afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x15e6330, receiver=receiver@entry=0x3b39560, e=e@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3288
#37 0x00007ffff7798338 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffceb0, receiver=0x3b39560, e=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/widgets/kernel/qapplication.cpp:3239
#38 0x00007ffff5558b67 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
#39 0x00007ffff5558c59 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x3b39560, event=event@entry=0x7fffffffc330) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qcoreapplication.cpp:1596
#40 0x00007ffff6db4c17 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=e@entry=0x7fff00001aa0) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qguiapplication.cpp:2327
#41 0x00007ffff6db694d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x7fff00001aa0) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qguiapplication.cpp:2071
#42 0x00007ffff6e127ee in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1114
#43 0x00007fffeeae50b6 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /home/jonas/Projects/qtbase/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
#44 0x00007ffff4af2710 in () at /lib64/libglib-2.0.so.0
#45 0x00007ffff4af4358 in () at /lib64/libglib-2.0.so.0
#46 0x00007ffff4af4a0c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#47 0x00007ffff57c5993 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1690510, flags=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:395
#48 0x00007fffeeae545e in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/jonas/Projects/qtbase/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
#49 0x00007ffff55629de in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffc740, flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/kernel/qeventloop.cpp:100
#50 0x00007ffff55631f9 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffc740, flags=flags@entry=...) at /home/jonas/Projects/qtbase/qtbase/src/corelib/global/qflags.h:34
#51 0x00007ffff555c285 in QCoreApplication::exec() () at /home/jonas/Projects/qtbase/qtbase/src/corelib/global/qflags.h:74
#52 0x00000000004ad05b in main(int, char**) (argc=1, argv=0x7fffffffd738) at /home/jonas/Projects/strawberry/strawberry/src/main.cpp:323
No crash
Crash
command
Thanks. In strawberry's case this regression was severe, since we use volume elements to mute and for fading features, it would just run through skipping the entire playlist if the user used mute or certain fading features were enabled.
Yes, as far as I remember, but I do not have an active subscription to test now. I paid 3 months subscription to implement Spotify, but it was blocking the GUI thread so that was a blocker for me, any idea if that's fixed?
Attaching log with GST_DEBUG=5
Yes, if I a plugin is missing (flac, claxon and libav removed to reproduce the error), playbin3 shows the error "Internal data stream error", while playbin2 shows "Your GStreamer installation is missing a plug-in".
jonas@jonas:~> GST_DEBUG=3 gst-play-1.0 --use-playbin3 file:///home/jonas/Music/FLAC/Albums/Snowy_White/Highway_To_The_Sun/01_-_Snowy_White_-_Highway_To_The_Sun_-_Highway_To_The_Sun.flac
Press 'k' to see a list of keyboard shortcuts.
Now playing /home/jonas/Music/FLAC/Albums/Snowy_White/Highway_To_The_Sun/01_-_Snowy_White_-_Highway_To_The_Sun_-_Highway_To_The_Sun.flac
0:00:00.013913604 28072 0x7f9e440010a0 FIXME decodebin3 gstdecodebin3.c:1681:update_requested_selection:<decodebin3-0> Implement EXPOSE_ALL_MODE
0:00:00.014033269 28072 0x7f9e440010a0 FIXME decodebin3 gstdecodebin3-parse.c:454:unblock_pending_input:<decodebin3-0> Re-use existing input streams if/when possible
0:00:00.014189972 28072 0x7f9e44001260 FIXME decodebin3 gstdecodebin3.c:2254:get_output_for_slot:<decodebin3-0> emit autoplug-continue
0:00:00.014196487 28072 0x7f9e44001260 FIXME decodebin3 gstdecodebin3.c:2257:get_output_for_slot:<decodebin3-0> Handle EXPOSE_ALL_MODE
0:00:00.014542627 28072 0x7f9e44000ee0 WARN baseparse gstbaseparse.c:3702:gst_base_parse_loop:<flacparse0> error: Internal data stream error.
0:00:00.014553512 28072 0x7f9e44000ee0 WARN baseparse gstbaseparse.c:3702:gst_base_parse_loop:<flacparse0> error: streaming stopped, reason not-linked (-1)
ERROR Internal data stream error. for file:///home/jonas/Music/FLAC/Albums/Snowy_White/Highway_To_The_Sun/01_-_Snowy_White_-_Highway_To_The_Sun_-_Highway_To_The_Sun.flac
ERROR debug information: ../libs/gst/base/gstbaseparse.c(3702): gst_base_parse_loop (): /GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstFlacParse:flacparse0:
streaming stopped, reason not-linked (-1)
0:00:00.014624173 28072 0x7f9e440010a0 FIXME decodebin3 gstdecodebin3-parse.c:129:check_all_streams_for_eos:<multiqueue0:sink_0> Remove input stream
0:00:00.014632437 28072 0x7f9e44001260 FIXME decodebin3 gstdecodebin3.c:2560:multiqueue_src_probe:<multiqueue0:src_0> EOS on multiqueue source pad. input:0x7f9e2c005940
0:00:00.014654766 28072 0x7f9e44001260 FIXME decodebin3 gstdecodebin3.c:2560:multiqueue_src_probe:<multiqueue0:src_0> EOS on multiqueue source pad. input:0x7f9e2c005940
Reached end of play list.
I periodically see this:
C:\>gst-launch-1.0 filesrc location=c:/Users/jonas/Music/Snowy_White/Highway_To_The_Sun/05_-_Snowy_White_-_Highway_To_The_Sun_-_The_Time_Has_Come.flac ! decodebin ! audioconvert ! asiosink device-clsid="\{90140790-B6B9-4F97-82FD-5240982AAA7C\}"
Use Windows high-resolution clock, precision: 1 ms
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
CPU info (x86-64):
CMOV ....... Y
MMX ........ Y
SSE ........ Y
SSE2 ....... Y
SSE3 ....... Y
SSSE3 ...... Y
SSE41 ...... Y
SSE42 ...... Y
AVX ........ Y
FMA ........ Y
AVX2 ....... Y
BMI2 ....... Y
AVX OS sup . Y
Redistribute latency...
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbaseparse.c(3702): gst_base_parse_loop (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
**
ERROR:../sys/asio/gstasioringbuffer.cpp:469:gst_asio_ring_buffer_get_caps: assertion failed: (buf->asio_object != nullptr)
Bail out! ERROR:../sys/asio/gstasioringbuffer.cpp:469:gst_asio_ring_buffer_get_caps: assertion failed: (buf->asio_object != nullptr)
The audio also periodically plays faster than normal speed.
Low distorted audio in exclusive mode.
This is on a Mcintosh DA2 DAC. The display shows it's playing the file without resampling in 44.4KHz 16 bit.
Play audio.
Attaching debug log.
command
SET GST_DEBUG=4,wasapi*:6
gst-launch-1.0 filesrc location=c:/Users/jonas/Music/Snowy_White/Highway_To_The_Sun/05_-_Snowy_White_-_Highway_To_The_Sun_-_The_Time_Has_Come.flac ! decodebin ! audioconvert ! wasapisink device="\{0.0.0.00000000\}.\{6ae58894-0112-49fa-a790-6d7e9d27da23\}" exclusive=1
Every time.
libgme has had a .pc file at least since version 0.6.0 (2015).
I'm building even on Windows with the provided .pc file.
Jonas Kvinge (9f6b57cb) at 22 Feb 20:24
gme: Use dependency to find libgme
faad have had a .pc file since version 2.9.2.
Jonas Kvinge (2bfb1ac9) at 22 Feb 20:06
faad: Use dependency to find faad2
Jonas Kvinge (781fc4a1) at 22 Feb 19:48
avviddec: Fix crash with FFmpeg n6.0
... and 48 more commits
Line 737 in gstasioobject.cpp needs to be changed to.:
g_new0 (gboolean, self->max_num_output_channels);
It's using input channels there too.
I can confirm it works after that change.
Line 737 in gstasioobject.cpp needs to be changed to.:
g_new0 (gboolean, self->max_num_output_channels);
It's using input channels there too.
It crashes:
Exception thrown: write access violation.
obj->**output_channel_requested** was 0x111011101110112.
> gstasio.dll!gst_asio_object_create_buffers(_GstAsioObject * obj, GstAsioDeviceClassType type, unsigned int * channel_indices, unsigned int num_channels, unsigned int * buffer_size) Line 1306 C++
gstasio.dll!gst_asio_ring_buffer_configure(_GstAsioRingBuffer * buf, unsigned int * channel_indices, unsigned int num_channles, unsigned int preferred_buffer_size) Line 439 C++
gstasio.dll!gst_asio_sink_create_ringbuffer(_GstAudioBaseSink * sink) Line 341 C++
gstaudio-1.0-0.dll!gst_audio_base_sink_create_ringbuffer(_GstAudioBaseSink * sink) Line 2287 C
gstaudio-1.0-0.dll!gst_audio_base_sink_change_state(_GstElement * element, GstStateChange transition) Line 2425 C
gstreamer-1.0-0.dll!gst_element_change_state(_GstElement * element, GstStateChange transition) Line 3101 C
gstreamer-1.0-0.dll!gst_element_set_state_func(_GstElement * element, GstState state) Line 3055 C
gstreamer-1.0-0.dll!gst_element_set_state(_GstElement * element, GstState state) Line 2956 C
gstreamer-1.0-0.dll!gst_bin_element_set_state(_GstBin * bin, _GstElement * element, unsigned __int64 base_time, unsigned __int64 start_time, GstState current, GstState next) Line 2582 C
gstreamer-1.0-0.dll!gst_bin_change_state_func(_GstElement * element, GstStateChange transition) Line 2934 C
gstreamer-1.0-0.dll!gst_element_change_state(_GstElement * element, GstStateChange transition) Line 3101 C
gstreamer-1.0-0.dll!gst_element_set_state_func(_GstElement * element, GstState state) Line 3055 C
gstreamer-1.0-0.dll!gst_element_set_state(_GstElement * element, GstState state) Line 2956 C
gstplayback.dll!activate_sink(_GstPlayBin * playbin, _GstElement * sink, int * activated) Line 4528 C
gstplayback.dll!activate_group(_GstPlayBin * playbin, _GstSourceGroup * group, GstState target) Line 5316 C
gstplayback.dll!setup_next_source(_GstPlayBin * playbin, GstState target) Line 5742 C
gstplayback.dll!gst_play_bin_change_state(_GstElement * element, GstStateChange transition) Line 5872 C
gstreamer-1.0-0.dll!gst_element_change_state(_GstElement * element, GstStateChange transition) Line 3101 C
gstreamer-1.0-0.dll!gst_element_continue_state(_GstElement * element, GstStateChangeReturn ret) Line 2809 C
gstreamer-1.0-0.dll!gst_element_change_state(_GstElement * element, GstStateChange transition) Line 3140 C
gstreamer-1.0-0.dll!gst_element_set_state_func(_GstElement * element, GstState state) Line 3055 C
gstreamer-1.0-0.dll!gst_element_set_state(_GstElement * element, GstState state) Line 2956 C
strawberry.exe!std::invoke<enum GstStateChangeReturn (__cdecl*&)(_GstElement *,enum GstState),_GstElement * &,enum GstState &>(GstStateChangeReturn(*)(_GstElement *, GstState) & _Obj, _GstElement * & _Arg1, GstState & <_Args2_0>) Line 1739 C++
strawberry.exe!QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor::__l2::<lambda_1>::operator()(GstStateChangeReturn(*)(_GstElement *, GstState) function, _GstElement * <args_0>, GstState <args_1>) Line 117 C++
strawberry.exe!std::invoke<`QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor'::`2'::<lambda_1> const &,enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>(const QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor::__l2::<lambda_1> & _Obj, GstStateChangeReturn(*)(_GstElement *, GstState) && _Arg1, _GstElement * && <_Args2_0>, GstState && <_Args2_1>) Line 1754 C++
strawberry.exe!std::_Apply_impl<`QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor'::`2'::<lambda_1> const &,std::tuple<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>,0,1,2>(const QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor::__l2::<lambda_1> & _Obj, std::tuple<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState> && _Tpl, std::integer_sequence<unsigned __int64,0,1,2> __formal) Line 1078 C++
strawberry.exe!std::apply<`QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor'::`2'::<lambda_1> const &,std::tuple<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>>(const QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor::__l2::<lambda_1> & _Obj, std::tuple<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState> && _Tpl) Line 1090 C++
strawberry.exe!QtConcurrent::StoredFunctionCall<enum GstStateChangeReturn (__cdecl*)(_GstElement *,enum GstState),_GstElement *,enum GstState>::runFunctor() Line 122 C++
strawberry.exe!QtConcurrent::RunFunctionTaskBase<enum GstStateChangeReturn>::run() Line 83 C++
Qt6Cored.dll!QThreadPoolThread::run() Line 66 C++
Qt6Cored.dll!QThreadPrivate::start(void * arg) Line 292 C++
kernel32.dll!00007ffa46657344() Unknown
ntdll.dll!00007ffa47b826b1() Unknown