mltframework / mltframework/mlt

Crash using the tremolo audio effect

Open
#595 8 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

I have added the tremolo effect to a slowed down audio clip with the reverse option enabled. When setting a value I get a crash:

Full log:
tremolo_crash.txt

Thread 85 (Thread 0x7fff4dffb700 (LWP 90420)):
#0  0x00007ffff1c47355 in raise () at /usr/lib/libc.so.6
#1  0x00007ffff1c30853 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff1c8a878 in __libc_message () at /usr/lib/libc.so.6
#3  0x00007ffff1c91d3a in  () at /usr/lib/libc.so.6
#4  0x00007ffff1c92f9c in _int_free () at /usr/lib/libc.so.6
#5  0x00007ffff1c958a5 in _int_memalign () at /usr/lib/libc.so.6
#6  0x00007ffff1c9686c in _mid_memalign () at /usr/lib/libc.so.6
#7  0x00007ffff1c97ea6 in posix_memalign () at /usr/lib/libc.so.6
#8  0x00007fffd9c7b126 in av_malloc () at /usr/lib/libavutil.so.56
#9  0x00007fffd9c7b32b in av_mallocz () at /usr/lib/libavutil.so.56
#10 0x00007fffd96fe8d8 in avfilter_graph_config () at /usr/lib/libavfilter.so.7
#11 0x00007fffdb42a469 in init_audio_filtergraph (channels=1308599392, frequency=, format=, filter=0x55555cc78760) at filter_avfilter.c:276
        pdata = 0x555567330110
        abuffersrc = 0x7fffd99435c0
        abuffersink = 0x7fffd99434c0
        sample_fmts = {1, -1}
        ret = 
        sample_rates = {48000, -1}
        channel_counts = {2, -1}
        channel_layouts = {3, -1}
        channel_layout_str = "stereo\000\000 !)W\376\177\000\000\300(P\004\377\177\000\000a\000\000\000\000\000\000\000\300\063)W\376\177\000\000\000s\023\367\377\177\000\000H\247\377M\377\177\000\000_\301\021\367\377\177\000"
        filter = 0x55555cc78760
        pdata = 0x555567330110
        fps = 
        samplepos = 843200
        bufsize = 6400
        ret = 
#12 filter_get_audio (frame=frame@entry=0x7fff045028c0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at filter_avfilter.c:588
        filter = 0x55555cc78760
        pdata = 0x555567330110
        fps = 
        samplepos = 843200
        bufsize = 6400
        ret = 
#13 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7fff045028c0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at mlt_frame.c:738
        get_audio = 0x7fffdb429fb0 
        properties = 0x7fff045028c0
        hide = 
        requested_format = 
#14 0x00007ffff712e61b in producer_get_audio (self=self@entry=0x7fff04200ba0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at mlt_tractor.c:420
        properties = 0x7fff04200ba0
        frame = 0x7fff045028c0
        frame_properties = 0x7fff045028c0
#15 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7fff04200ba0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at mlt_frame.c:738
        get_audio = 0x7ffff712e590 
        properties = 0x7fff04200ba0
        hide = 
        requested_format = 
#16 0x00007fffd65e12a8 in filter_get_audio (frame=frame@entry=0x7fff04200ba0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at filter_audiolevel.c:65
        filter = 0x55555c4f9100
        filter_props = 0x55555c4f9100
        iec_scale = 0
        error = 
        num_channels = 
        num_samples = 
        num_oversample = 
        c = 
        s = 
        key = "\240\v \004\377\177\000\000\071\000\000\000\000\000\000\000а\206\235\376\177\000\000\000s\023\367\377\177\000\000H\247\377M\377\177\000\000_\301\021\367\377\177\000\000P\261"
        pcm = 
#17 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7fff04200ba0, buffer=buffer@entry=0x7fff4dffa760, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa748, channels=channels@entry=0x7fff4dffa750, samples=samples@entry=0x7fff4dffa758) at mlt_frame.c:738
        get_audio = 0x7fffd65e1230 
        properties = 0x7fff04200ba0
        hide = 
        requested_format = 
#18 0x00007fffd64001b6 in transition_get_audio (frame_a=frame_a@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dffa8a8, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa88c, channels=channels@entry=0x7fff4dffa894, samples=samples@entry=0x7fff4dffa89c) at transition_mix.c:141
        frame_b = 
        transition = 0x55555ac904c0
        b_props = 0x7fff04200ba0
        self = 0x555569d35960
        buffer_b = 0x7ffe9d9516f0
        buffer_a = 0x7ffe9d9a40f0
        frequency_b = 48000
        frequency_a = 48000
        channels_b = 2
        channels_a = 2
        samples_b = 1600
        samples_a = 1600
        silent = 
        bytes = 
#19 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dffa8a8, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa88c, channels=channels@entry=0x7fff4dffa894, samples=samples@entry=0x7fff4dffa89c) at mlt_frame.c:738
        get_audio = 0x7fffd6400110 
        properties = 0x7ffe571653e0
        hide = 
        requested_format = 
#20 0x00007fffd64001d6 in transition_get_audio (frame_a=frame_a@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dffa9e8, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa9cc, channels=channels@entry=0x7fff4dffa9d4, samples=samples@entry=0x7fff4dffa9dc) at transition_mix.c:142
        frame_b = 
        transition = 0x55555ceff0f0
        b_props = 0x7ffe9d95b1e0
        self = 0x55556a5ff980
        buffer_b = 0x7ffe5738fb90
        buffer_a = 0x7ffe9d9a40f0
        frequency_b = 48000
        frequency_a = 48000
        channels_b = 2
        channels_a = 2
        samples_b = 1600
        samples_a = 1600
        silent = 
        bytes = 
#21 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dffa9e8, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x7fff4dffa9cc, channels=channels@entry=0x7fff4dffa9d4, samples=samples@entry=0x7fff4dffa9dc) at mlt_frame.c:738
        get_audio = 0x7fffd6400110 
        properties = 0x7ffe571653e0
        hide = 
        requested_format = 
#22 0x00007fffd64001d6 in transition_get_audio (frame_a=frame_a@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at transition_mix.c:142
        frame_b = 
        transition = 0x55555cd4c100
        b_props = 0x7fff0401f920
        self = 0x55556aec99a0
        buffer_b = 0x7fff0418a4c0
        buffer_a = 0x7ffe9d9a40f0
        frequency_b = 48000
        frequency_a = 48000
        channels_b = 2
        channels_a = 2
        samples_b = 1600
        samples_a = 1600
        silent = 
        bytes = 
#23 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7ffe571653e0, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at mlt_frame.c:738
        get_audio = 0x7fffd6400110 
        properties = 0x7ffe571653e0
        hide = 
        requested_format = 
#24 0x00007ffff712e61b in producer_get_audio (self=self@entry=0x7fff072d9820, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at mlt_tractor.c:420
        properties = 0x7fff072d9820
        frame = 0x7ffe571653e0
        frame_properties = 0x7ffe571653e0
#25 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7fff072d9820, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at mlt_frame.c:738
        get_audio = 0x7ffff712e590 
        properties = 0x7fff072d9820
        hide = 
        requested_format = 
#26 0x00007fffd65e12a8 in filter_get_audio (frame=frame@entry=0x7fff072d9820, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at filter_audiolevel.c:65
        filter = 0x55555cdec040
        filter_props = 0x55555cdec040
        iec_scale = 0
        error = 
        num_channels = 
        num_samples = 
        num_oversample = 
        c = 
        s = 
        key = " \230-\a\377\177\000\000[\000\000\000\000\000\000\000\300\201\r\216\376\177\000\000\000s\023\367\377\177\000\000\344\253\347XUU\000\000_\301\021\367\377\177\000\000\020W"
        pcm = 
#27 0x00007ffff711445a in mlt_frame_get_audio (self=self@entry=0x7fff072d9820, buffer=buffer@entry=0x7fff4dfface0, format=format@entry=0x555558e7aac0, frequency=frequency@entry=0x555558e7abe4, channels=channels@entry=0x555558e7abe0, samples=samples@entry=0x7fff4dffacdc) at mlt_frame.c:738
        get_audio = 0x7fffd65e1230 
        properties = 0x7fff072d9820
        hide = 
        requested_format = 
#28 0x00007ffff712b471 in consumer_read_ahead_thread (arg=) at mlt_consumer.c:886
        buffer = 31
        time_current = 
        self = 
        priv = 0x555558e7aab0
        properties = 
        width = 480
        height = 270
        video_off = 
        preview_off = 
        preview_format = 
        samples = 1600
        audio = 0x7ffe9d8714a0
        audio_off = 
        frame = 0x7fff072d9820
        image = 0x7fff788516f0 "}~{kw~vkv~vku~wj{~\177i\202~\210i\215\177\221h\226\177\230g\231\177\232g\234\200\236f\237\200\240f\240\200\240f\240\177\237f\236\177\235f\234\177\233g\232\177\231h\231\177\231h\231\177\232h\235\177\237h\240\177\244h\245\177\245h\246~\247i\250}\250i\250}\250i\251~\251j\251~\251j\252~\252j\252~\252j\251}\251i\247}\245i\242}\235j\233~\232j\231~\230j\230~\231j\233}\233i\233}\231i\224~\206jz~oj^}UkR~OkE~>l=~=l>~?mA\177CnF\177InJ\177KnL\177NnP\177RnU\177Xn`~en"...
        ante = {tv_sec = 1594761323, tv_usec = 711074}
        count = 
        skipped = 
        time_process = 
        skip_next = 
        pos = 
        start_pos = 
        last_pos = 
        frame_duration = 
        drop_max = 
#29 0x0000555555a02bd1 in RenderThread::run() (this=0x7fff10000b80) at /home/farid/kdenlive/src/monitor/glwidget.cpp:1450
#30 0x00007ffff21eee0f in  () at /usr/lib/libQt5Core.so.5
#31 0x00007ffff16c5422 in start_thread () at /usr/lib/libpthread.so.0
#32 0x00007ffff1d0abf3 in clone () at /usr/lib/libc.so.6

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

Reproduce the crash with a slowed audio clip, reverse enabled, and the tremolo effect while changing a value. Start at init_audio_filtergraph in filter_avfilter.c:276 and follow the audio path through filter_get_audio at filter_avfilter.c:588. Done means this scenario no longer crashes and the reported failure is covered by a regression check.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.