diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 8a422a36b..424747338 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -2172,6 +2172,10 @@ void DivEngine::runExportThread() { } } + delete[] outBuf[0]; + delete[] outBuf[1]; + delete[] outBuf[2]; + if (sf_close(sf)!=0) { logE("could not close audio file!\n"); } @@ -2204,7 +2208,7 @@ void DivEngine::runExportThread() { } for (int i=0; imuteChannel(dispatchChanOfChan[j],isMuted[j]); + } + } + + curOrder=0; + remainingLoops=loopCount; + playSub(false); + + while (playing) { + nextBuf(NULL,outBuf,0,2,EXPORT_BUFSIZE); + for (int j=0; jEXPORT_BUFSIZE) { + logE("error: total processed is bigger than export bufsize! %d>%d\n",totalProcessed,EXPORT_BUFSIZE); + } + if (sf_writef_float(sf,outBuf[2],totalProcessed)!=(int)totalProcessed) { + logE("error: failed to write entire buffer!\n"); + break; + } + } + + if (sf_close(sf)!=0) { + logE("could not close audio file!\n"); + } + } + exporting=false; + + delete[] outBuf[0]; + delete[] outBuf[1]; + delete[] outBuf[2]; + + for (int i=0; imuteChannel(dispatchChanOfChan[i],false); + } + } + + if (initAudioBackend()) { + for (int i=0; isetRun(true)) { + logE("error while activating audio!\n"); + } + } break; } }