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

Reply via email to