Closed Bug 1614381 Opened 4 years ago Closed 3 years ago

Crash on soundtouch::TDStretch::processSamples()

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1677881

People

(Reporter: achronop, Unassigned)

References

(Regression)

Details

(Keywords: regression)

I can reproduce on Linux, every time I enter www.twitch.tv with a debug local build. I haven't tried another platform.

#0  0x00007f497eeba1d5 in nanosleep () at /lib64/libc.so.6
#1  0x00007f497eeba0de in sleep () at /lib64/libc.so.6
#2  0x00007f49761d18ca in ah_crap_handler(int) (signum=6) at /home/achronop/repos/mozilla/firefox/toolkit/xre/nsSigHandlers.cpp:95
#3  0x00007f49761d1a63 in child_ah_crap_handler(int) (signum=6) at /home/achronop/repos/mozilla/firefox/toolkit/xre/nsSigHandlers.cpp:105
#4  0x00007f497ee286b0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007f497ee28625 in raise () at /lib64/libc.so.6
#6  0x00007f497ee118d9 in abort () at /lib64/libc.so.6
#7  0x00007f497ee117a9 in _nl_load_domain.cold () at /lib64/libc.so.6
#8  0x00007f497ee20a66 in annobin_assert.c_end () at /lib64/libc.so.6
#9  0x00007f497f355f13 in soundtouch::TDStretch::processSamples() (this=0x7f47c3b9eb20) at /home/achronop/repos/mozilla/firefox/media/libsoundtouch/src/TDStretch.cpp:694
#10 0x00007f497f3560cd in soundtouch::TDStretch::putSamples(float const*, unsigned int) (this=0x7f47c3b9eb20, samples=0x7f47bf8f9000, nSamples=1024)
    at /home/achronop/repos/mozilla/firefox/media/libsoundtouch/src/TDStretch.cpp:734
#11 0x00007f497f356b27 in soundtouch::FIFOSamplePipe::moveSamples(soundtouch::FIFOSamplePipe&) (this=0x7f47c3b9eb20, other=...)
    at /home/achronop/repos/mozilla/firefox/media/libsoundtouch/src/FIFOSamplePipe.h:93
#12 0x00007f497f3545b0 in soundtouch::SoundTouch::putSamples(float const*, unsigned int) (this=0x7f47c496b190, samples=0x7f47c454c000, nSamples=1024)
    at /home/achronop/repos/mozilla/firefox/media/libsoundtouch/src/SoundTouch.cpp:298
#13 0x00007f4971caf190 in mozilla::AudioStream::GetTimeStretched(mozilla::AudioBufferWriter&) (this=0x7f47c3badb00, aWriter=...)
    at /home/achronop/repos/mozilla/firefox/dom/media/AudioStream.cpp:549
#14 0x00007f4971cafa49 in mozilla::AudioStream::DataCallback(void*, long) (this=0x7f47c3badb00, aBuffer=0x7f47bc970000, aFrames=2704)
    at /home/achronop/repos/mozilla/firefox/dom/media/AudioStream.cpp:612
#15 0x00007f4971cb39f0 in mozilla::AudioStream::DataCallback_S(cubeb_stream*, void*, void const*, void*, long) (aThis=0x7f47c3badb00, aOutputBuffer=0x7f47bc970000, aFrames=2704)
    at /home/achronop/repos/mozilla/firefox/dom/media/AudioStream.h:286
#16 0x00007f497929e25b in <audioipc_client::stream::CallbackServer as audioipc::rpc::server::Server>::process::{{closure}}::{{closure}} () at media/audioipc/client/src/stream.rs:113
(gdb) up 9
#9  0x00007f497f355f13 in soundtouch::TDStretch::processSamples (this=0x7f47c3b9eb20) at /home/achronop/repos/mozilla/firefox/media/libsoundtouch/src/TDStretch.cpp:694
694	            assert(nominalSkip >= -skipFract);
(gdb) p nominalSkip
$1 = 395.51998901367188
(gdb) p skipFract
$2 = -396

Bryce and I just ran into this on Windows using Sony WH-1000XM3 via BlueTooth, opt + debug build. The nominalSkip assert is new in the 2.1.2 code drop, so marking that bug as regressing this.

There are a couple of related changes upstream, but I don't think either of them address this issue directly:
https://gitlab.com/soundtouch/soundtouch/-/commit/81b0d747277240da93826a30b0ddae028454d581
https://gitlab.com/soundtouch/soundtouch/-/commit/6533514372da7b9157da56ee5a8d9aa981778abb

Severity: normal → S3
Regressed by: 1588233
See Also: 1588233
Has Regression Range: --- → yes
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.