Visualization: No longer throw an assert on error
Some checks are pending
Check if Cog buildable / Build Universal Cog.app (push) Waiting to run
Some checks are pending
Check if Cog buildable / Build Universal Cog.app (push) Waiting to run
If latency is greater than the buffer size, or somehow less than zero, instead simply emit silent visualization data until latency recovers. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
parent
d32ccd3d1e
commit
869bdd9a9b
1 changed files with 5 additions and 2 deletions
|
@ -16,6 +16,7 @@
|
|||
float *visAudio;
|
||||
int visAudioCursor, visAudioSize;
|
||||
uint64_t visSamplesPosted;
|
||||
BOOL ignoreLatency;
|
||||
}
|
||||
|
||||
static VisualizationController *_sharedController = nil;
|
||||
|
@ -35,6 +36,7 @@ static VisualizationController *_sharedController = nil;
|
|||
visAudio = NULL;
|
||||
visAudioSize = 0;
|
||||
latency = 0;
|
||||
ignoreLatency = YES;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -48,6 +50,7 @@ static VisualizationController *_sharedController = nil;
|
|||
latency = 0;
|
||||
visAudioCursor = 0;
|
||||
visSamplesPosted = 0;
|
||||
ignoreLatency = YES;
|
||||
if(visAudio && visAudioSize) {
|
||||
bzero(visAudio, sizeof(float) * visAudioSize);
|
||||
}
|
||||
|
@ -99,7 +102,7 @@ static VisualizationController *_sharedController = nil;
|
|||
|
||||
- (void)postLatency:(double)latency {
|
||||
self->latency = latency;
|
||||
assert(latency < 45.0);
|
||||
ignoreLatency = (latency >= 45.0) || (latency < 0.0);
|
||||
}
|
||||
|
||||
- (double)readSampleRate {
|
||||
|
@ -115,7 +118,7 @@ static VisualizationController *_sharedController = nil;
|
|||
- (void)copyVisPCM:(float *_Nullable)outPCM visFFT:(float *_Nullable)outFFT latencyOffset:(double)latency {
|
||||
if(!outPCM && !outFFT) return;
|
||||
|
||||
if(!visAudio || !visAudioSize) {
|
||||
if(ignoreLatency || !visAudio || !visAudioSize) {
|
||||
if(outPCM) bzero(outPCM, sizeof(float) * 4096);
|
||||
if(outFFT) bzero(outFFT, sizeof(float) * 2048);
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue