roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.02k stars 203 forks source link

SIGSEGV Crash when calling roc-send #728

Closed zhpixel517 closed 2 weeks ago

zhpixel517 commented 2 weeks ago

Just installed roc-toolkit for the first time, and I get this error:

zacharyhaslam@MacBook-Air-208 miniaudio_test % roc-send -vv -s rtp://192.168.1.168:10001
17:24:41.581 [12817796] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=packet_pool object_size=704 min_slab=8B(1S) max_slab=0B(0S)
17:24:41.581 [12817796] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=buffer_pool object_size=2096 min_slab=8B(1S) max_slab=0B(0S)
17:24:41.581 [12817796] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=buffer_pool object_size=4144 min_slab=8B(1S) max_slab=0B(0S)
17:24:41.581 [12817796] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=format_pool object_size=280 min_slab=4480B(16S) max_slab=0B(0S)
17:24:41.582 [12817801] [dbg] roc_netio: [network_loop.cpp:278] network loop: starting event loop
17:24:41.582 [12817796] [dbg] roc_node: [context.cpp:24] context: initializing
17:24:41.582 [12817802] [dbg] roc_ctl: [control_task_queue.cpp:95] control task queue: starting event loop
17:24:41.582 [12817796] [dbg] roc_sndio: [sox_backend.cpp:164] sox backend: initializing
17:24:41.582 [12817796] [dbg] roc_sndio: [backend_map.cpp:20] backend map: initialized: n_backends=1 n_drivers=77
17:24:41.582 [12817796] [dbg] roc_sndio: [sox_sink.cpp:62] sox sink: opening: driver=coreaudio path=default
17:24:41.659 [12817796] [inf] roc_sndio: [sox_sink.cpp:219] sox sink: opened: bits=32 out_rate=44100 in_rate=0 ch=2 is_file=0
17:24:41.659 [12817796] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=slot_pool object_size=512 min_slab=8B(1S) max_slab=0B(0S)
17:24:41.659 [12817796] [dbg] roc_node: [sender.cpp:32] sender node: initializing
17:24:41.659 [12817796] [dbg] roc_node: [sender.cpp:73] sender node: configuring audiosrc interface of slot 0
17:24:41.659 [12817796] [inf] roc_pipeline: [sender_sink.cpp:53] sender sink: adding slot
17:24:41.659 [12817796] [inf] roc_node: [sender.cpp:121] sender node: connecting audiosrc interface of slot 0 to rtp://192.168.1.168:10001
17:24:41.659 [12817801] [dbg] roc_netio: [udp_sender_port.cpp:130] udp sender: <udpsend 0x7f9ac100c818 bind=0.0.0.0:58526>: opened port
17:24:41.659 [12817796] [inf] roc_node: [sender.cpp:474] sender node: bound audiosrc interface to 0.0.0.0:58526
17:24:41.659 [12817796] [dbg] roc_pipeline: [sender_slot.cpp:46] sender slot: adding audiosrc endpoint rtp
17:24:41.659 [12817796] [dbg] roc_audio: [packetizer.cpp:51] packetizer: initializing: n_channels=2 samples_per_packet=221
17:24:41.659 [12817796] [dbg] roc_sndio: [pump.cpp:55] pump: starting main loop
17:24:41.666 [12817796] [dbg] roc_packet: [router.cpp:63] router: detected new stream: source=1241833264 flags=0x10
17:24:41.666 [12817796] [dbg] roc_netio: [udp_sender_port.cpp:356] udp sender: <udpsend 0x7f9ac100c818 bind=0.0.0.0:58526>: total=1 nb=1 nb_ratio=1.00000
17:24:41.666 [12817796] [dbg] roc_pipeline: [pipeline_loop.cpp:467] pipeline loop: tasks=3 in_place=1.00 in_frame=0.00 preempts=0 sched=0/0

ERROR: caught SIGSEGV

#1: 0x1005bd279 _ZN3roc4core20print_backtrace_safeEv+0x49
#2: 0x1005bdb4f _ZN3roc4core14die_gracefullyEPKcb+0xdf
#3: 0x1005bd9c3 _ZN3roc4core12_GLOBAL__N_114signal_handlerEiP9__siginfoPv+0x13
#4: 0x7ff806016fdd _sigtramp+0x1d
#5: 0x1004f5775 _ZNK3roc5audio5Frame7samplesEv+0x5
#6: 0x1004d26e9 _ZN3roc5sndio7SoxSink5writeERNS_5audio5FrameE+0x29
#7: 0x1004d07cd _ZN3roc5sndio4Pump15transfer_frame_ERNS0_7ISourceE+0x11d
#8: 0x1004d05bb _ZN3roc5sndio4Pump3runEv+0x32b
#9: 0x1004ba8d2 main+0x1192

and on the receiving computer, I get all this:

zach@zach-HP-EliteBook-840-G1:~/rust_learning/roc-toolkit$ roc-recv -vv -s rtp://0.0.0.0:10001
17:27:50.814 [19938] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=packet_pool object_size=704 min_slab=8B(1S) max_slab=0B(0S)
17:27:50.814 [19938] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=buffer_pool object_size=2096 min_slab=8B(1S) max_slab=0B(0S)
17:27:50.814 [19938] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=buffer_pool object_size=4144 min_slab=8B(1S) max_slab=0B(0S)
17:27:50.814 [19938] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=format_pool object_size=280 min_slab=4480B(16S) max_slab=0B(0S)
17:27:50.814 [19939] [dbg] roc_netio: [network_loop.cpp:278] network loop: starting event loop
17:27:50.814 [19938] [dbg] roc_node: [context.cpp:24] context: initializing
17:27:50.814 [19940] [dbg] roc_ctl: [control_task_queue.cpp:95] control task queue: starting event loop
17:27:50.814 [19938] [dbg] roc_sndio: [pulseaudio_backend.cpp:21] pulseaudio backend: initializing
17:27:50.814 [19938] [dbg] roc_sndio: [sox_backend.cpp:164] sox backend: initializing
17:27:50.819 [19938] [dbg] roc_sndio: [backend_map.cpp:20] backend map: initialized: n_backends=2 n_drivers=82
17:27:50.819 [19938] [dbg] roc_sndio: [pulseaudio_device.cpp:75] pulseaudio sink: opening device: device=default
17:27:50.822 [19941] [inf] roc_sndio: [pulseaudio_device.cpp:507] pulseaudio sink: opening stream: device=(null) n_channels=2 sample_rate=44100
17:27:50.822 [19938] [dbg] roc_core: [slab_pool_impl.cpp:61] pool: initializing: name=slot_pool object_size=632 min_slab=8B(1S) max_slab=0B(0S)
17:27:50.822 [19938] [dbg] roc_node: [receiver.cpp:34] receiver node: initializing
17:27:50.822 [19938] [dbg] roc_node: [receiver.cpp:75] receiver node: configuring audiosrc interface of slot 0
17:27:50.822 [19938] [inf] roc_pipeline: [receiver_source.cpp:64] receiver source: adding slot
17:27:50.822 [19938] [dbg] roc_pipeline: [receiver_slot.cpp:36] receiver slot: initializing
17:27:50.822 [19938] [inf] roc_node: [receiver.cpp:123] receiver node: binding audiosrc interface of slot 0 to rtp://0.0.0.0:10001
17:27:50.822 [19938] [dbg] roc_pipeline: [receiver_slot.cpp:42] receiver slot: adding audiosrc endpoint rtp
17:27:50.823 [19939] [dbg] roc_netio: [udp_receiver_port.cpp:116] udp receiver: <udprecv 0x7f9d18000b38 bind=0.0.0.0:10001>: opened port
17:27:50.823 [19938] [dbg] roc_sndio: [pump.cpp:55] pump: starting main loop
17:27:50.823 [19938] [dbg] roc_pipeline: [pipeline_loop.cpp:467] pipeline loop: tasks=2 in_place=1.00 in_frame=0.00 preempts=0 sched=0/0
17:27:50.823 [19938] [dbg] roc_sndio: [pulseaudio_device.cpp:802] pulseaudio sink: io_latency=10000000(10.000ms)
17:27:52.595 [19938] [inf] roc_pipeline: [receiver_session_group.cpp:228] session group: creating session: src_addr=192.168.1.218:54521 dst_addr=0.0.0.0:10001
17:27:52.595 [19938] [dbg] roc_packet: [delayed_reader.cpp:25] delayed reader: initializing: delay=8820
17:27:52.596 [19938] [dbg] roc_audio: [depacketizer.cpp:56] depacketizer: initializing: n_channels=2
17:27:52.596 [19938] [dbg] roc_audio: [watchdog.cpp:71] watchdog: initializing: max_blank_duration=11760 max_drops_duration=88200 drop_detection_window=13230
17:27:52.596 [19938] [dbg] roc_audio: [speex_resampler.cpp:102] speex resampler: initializing: quality=5 frame_size=80 channels_num=2
17:27:52.596 [19938] [dbg] roc_audio: [latency_monitor.cpp:79] latency monitor: initializing: target=8820(200.000ms) min=0(0.000ms) max=17640(400.000ms) in_rate=44100 out_rate=44100 fe_enable=1 fe_profile=gradual fe_interval=5.011ms
17:27:52.596 [19938] [dbg] roc_audio: [freq_estimator.cpp:75] freq estimator: initializing: P=1.000000e-06 I=5.000000e-09 dc1=10 dc2=10
17:27:52.596 [19938] [dbg] roc_packet: [router.cpp:63] router: detected new stream: source=1832103313 flags=0x10
17:27:52.596 [19938] [dbg] roc_audio: [speex_resampler.cpp:291] speex resampler: ratio=1/1 rates=44100/44100 latency=40 latency_diff=0
17:27:52.596 [19938] [dbg] roc_audio: [depacketizer.cpp:333] depacketizer: ts=40 loss_ratio=0.00000
17:27:52.596 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.626 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.642 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.657 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.673 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.688 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.719 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.735 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.750 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.767 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.781 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.797 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.829 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.845 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbbbbbbbb
17:27:52.861 [19938] [dbg] roc_audio: [watchdog.cpp:146] watchdog: blank timeout reached: every frame was blank during timeout: curr_read_pos=11760 last_pos_before_blank=0 max_blank_duration=11760
17:27:52.861 [19938] [dbg] roc_audio: [watchdog.cpp:241] watchdog: status: bbbbbbbbbbbbbb
17:27:52.861 [19938] [inf] roc_pipeline: [receiver_session_group.cpp:259] session group: removing session

all of the lines containing watchdog: status: bbbbbbbbbbbbb came on screen as soon as I fired up the roc-sender side. I am using an M1 mac for roc-send and a HP Elitebook running Ubuntu for roc-recv. Am I doing something wrong here?

gavv commented 2 weeks ago

Reposting reply from matrix:

hi! this issue was already fixed in develop branch, but it's hard to backport it to master. Instead I'll tag a new release in upcoming days that will have a fix.

gavv commented 2 weeks ago

The fix is available in v0.4.0 (current master). Feel free to reopen if needed!