Crash with transform filter

farid abdelnour snd.noise at gmail.com
Mon Jul 6 16:07:50 BST 2020


Hi Rafal

I am unable to reproduce your issue with Kdenlive and MLT from master
following the steps you mentioned. Could you share the project file causing
this issue?

Do note that Kdenlive master branch received a big change recently in the
project file format making older versions of Kdenlive not able to open it
without manual modification. So if you'd like to test, make a backup of
your project file.

Cheers

Em dom., 5 de jul. de 2020 às 18:15, Rafal Lalik <rafallalik at gmail.com>
escreveu:

> Hi,
>
> I have a weird problem with transform filter. After applying it to an
> image, the playback causes abortion of kdenlive. i am able track the
> problem back to mlt.
>
>
>
> MWE is a project with still image (jpg).
>
> 1. Add an image to the track
> 2. Add transform effect
> 3. Try to play the clip in the timeline.
>
> For me the kdenlive crashes every time.
>
> I tried that with 20.04.2 and the git master. My mlt is 6.20.0.
>
>  From what I was able to find is that the QPainter in filter_qblend.cpp
> receives at some point width,height = 0,0, and QPainter fails with error:
>
> QPainter::begin: Paint device returned engine == 0, type: 3
> QPainter::setCompositionMode: Painter not active
> QPainter::setRenderHint: Painter must be active to set rendering hints
> QPainter::setWorldTransform: Painter not active
> QPainter::setOpacity: Painter not active
> QPainter::end: Painter not active, aborted
>
> in this code (I added my comments to highlight problematic places):
>
>
> uint8_t *dest_image = NULL;
> dest_image = (uint8_t *) mlt_pool_alloc( image_size );
>
> QImage destImage;
> // width, height here is (sometimes) 0,0
> convert_mlt_to_qimage_rgba( dest_image, &destImage, *width, *height );
> // destImage has size of 0x0
> destImage.fill( mlt_properties_get_int( properties, "background_color" ) );
>
> QPainter painter( &destImage );
> painter.setCompositionMode( ( QPainter::CompositionMode )
> mlt_properties_get_int( properties, "compositing" ) );
> painter.setRenderHints( QPainter::Antialiasing |
> QPainter::SmoothPixmapTransform );
> painter.setTransform(transform);
> painter.setOpacity(opacity);
> // painter breaks after trying painting on image 0x0
> painter.drawImage(0, 0, sourceImage);
>
>
> what is followed with bad image in destImage and an assertion fail from
> following code inside:
>
> convert_qimage_to_mlt_rgba( &destImage, dest_image, *width, *height );
>
>
> ASSERT: "mImg == qImg->constBits()" in file common.cpp, line 63
>
>
> I was not able to find why width,height are equal to 0,0
>
>
> Do you have any idea how to trace back the problem to its source?
>
> Regards,
> Rafał
>


-- 
1111.1010.r.i.1101|n.o.i.s.1110|i.m.1010.g.1110|مقاومة
fsf member #5439
usuario GNU/Linux #471966
|_|0|_|
|_|_|0|
|0|0|0|
<a href="http://www.gunga.com.br">gunga</a>
<a href="http://www.tempoecoarte.com.br">tempoecoarte</a>
<a href="http://www.atelier-labs.org">atelier-labs</a>
<a href="http://www.mocambos.net">rede mocambos</a>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20200706/a37b9361/attachment.htm>


More information about the kdenlive mailing list