mltframework / mltframework/mlt
kdenlive: filter_movit_convert.cpp:204: void build_fingerprint(mlt_service, mlt_frame, std::string*): Assertion `effect' failed.
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.1ubuntu20.04.1
kdenlive 4:20.07+git202006011026
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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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