mltframework / mltframework/mlt

kdenlive: filter_movit_convert.cpp:204: void build_fingerprint(mlt_service, mlt_frame, std::string*): Assertion `effect' failed.

Open
#576 18 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.9k
Forks
387
Avg merge
17h 28m
Merged PRs (30d)
8

Description

(reproduction steps and materiall in the attachment along with system setup, libraries, etc).

Whenever GPU acceleration is enabled in kdenlive master + libmlt master, if I do composite transform of an image onto a video, it crashes with this assertion (kdenlive crashes on load).
I can't generate the mlt script, kdenlive crashes immediately.

libmlt 6.21+git202005312040-1ubuntu20.04.1
kdenlive 4:20.07+git202006011026
ubuntu20.04.1

this happens all the time, regardless of source material.

It also happens w/ just melt command line.

kdenlive: filter_movit_convert.cpp:204: void build_fingerprint(mlt_service, mlt_frame, std::string*): Assertion `effect' failed.
--Type <RET> for more, q to quit, c to continue without paging--

Thread 95 "RenderThread" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffe98d8e700 (LWP 1404659)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff4be5859 in __GI_abort () at abort.c:79
#2  0x00007ffff4be5729 in __assert_fail_base
    (fmt=0x7ffff4d7b588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7fff30e9d524 "effect", file=0x7fff30e9d71b "filter_movit_convert.cpp", line=204, function=<optimized out>) at assert.c:92
#3  0x00007ffff4bf6f36 in __GI___assert_fail
    (assertion=assertion@entry=0x7fff30e9d524 "effect", file=file@entry=0x7fff30e9d71b "filter_movit_convert.cpp", line=line@entry=204, function=function@entry=0x7fff30e9d9e0 "void build_fingerprint(mlt_service, mlt_frame, std::string*)") at assert.c:101
#4  0x00007fff30e95862 in build_fingerprint(mlt_service, mlt_frame, std::string*)
    (service=service@entry=0x5555584fac00, frame=frame@entry=0x7ffe6c0e69d0, fingerprint=fingerprint@entry=0x7ffe98d8daa0) at filter_movit_convert.cpp:200
#5  0x00007fff30e95275 in build_fingerprint(mlt_service, mlt_frame, std::string*)
    (service=service@entry=0x55555c973280, frame=frame@entry=0x7ffe6c0e69d0, fingerprint=fingerprint@entry=0x7ffe98d8daa0) at filter_movit_convert.cpp:207
#6  0x00007fff30e9705b in finalize_movit_chain (frame=0x7ffe6c0e69d0, leaf_service=0x55555c973280) at filter_movit_convert.cpp:312
#7  convert_image(mlt_frame, uint8_t**, mlt_image_format*, mlt_image_format)
    (frame=<optimized out>, image=0x7ffe98d8dc78, format=0x5555593f3b3c, output_format=mlt_image_glsl_texture) at filter_movit_convert.cpp:602
#8  0x00007ffff71e7403 in mlt_frame_get_image (self=0x7ffe6c0e69d0, buffer=0x7ffe98d8dc78, format=0x5555593f3b3c, width=0x7ffe98d8dc64, height=<optimized out>, writable=0)
    at mlt_frame.c:626
#9  0x00007ffff71fdd00 in producer_get_image
    (self=self@entry=0x7ffe6c01cc90, buffer=buffer@entry=0x7ffe98d8dc78, format=format@entry=0x5555593f3b3c, width=width@entry=0x7ffe98d8dc64, height=height@entry=0x7ffe98d8dc68, writable=writable@entry=0) at mlt_tractor.c:371
#10 0x00007ffff71e73a3 in mlt_frame_get_image (self=0x7ffe6c01cc90, buffer=0x7ffe98d8dc78, format=0x5555593f3b3c, width=0x7ffe98d8dc64, height=0x7ffe98d8dc68, writable=0)
    at mlt_frame.c:620
#11 0x00007ffff71fb0e8 in consumer_read_ahead_thread (arg=<optimized out>) at mlt_consumer.c:828
#12 0x00005555558f8cf1 in RenderThread::run() (this=0x7ffe74000b80) at ./src/monitor/glwidget.cpp:1459
#13 0x00007ffff51a09d2 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff43e6609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#15 0x00007ffff4ce2103 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

bug.zip

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in filter_movit_convert.cpp at build_fingerprint() around line 204, then trace the callers finalize_movit_chain() and convert_image() shown in the backtrace. Reproduce with the attached bug.zip using GPU acceleration and melt; done means the composite transform no longer aborts on the assertion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.