Closed Holzhaus closed 3 years ago
Commented by: @asantoni Date: 2008-02-17T16:50:15Z
Just out of curiosity, what is the jog wheel control set to in your MIDI mapping? (This probably has nothing to do with the problem...)
Commented by: alex-malexmedia Date: 2008-02-17T18:23:40Z
My jog wheels are set like so:
<control>
<group>[Channel1]</group>
<key>jog</key>
<miditype>Ctrl</miditype>
<midino>25</midino>
<sensitivity>10</sensitivity>
<options><diff/></options>
</control>
However, my codebase has a few lines changed in the configobject.cpp which make diff a little saner for my setup.
Commented by: alex-malexmedia Date: 2008-02-17T18:24:50Z
As you requested, I tried to cause the same problem in pitch-independent stretch mode. Mixxx locked up instead of segfaulting, but here is the backtrace.
Commented by: alex-malexmedia Date: 2008-02-17T18:44:16Z
Caused the same segfault while running under valgrind.
Commented by: alex-malexmedia Date: 2008-02-17T22:34:43Z
Fixed!
When the seek speed is too low, we essentially ask SoundTouch to expand our 100-sample buffer into literally gigabytes of RAM. (Which causes SoundTouch to overflow an int and segfault.)
This patch adds MIN_SEEK_SPEED, which successfully prevents such nonsense from ever happening.
Commented by: alex-malexmedia Date: 2008-02-18T01:30:30Z
Discovered another case where soundtouch->setRate() could be called with a super-small number.
sheepish Guess I need to do my homework better...
Issue closed with status Fix Released.
Reported by: alex-malexmedia Date: 2008-02-17T15:48:35Z Status: Fix Released Importance: Medium Launchpad Issue: lp192663
Using Mixxx on Linux (fc7) with no DRI.
When "scratching" through any track using my new MIDI jog wheel, Mixxx will occasionally segfault. The backtraces always seem to lead to the same place. Here is a sample:
Thread 12 (Thread -1338000496 (LWP 4820)):
0 0x0815f25c in RateTransposerFloat::transposeStereo (this=0xa2f0620, dest=0xae759940, src=0xa035b20, numSamples=100)
1 0x081602d2 in soundtouch::RateTransposer::transpose (this=0xa2f0620, dest=0xae759940, src=0xa035b20, numSamples=100)
2 0x0815f730 in soundtouch::RateTransposer::upsample (this=0xa2f0620, src=0xa035b20, numSamples=100)
3 0x0815f8d9 in soundtouch::RateTransposer::processSamples (this=0xa2f0620, src=0xa035b20, numSamples=100)
4 0x0815f915 in soundtouch::RateTransposer::putSamples (this=0xa2f0620, samples=0xa035b20, numSamples=100)
5 0x0815cc52 in soundtouch::SoundTouch::putSamples (this=0xa1089c0, samples=0xa035b20, numSamples=100)
6 0x0815b8c8 in EngineBufferScaleST::scale (this=0xa035860, playpos=604618.23999999987, buf_size=3176, pBase=0xb78fc008,
7 0x080b5142 in EngineBuffer::process (this=0xa04f670, pOut=0xb5918008, iBufferSize=3176) at src/enginebuffer.cpp:1120
8 0x080e0ed0 in EngineMaster::process (this=0xa081d50, pOut=0x0, iBufferSize=3176) at src/enginemaster.cpp:181
9 0x0814b078 in SoundManager::requestBuffer (this=0xa0aca70, srcs=@0xb03fb210, iFramesPerBuffer=1588)
10 0x0815054c in SoundDevicePortAudio::callbackProcess (this=0xa0adef0, framesPerBuffer=1588, output=0xa331c00, in=0x0,
11 0x081506c2 in paV19Callback (inputBuffer=0x0, outputBuffer=0xa331c00, framesPerBuffer=1588, timeInfo=0xb03fb378,
12 0x0032ae8c in AdaptingOutputOnlyProcess (bp=0xa350c94, streamCallbackResult=0xb03fb39c, hostOutputChannels=0xa046df0,
13 0x0032bb59 in PaUtil_EndBufferProcessing (bp=0xa350c94, streamCallbackResult=0xb03fb39c) at src/common/pa_process.c:1581
14 0x0033359d in CallbackThreadFunc (userData=0xa350c48) at src/hostapi/alsa/pa_linux_alsa.c:3303
15 0x0079e44b in start_thread () from /lib/libpthread.so.0
16 0x006cc80e in clone () from /lib/libc.so.6