Hello! I started to rework the monitor code from Kdenlive, largely taking inspiration from Shotcut, and wanted to let you know a few things that I encountered.
1) For me, Shotcut crashes at startup with a reference to QOpenGLContext::shareGroup() in the backtrace, as described in several issues reported, like: https://github.com/mltframework/shotcut/issues/59 I could fix the crash with the following patch, don't know what you think of it ? diff --git a/src/glwidget.cpp b/src/glwidget.cpp index d29cd4b..2160f54 100644 --- a/src/glwidget.cpp +++ b/src/glwidget.cpp @@ -128,7 +128,7 @@ void GLWidget::initializeGL() openglContext()->doneCurrent(); m_frameRenderer = new FrameRenderer(openglContext()); - openglContext()->makeCurrent(openglContext()->surface()); + openglContext()->makeCurrent(this); connect(m_frameRenderer, SIGNAL(frameDisplayed(const SharedFrame&)), this, SIGNAL(frameDisplayed(const SharedFrame&)), Qt::QueuedConnection); connect(m_frameRenderer, SIGNAL(textureReady(GLuint,GLuint,GLuint)), SLOT(updateTexture(GLuint,GLuint,GLuint)), Qt::DirectConnection); ---------------------------------------------------------- 2) When using GPU processing (Movit), I can reliably crash shotcut by doing the following: 1. Open shotcut 2. Click Open File to display a clip in monitor 3. repeat step 2. a few times leads to a crash with mention of a "corrupted double-linked list", see backtrace at the end of the mail. When trying to use shotcut's code in Kdenlive, I also encountered this crash. I could fix that crash by commenting out line 450 in src/glwidget.cpp: //self->stopGlsl(); But I guess this hides another problem in MLT/Movit. Any idea on this one ? Otherwise, it's working great, and having a qml scene on top of the monitor display opens some great possibilities. I still have several other issues that I will raise in the next days. best regards jb ----- backtrace for crash 2) in shotcut ------------ Thread 1 (Thread 0x7ffff7e07780 (LWP 6990)): #0 0x00007ffff4e54267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 #1 0x00007ffff4e55eca in __GI_abort () at abort.c:89 #2 0x00007ffff4e97c53 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff4fb01a8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 #3 0x00007ffff4ea02de in malloc_printerr (ptr=<optimized out>, str=0x7ffff4fac2dd "corrupted double-linked list", action=1) at malloc.c:4965 #4 _int_free (av=0x7fff94000020, p=<optimized out>, have_lock=0) at malloc.c:3972 #5 0x00007ffff4ea389c in __GI___libc_free (mem=<optimized out>) at malloc.c:2950 #6 0x00007fffc587aea7 in ff_mpv_common_end (s=s@entry=0x7fff94111180) at libavcodec/mpegvideo.c:1558 #7 0x00007fffc551ec87 in mpeg_decode_end (avctx=<optimized out>) at libavcodec/mpeg12dec.c:2808 #8 0x00007fffc553245c in avcodec_close (avctx=0x7fff94071a60) at libavcodec/utils.c:2841 #9 0x00007fffc66c23d6 in producer_avformat_close (self=0x4a87070) ---Type <return> to continue, or q <return> to quit--- at producer_avformat.c:2612 #10 0x00007ffff79aa8fe in cache_object_close (cache=0x14081f0, object=0x1b4e, data=0x0) at mlt_cache.c:142 #11 0x00007ffff79aab92 in mlt_cache_purge (cache=0x14081f0, object=object@entry=0x4a30ca0) at mlt_cache.c:283 #12 0x00007ffff799da87 in mlt_service_cache_purge (self=self@entry=0x4a30ca0) at mlt_service.c:776 #13 0x00007fffc66c2309 in producer_close (parent=0x4a30ca0) at producer_avformat.c:2668 #14 0x00007ffff7bccb75 in Mlt::Producer::~Producer() () from /usr/local/lib/libmlt++.so.3 #15 0x00007ffff7bccbde in Mlt::Producer::~Producer() () from /usr/local/lib/libmlt++.so.3 #16 0x000000000046cecc in ?? () #17 0x000000000046de6a in ?? () #18 0x000000000046125c in ?? () #19 0x00000000004619f6 in ?? () #20 0x0000000000554687 in ?? () #21 0x00007ffff61e29c9 in QMetaObject::activate (sender=sender@entry=0x1045810, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffcde0) at kernel/qobject.cpp:3716 #22 0x00007ffff61e3057 in QMetaObject::activate (sender=sender@entry=0x1045810, m=m@entry=0x7ffff7951b40 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffcde0) ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel