GB Audio: Fix giving blip the wrong diff when blocking

This commit is contained in:
Vicki Pfau 2018-08-02 23:11:14 -07:00
parent ec2e323d22
commit 179c49e5f4
1 changed files with 2 additions and 2 deletions

View File

@ -647,6 +647,8 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) {
if ((size_t) blip_samples_avail(audio->left) < audio->samples) { if ((size_t) blip_samples_avail(audio->left) < audio->samples) {
blip_add_delta(audio->left, audio->clock, sampleLeft - audio->lastLeft); blip_add_delta(audio->left, audio->clock, sampleLeft - audio->lastLeft);
blip_add_delta(audio->right, audio->clock, sampleRight - audio->lastRight); blip_add_delta(audio->right, audio->clock, sampleRight - audio->lastRight);
audio->lastLeft = sampleLeft;
audio->lastRight = sampleRight;
audio->clock += audio->sampleInterval; audio->clock += audio->sampleInterval;
if (audio->clock >= CLOCKS_PER_BLIP_FRAME) { if (audio->clock >= CLOCKS_PER_BLIP_FRAME) {
blip_end_frame(audio->left, CLOCKS_PER_BLIP_FRAME); blip_end_frame(audio->left, CLOCKS_PER_BLIP_FRAME);
@ -654,8 +656,6 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) {
audio->clock -= CLOCKS_PER_BLIP_FRAME; audio->clock -= CLOCKS_PER_BLIP_FRAME;
} }
} }
audio->lastLeft = sampleLeft;
audio->lastRight = sampleRight;
produced = blip_samples_avail(audio->left); produced = blip_samples_avail(audio->left);
if (audio->p->stream && audio->p->stream->postAudioFrame) { if (audio->p->stream && audio->p->stream->postAudioFrame) {
audio->p->stream->postAudioFrame(audio->p->stream, sampleLeft, sampleRight); audio->p->stream->postAudioFrame(audio->p->stream, sampleLeft, sampleRight);