Thread: [Mlt-devel] dead lock in kdenlive with latest git
Brought to you by:
ddennedy,
lilo_booter
From: Ed R. <ed....@gm...> - 2013-04-27 12:08:52
|
Hi Dan, I have trouble with the latest commit in mlt. Seeking is only possible one time and if playback is started kdenlive hangs forever. I tried it also with the latest build from teamcity. I think there is a dead lock or something like that in the new mlt_consumer_purge logic. Do we have to change some settings in the app for the consumer ??? Or do we have an unwanted side effect? regards eddrog |
From: Ed R. <ed....@gm...> - 2013-04-27 13:42:38
|
Oh sorry, the dead lock I got from my jack setup. Now it works but I get a crash if I play in the clip-monitor and I switch to the project monitor. Program received signal SIGSEGV, Segmentation fault. 0x00007ffff4931339 in mlt_properties_dec_ref (self=0xf0bf4ad45255d245) at mlt_properties.c:386 386 mlt_properties.c: Datei oder Verzeichnis nicht gefunden. bt #0 0x00007ffff4931339 in mlt_properties_dec_ref (self=0xf0bf4ad45255d245) at mlt_properties.c:386 #1 0x00007ffff492c6da in mlt_frame_close (self=0xf0bf4ad45255d245) at mlt_frame.c:914 #2 0x00007ffff4940d3e in mlt_consumer_purge (self=0x280b0d0) at mlt_consumer.c:1230 #3 0x00007fffd7f63173 in consumer_purge (parent=0x1cbc5a0) at consumer_sdl_preview.c:283 #4 0x00007ffff4940d21 in mlt_consumer_purge (self=0x1cbc5a0) at mlt_consumer.c:1227 #5 0x00007ffff4710c6f in Mlt::Consumer::purge() () from /home/eddrog/Downloads/kdenlive/kdenlive/./lib/libmlt++.so.3 #6 0x000000000071da0d in Render::seek (this=0x1a08310, time=350) at /opt/buildAgent/work/bbab7a538eb594f3/src/kdenlive/src/renderer.cpp:429 #7 0x00000000005beac0 in CustomTrackView::seekCursorPos (this=0x316cb70, pos=350) at /opt/buildAgent/work/bbab7a538eb594f3/src/kdenlive/src/customtrackview.cpp:3610 #8 0x00000000005a5adb in CustomTrackView::mousePressEvent (this=0x316cb70, event=0x7fffffffca20) at /opt/buildAgent/work/bbab7a538eb594f3/src/kdenlive/src/customtrackview.cpp:1011 #9 0x00007ffff56fda70 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #10 0x00007ffff5ab0316 in QFrame::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #11 0x00007ffff5cc80db in QGraphicsView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #12 0x00007ffff4cc97a6 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #13 0x00007ffff56b08bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #14 0x00007ffff56b3a33 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #15 0x00007ffff79beaf6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #16 0x00007ffff4cc963e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #17 0x00007ffff56b6933 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #18 0x00007ffff572bec4 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #19 0x00007ffff572aef1 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #20 0x00007ffff57560b2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #21 0x00007fffefd55f05 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007fffefd56248 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #23 0x00007fffefd56304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #24 0x00007ffff4cf8036 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #25 0x00007ffff57561ae in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #26 0x00007ffff4cc838f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #27 0x00007ffff4cc8618 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #28 0x00007ffff4ccdcf6 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #29 0x00000000004f3caa in main (argc=2, argv=0x7fffffffdc28) at /opt/buildAgent/work/bbab7a538eb594f3/src/kdenlive/src/main.cpp:89 regards eddrog 2013/4/27 Ed Rogalsky <ed....@gm...> > Hi Dan, > > I have trouble with the latest commit in mlt. Seeking is only possible one > time and if > playback is started kdenlive hangs forever. > > I tried it also with the latest build from teamcity. > > I think there is a dead lock or something like that in the new > mlt_consumer_purge logic. > > Do we have to change some settings in the app for the consumer ??? Or do > we have an > unwanted side effect? > > > regards > > eddrog > > > > > > |
From: Dan D. <dde...@gm...> - 2013-04-27 16:43:04
|
On Sat, Apr 27, 2013 at 6:42 AM, Ed Rogalsky <ed....@gm...> wrote: > Oh sorry, > > the dead lock I got from my jack setup. Now it works but I get a crash if I > play in the clip-monitor and I switch to the project monitor. > > Program received signal SIGSEGV, Segmentation fault. > 0x00007ffff4931339 in mlt_properties_dec_ref (self=0xf0bf4ad45255d245) at > mlt_properties.c:386 > 386 mlt_properties.c: Datei oder Verzeichnis nicht gefunden. > bt > #0 0x00007ffff4931339 in mlt_properties_dec_ref (self=0xf0bf4ad45255d245) > at mlt_properties.c:386 > #1 0x00007ffff492c6da in mlt_frame_close (self=0xf0bf4ad45255d245) at > mlt_frame.c:914 > #2 0x00007ffff4940d3e in mlt_consumer_purge (self=0x280b0d0) at > mlt_consumer.c:1230 I believe this fixes it. I am about to commit it. diff --git a/src/framework/mlt_consumer.c b/src/framework/mlt_consumer.c index 866ebf2..5cd7bc6 100644 --- a/src/framework/mlt_consumer.c +++ b/src/framework/mlt_consumer.c @@ -1226,7 +1226,7 @@ void mlt_consumer_purge( mlt_consumer self ) if ( self->purge ) self->purge( self ); - while ( mlt_deque_count( self->queue ) ) + while ( self->ahead && mlt_deque_count( self->queue ) ) mlt_frame_close( mlt_deque_pop_back( self->queue ) ); if ( self->ahead && self->real_time ) { +-DRD-+ |
From: Ed R. <ed....@gm...> - 2013-04-27 20:07:55
|
Yap. Thanx! 2013/4/27 Dan Dennedy <dde...@gm...> > On Sat, Apr 27, 2013 at 6:42 AM, Ed Rogalsky <ed....@gm...> > wrote: > > Oh sorry, > > > > the dead lock I got from my jack setup. Now it works but I get a crash > if I > > play in the clip-monitor and I switch to the project monitor. > > > > Program received signal SIGSEGV, Segmentation fault. > > 0x00007ffff4931339 in mlt_properties_dec_ref (self=0xf0bf4ad45255d245) at > > mlt_properties.c:386 > > 386 mlt_properties.c: Datei oder Verzeichnis nicht gefunden. > > bt > > #0 0x00007ffff4931339 in mlt_properties_dec_ref > (self=0xf0bf4ad45255d245) > > at mlt_properties.c:386 > > #1 0x00007ffff492c6da in mlt_frame_close (self=0xf0bf4ad45255d245) at > > mlt_frame.c:914 > > #2 0x00007ffff4940d3e in mlt_consumer_purge (self=0x280b0d0) at > > mlt_consumer.c:1230 > > > I believe this fixes it. I am about to commit it. > > diff --git a/src/framework/mlt_consumer.c b/src/framework/mlt_consumer.c > index 866ebf2..5cd7bc6 100644 > --- a/src/framework/mlt_consumer.c > +++ b/src/framework/mlt_consumer.c > @@ -1226,7 +1226,7 @@ void mlt_consumer_purge( mlt_consumer self ) > if ( self->purge ) > self->purge( self ); > > - while ( mlt_deque_count( self->queue ) ) > + while ( self->ahead && mlt_deque_count( self->queue ) ) > mlt_frame_close( mlt_deque_pop_back( self->queue ) ); > if ( self->ahead && self->real_time ) > { > > > +-DRD-+ > |