Skip to content

Commit 73a0f6e

Browse files
committedSep 8, 2024
Merge pull request #83536 from wareya/new_cubic
Optimize cubic hermite algorithm in AudioStreamPlaybackResampled
2 parents 5675c76 + 94b31c1 commit 73a0f6e

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed
 

‎servers/audio/audio_stream.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,12 @@ int AudioStreamPlaybackResampled::mix(AudioFrame *p_buffer, float p_rate_scale,
173173
}
174174

175175
float mu2 = mu * mu;
176-
AudioFrame a0 = 3 * y1 - 3 * y2 + y3 - y0;
177-
AudioFrame a1 = 2 * y0 - 5 * y1 + 4 * y2 - y3;
178-
AudioFrame a2 = y2 - y0;
179-
AudioFrame a3 = 2 * y1;
176+
float h11 = mu2 * (mu - 1);
177+
float z = mu2 - h11;
178+
float h01 = z - h11;
179+
float h10 = mu - z;
180180

181-
p_buffer[i] = (a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3) / 2;
181+
p_buffer[i] = y1 + (y2 - y1) * h01 + ((y2 - y0) * h10 + (y3 - y1) * h11) * 0.5;
182182

183183
mix_offset += mix_increment;
184184

0 commit comments

Comments
 (0)
Please sign in to comment.