View Issue Details

IDProjectCategoryView StatusLast Update
0000647Cinelerra-GGBugpublic2026-01-08 19:21
ReporterAndrew-R Assigned ToPhyllisSmith  
PrioritynormalSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
Platformtermux aarch64OSAndroid 11 
Summary0000647: Audio segfaults on termux
DescriptionI was unable to dig WHY it fails afternearly 3 years.

So, just gdb output for now.
Steps To Reproduce1. Compile cingg for termux aarch64 using blds/termux-dyn.bld

2. run it using cin.sh

3. Load video + audio media.

4. Uncheck direct x11 in playback Preferences.

5. It should play w/o audio.

6. Try to render both audio and video into mp4 (h264/aac).

7. See crash
TagsNo tags attached.
Attached Files
gdb-audio-segfault-termux.log (12,505 bytes)   
#0  0x00000000 in  ()
#1  0x0849fc1e in Garbage::remove_user() ()
#2  0x083d97c4 in CICache::check_out(Asset*, EDL*, int) ()
#3  0x085de98c in VEdit::read_frame(VFrame*, long long, int, CICache*, int, int, int) ()
#4  0x085eabf1 in VRender::process_buffer(long long, int) ()
#5  0x085eae7a in VRender::process_buffer(VFrame*, long long, int) ()
#6  0x085e65b0 in VModule::import_frame(VFrame*, VEdit*, long long, double, int, int) ()
#7  0x085e67a6 in VModule::render(VFrame*, long long, int, double, int, int, int) ()
#8  0x085e4f3b in VirtualVNode::read_data(VFrame*, long long, double, int) ()
#9  0x085e4c9c in VirtualVNode::render_as_module(VFrame*, VFrame*, long long, double, int) ()
#10 0x085e4d36 in VirtualVNode::render(VFrame*, long long, double, int) ()
#11 0x085e4257 in VirtualVConsole::process_buffer(long long, int) ()
#12 0x085ead2d in VRender::process_buffer(long long, int) ()
#13 0x085eaf77 in VRender::run() ()
#14 0x086b0a83 in Thread::entrypoint(void*) ()
#15 0xf53af328 in start_thread () at /lib/libpthread.so.0
#16 0xf4d45f06 in clone () at /lib/libc.so.6
#0  0xf4c6aa1a in raise () at /lib/libc.so.6
#1  0xf4c4e2d5 in abort () at /lib/libc.so.6
#2  0xf4c4e1be in plural_eval.cold () at /lib/libc.so.6
#3  0xf4c61266 in  () at /lib/libc.so.6
#4  0xf53b19d4 in pthread_mutex_lock () at /lib/libpthread.so.0
#5  0x086aa85f in Mutex::lock(char const*) ()
#6  0x0849fb38 in Garbage::add_user() ()
#7  0x083d9717 in CICache::check_out(Asset*, EDL*, int) ()
#8  0x085de98c in VEdit::read_frame(VFrame*, long long, int, CICache*, int, int, int) ()
#9  0x085eabf1 in VRender::process_buffer(long long, int) ()
#10 0x085eae7a in VRender::process_buffer(VFrame*, long long, int) ()
#11 0x085e65b0 in VModule::import_frame(VFrame*, VEdit*, long long, double, int, int) ()
#12 0x085e67a6 in VModule::render(VFrame*, long long, int, double, int, int, int) ()
#13 0x085e4f3b in VirtualVNode::read_data(VFrame*, long long, double, int) ()
#14 0x085e4c9c in VirtualVNode::render_as_module(VFrame*, VFrame*, long long, double, int) ()
#15 0x085e4d36 in VirtualVNode::render(VFrame*, long long, double, int) ()
#16 0x085e4257 in VirtualVConsole::process_buffer(long long, int) ()
#17 0x085ead2d in VRender::process_buffer(long long, int) ()
#18 0x085eaf77 in VRender::run() ()
#19 0x086b0a83 in Thread::entrypoint(void*) ()
#20 0xf53af328 in start_thread () at /lib/libpthread.so.0
#21 0xf4d45f06 in clone () at /lib/libc.so.6
#0  0x0849fba9 in Garbage::remove_user() (this=0xa8636d0) at garbage.C:76
        This = 0xa8636d0
#1  0x083d97c4 in CICache::check_out(Asset*, EDL*, int) (this=0xa8636d0, asset=
    0xe0bd9bd0, edl=0xe0bb5340, block=1) at cache.C:128
        current = <optimized out>
        tid = -859837696
        parent = <optimized out>
#2  0x085de98c in VEdit::read_frame(VFrame*, long long, int, CICache*, int, int, int) (this=0xe0bdbe20, video_out=
    0x9229830, input_position=<optimized out>, direction=0, cache=0xa8636d0, use_nudge=1, use_cache=1, use_asynchronous=0) at vedit.C:98
        file = 0x0
        result = 0
        source_position = 0
        asset = 0xe0bd9bd0
#3  0x085eabf1 in VRender::process_buffer(long long, int) (this=
    0xe0be0960, input_position=0, use_opengl=1) at vrender.C:212
        playable_edit = 0xe0bdbe20
        colormodel = <optimized out>
        use_vconsole = <optimized out>
        use_brender = 0
        result = 0
        use_cache = 1
        debug = 0
#4  0x085eae7a in VRender::process_buffer(VFrame*, long long, int)
    (this=0xe0be0960, video_out=0x9229830, input_position=0, use_opengl=1)
    at vrender.C:129
        render_len = 1
        reconfigure = <optimized out>
#5  0x085e65b0 in VModule::import_frame(VFrame*, VEdit*, long long, double, int, int)
    (this=<optimized out>, output=<optimized out>, current_edit=0x9234b30, input_position=0, frame_rate=9.6152999999999995, direction=0, use_opengl=<optimized out>) at vmodule.C:585
        input = <synthetic pointer>
        nested_cmodel = 10
        current_cmodel = 10
        nested_position = 0
        pos = <optimized out>
        position = 0
        use_cache = 1
        asset_w = 320
        asset_h = <optimized out>
        len = <optimized out>
        speed_autos = <optimized out>
        video_length = <optimized out>
        input = @0xcb078248: 0xe0be0f70
        file = <optimized out>
        direction_position = <optimized out>
        in_x = 0
        in_y = 0
        in_w = 320
        in_h = 240
        out_x = 0
        out_y = 0
        out_w = 320
        out_h = 240
        result = 0
        edl_rate = <optimized out>
        input_position_project = 0
        x11_device = <optimized out>
#6  0x085e67a6 in VModule::render(VFrame*, long long, int, double, int, int, int) (this=
    0x925b300, output=0x9229830, start_position=0, direction=0, frame_rate=9.6152999999999995, use_nudge=0, debug_render=0, use_opengl=1) at vmodule.C:760
        result = 0
        edl_rate = <optimized out>
        start_position_project = <optimized out>
        current_edit = 0x9234b30
        previous_edit = 0x0
        transition = 0x0
        __PRETTY_FUNCTION__ = "int VModule::render(VFrame*, int64_t, int, double, int, int, int)"
        current = 0xf4df7740 <main_arena>
        keyframe_set = <optimized out>
        mask_position = <optimized out>
        keyframe = <optimized out>
#7  0x085e4f3b in VirtualVNode::read_data(VFrame*, long long, double, int)
    (this=
    0xcb06c200, output_temp=0x9229830, start_position=0, frame_rate=9.6152999999999995, use_opengl=1) at virtualvnode.C:141
        previous_plugin = 0x0
        result = 0
        parent_edit = <optimized out>
#8  0x085e4c9c in VirtualVNode::render_as_module(VFrame*, VFrame*, long long, double, int)
    (this=0xcb06c200, video_out=0xce226220, output_temp=0x9229830, start_position=0, frame_rate=9.6152999999999995, use_opengl=1) at virtualvnode.C:233
        direction = 0
        edl_rate = <optimized out>
        start_position_project = 0
        mute_constant = -859841784
        mute_fragment = 141251065
#9  0x085e4d36 in VirtualVNode::render(VFrame*, long long, double, int)
    (this=0xcb06c200, output_temp=0x9229830, start_position=0, frame_rate=9.6152999999999995, use_opengl=1) at virtualvnode.C:158
        vrender = <optimized out>
#10 0x085e4257 in VirtualVConsole::process_buffer(long long, int) (this=
    0xa14c3c0, input_position=0, use_opengl=1) at virtualvconsole.C:173
        node = 0xcb06c200
        track = 0xa393260
        result = 0
        session = <optimized out>
        clr_color = <optimized out>
#11 0x085ead2d in VRender::process_buffer(long long, int)
    (this=0xcb0781d0, input_position=0, use_opengl=1) at vrender.C:232
        playable_edit = 0x0
        colormodel = <optimized out>
        use_vconsole = <optimized out>
        use_brender = 0
        result = 0
        use_cache = 1
        debug = 0
#12 0x085eaf77 in VRender::run() (this=<optimized out>) at vrender.C:340
        reconfigure = 0
        current_sample = <optimized out>
        start_sample = <optimized out>
        end_sample = <optimized out>
        skip_countdown = 1
        delay_countdown = 0
        current_input_length = 1
        frame_step = <optimized out>
#13 0x086b0a83 in Thread::entrypoint(void*) (parameters=0xcb0781d0)
    at thread.C:70
        thread = 0xcb0781d0
#14 0xf53af328 in start_thread () at /lib/libpthread.so.0
#15 0xf4d45f06 in clone () at /lib/libc.so.6
#0  VirtualANode::render_pan (this=this@entry=0xb400007e1131f8b0, input=0x7cbda02000, output=0x7d1ef73000, fragment_len=fragment_len@entry=48000, input_position=input_position@entry=0, sample_rate=sample_rate@entry=48000, autos=0xb400007d61325e80, channel=channel@entry=0, direction=0, use_nudge=0) at virtualanode.C:479
        j = 0
        slope_len = 48000
        len = 48000
        input_pos = <optimized out>
        i = <optimized out>
        slope = 0
        intercept = 1
        edl = <optimized out>
        to_project_rate = 1
        to_sample_rate = 1
        project_sample_rate = <optimized out>
#1  0x0000005555d1f378 in VirtualANode::render_as_module (this=0xb400007e1131f8b0, audio_out=0xb400007e1131efc8, output_temp=0xb400007d51309610, len=48000, start_position=0, sample_rate=48000) at virtualanode.C:344
        buffer = <optimized out>
        j = 0
        mute_constant = 0
        mute_fragment_project = 48000
        mute_fragment = <optimized out>
        i = <optimized out>
        direction = 0
        debug = 0
        edl = <optimized out>
        start_position_project = <optimized out>
        project_sample_rate = 48000
        mute_position = 0
#2  0x0000005555d1f03c in VirtualANode::render (this=0xb400007dd13142d0, output_temp=0x7cbda02010, size=48000, start_position=1, sample_rate=-5476376608380920192) at virtualanode.C:176
        debug = 0
        arender = 0xbb80
#3  0x0000005555d1e7c4 in VirtualAConsole::process_buffer (this=0xb400007d914afc00, len=48000, start_position=0) at virtualaconsole.C:136
        node = 0xb400007e1131f8b0
        track = <optimized out>
        i = 0
        debug = 0
        result = 0
#4  0x0000005555af8ab0 in ARender::process_buffer (this=0xb400007e1131ef50, input_len=0, input_position=0) at arender.C:210
        result = <optimized out>
#5  ARender::process_buffer (this=0xb400007e1131ef50, buffer_out=0x7cfea635f8, input_len=48000, input_position=0) at arender.C:189
        fragment_position = 0
        result = <optimized out>
        fragment_len = 48000
        reconfigure = <optimized out>
        start_offset = 0
#6  0x0000005555c5937c in PackageRenderer::do_audio (this=this@entry=0x7cfea63578) at packagerenderer.C:305
        output_length = <optimized out>
#7  0x0000005555c59cc8 in PackageRenderer::render_package (this=0x7cfea63578, package=0xb400007e214bc6b0) at packagerenderer.C:552
        need_audio = <optimized out>
        need_video = <optimized out>
        debug = 0
        samples_rendered = 48000
        video_done = <optimized out>
        audio_done = <optimized out>
#8  0x0000005555cb81e8 in RenderThread::render_single (this=this@entry=0xb400007d61322d70, test_overwrite=test_overwrite@entry=1, asset=<optimized out>, edl=<optimized out>, strategy=0, range_type=<optimized out>) at render.C:814
        package = 0x0
        fps = <optimized out>
        package_renderer = {<PackageRenderer> = {_vptr$PackageRenderer = 0x5555f0dd60 <vtable for MainPackageRenderer+16>, edl = 0xb400007e3134ba20, preferences = 0xb400007eb13abb60, default_asset = 0xb400007e914a9190, timer = 0xb400007d51307090, frames_per_second = 0, total_samples_rendered = 0, asset = 0xb400007e914db820, audio_output = 0xb400007d3137c950, audio_position = 0, audio_preroll = 0, audio_read_length = 48000, file = 0xb400007dd1311b70, result = 0, video_output = 0xb400007d3137e4f0, mwindow = 0x7fffffede8, audio_output_ptr = {0xb400007d51306790, 0xb400007d51305d50, 0x0 <repeats 30 times>}, audio_cache = 0xb400007d8137a520, video_cache = 0xb400007d81377180, compressed_output = 0xb400007de13be2b0, aconfig = 0xb400007ec18095c0, vconfig = 0xb400007e7134a430, playable_tracks = 0xb400007d51322090, render_engine = 0xb400007de13bcb50, package = 0xb400007e214bc6b0, command = 0xb400007d81374d30, direct_frame_copying = 0, video_device = 0xb400007df1308d90, video_output_ptr = 0xb400007de13bce10, video_preroll = 0, video_position = 25, video_read_length = 25, video_write_length = 2, video_write_position = 1}, render = 0xb400007de13a4d10}
        farm_server = 0x0
        total_length = <optimized out>
        command = 0xb400007d8137bda0
        audio_cache = <optimized out>
        video_cache = <optimized out>
#9  0x0000005555cb8a60 in RenderThread::run (this=0xb400007d61322d70) at render.C:910
        render_timer = {_vptr$Timer = 0x5555f2ba70 <vtable for Timer+16>, current_time = {tv_sec = 1701452707, tv_usec = 853826}, new_time = {tv_sec = 536848251952, tv_usec = 536848252160}}
        script = 0x0
        gain = <optimized out>
#10 0x0000005555de39b8 in Thread::entrypoint (parameters=0xb400007d61322d70) at thread.C:70
        thread = 0xb400007d61322d70
#11 0x0000007fb5c4ce5c in __pthread_start(void*) () from /apex/com.android.runtime/lib64/bionic/libc.so
No symbol table info available.
#12 0x0000007fb5bed28c in __start_thread () from /apex/com.android.runtime/lib64/bionic/libc.so
No symbol table info available.
Warning: 'set logging off', an alias for the command 'set logging enabled', is deprecated.
Use 'set logging enabled off'.

gdb-audio-segfault-termux.log (12,505 bytes)   

Activities

Andrew-R

2023-12-01 18:59

reporter   ~0005596

cin.sh

#!/bin/sh

vncserver -kill :1
pulseaudio --exit-idle-time=-1 -D&
rm $PREFIX/usr/tmp/.X1-lock
vncserver :1 -geometry 1280x800 -shmem
export DISPLAY=":1"
export LANG="en_US.UTF-8"
export PULSE_SERVER="127.0.0.1"
#openbox&
xfwm4&

Andrew-R

2023-12-01 19:01

reporter   ~0005597

#!/bin/sh

vncserver -kill :1
pulseaudio --exit-idle-time=-1 -D&
rm $PREFIX/usr/tmp/.X1-lock
vncserver :1 -geometry 1280x800 -shmem
export DISPLAY=":1"
export LANG="en_US.UTF-8"
export PULSE_SERVER="127.0.0.1"
#openbox&
xfwm4&

gdb bin/cin

====

actually this. (for debugging, for normal run just leave bin/cin at last line)

Andrew-R

2026-01-01 00:28

reporter   ~0005802

I also noticed that now if I start cin in termux with remote DISPLAY pointing to my desktop - audio works! Termux gained alsa support in the meantime, so cingg picks this too.

But if I use vnc connection to realvnc on same tablet - it still fails....

PhyllisSmith

2026-01-08 19:21

manager   ~0005809

@Andrew-R
Acknowledged status change. That is some progress.

Issue History

Date Modified Username Field Change
2023-12-01 18:58 Andrew-R New Issue
2023-12-01 18:58 Andrew-R File Added: gdb-audio-segfault-termux.log
2023-12-01 18:59 Andrew-R Note Added: 0005596
2023-12-01 19:01 Andrew-R Note Added: 0005597
2026-01-01 00:28 Andrew-R Note Added: 0005802
2026-01-08 19:21 PhyllisSmith Assigned To => PhyllisSmith
2026-01-08 19:21 PhyllisSmith Status new => acknowledged
2026-01-08 19:21 PhyllisSmith Note Added: 0005809