mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 10:48:53 +01:00
audio/mp3: Remove global variables 'v_vec' and 'store'
This commit is contained in:
parent
e0661a0ac6
commit
8efd0e725f
@ -375,8 +375,6 @@ func (f *frame) l3Antialias(gr int, ch int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var store = [2][32][18]float32{}
|
|
||||||
|
|
||||||
func (f *frame) l3HybridSynthesis(gr int, ch int) {
|
func (f *frame) l3HybridSynthesis(gr int, ch int) {
|
||||||
// Loop through all 32 subbands
|
// Loop through all 32 subbands
|
||||||
for sb := 0; sb < 32; sb++ {
|
for sb := 0; sb < 32; sb++ {
|
||||||
@ -394,8 +392,8 @@ func (f *frame) l3HybridSynthesis(gr int, ch int) {
|
|||||||
rawout := imdctWin(in, bt)
|
rawout := imdctWin(in, bt)
|
||||||
// Overlapp add with stored vector into main_data vector
|
// Overlapp add with stored vector into main_data vector
|
||||||
for i := 0; i < 18; i++ {
|
for i := 0; i < 18; i++ {
|
||||||
f.mainData.is[gr][ch][sb*18+i] = rawout[i] + store[ch][sb][i]
|
f.mainData.is[gr][ch][sb*18+i] = rawout[i] + f.store[ch][sb][i]
|
||||||
store[ch][sb][i] = rawout[i+18]
|
f.store[ch][sb][i] = rawout[i+18]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -550,8 +548,6 @@ var g_synth_dtbl = [512]float32{
|
|||||||
0.000015259, 0.000015259, 0.000015259, 0.000015259,
|
0.000015259, 0.000015259, 0.000015259, 0.000015259,
|
||||||
}
|
}
|
||||||
|
|
||||||
var v_vec = [2][1024]float32{}
|
|
||||||
|
|
||||||
func (f *frame) l3SubbandSynthesis(gr int, ch int, out []uint8) {
|
func (f *frame) l3SubbandSynthesis(gr int, ch int, out []uint8) {
|
||||||
u_vec := make([]float32, 512)
|
u_vec := make([]float32, 512)
|
||||||
s_vec := make([]float32, 32)
|
s_vec := make([]float32, 32)
|
||||||
@ -560,7 +556,7 @@ func (f *frame) l3SubbandSynthesis(gr int, ch int, out []uint8) {
|
|||||||
/* Setup the n_win windowing vector and the v_vec intermediate vector */
|
/* Setup the n_win windowing vector and the v_vec intermediate vector */
|
||||||
for ss := 0; ss < 18; ss++ { /* Loop through 18 samples in 32 subbands */
|
for ss := 0; ss < 18; ss++ { /* Loop through 18 samples in 32 subbands */
|
||||||
for i := 1023; i > 63; i-- { /* Shift up the V vector */
|
for i := 1023; i > 63; i-- { /* Shift up the V vector */
|
||||||
v_vec[ch][i] = v_vec[ch][i-64]
|
f.v_vec[ch][i] = f.v_vec[ch][i-64]
|
||||||
}
|
}
|
||||||
for i := 0; i < 32; i++ { /* Copy next 32 time samples to a temp vector */
|
for i := 0; i < 32; i++ { /* Copy next 32 time samples to a temp vector */
|
||||||
s_vec[i] = f.mainData.is[gr][ch][i*18+ss]
|
s_vec[i] = f.mainData.is[gr][ch][i*18+ss]
|
||||||
@ -570,12 +566,12 @@ func (f *frame) l3SubbandSynthesis(gr int, ch int, out []uint8) {
|
|||||||
for j := 0; j < 32; j++ {
|
for j := 0; j < 32; j++ {
|
||||||
sum += g_synth_n_win[i][j] * s_vec[j]
|
sum += g_synth_n_win[i][j] * s_vec[j]
|
||||||
}
|
}
|
||||||
v_vec[ch][i] = sum
|
f.v_vec[ch][i] = sum
|
||||||
}
|
}
|
||||||
for i := 0; i < 8; i++ { /* Build the U vector */
|
for i := 0; i < 8; i++ { /* Build the U vector */
|
||||||
for j := 0; j < 32; j++ { /* <<7 == *128 */
|
for j := 0; j < 32; j++ { /* <<7 == *128 */
|
||||||
u_vec[(i<<6)+j] = v_vec[ch][(i<<7)+j]
|
u_vec[(i<<6)+j] = f.v_vec[ch][(i<<7)+j]
|
||||||
u_vec[(i<<6)+j+32] = v_vec[ch][(i<<7)+j+96]
|
u_vec[(i<<6)+j+32] = f.v_vec[ch][(i<<7)+j+96]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i := 0; i < 512; i++ { /* Window by u_vec[i] with g_synth_dtbl[i] */
|
for i := 0; i < 512; i++ { /* Window by u_vec[i] with g_synth_dtbl[i] */
|
||||||
|
@ -46,6 +46,10 @@ func (f *frame) readNextFrame() (*frame, error) {
|
|||||||
nf := &frame{
|
nf := &frame{
|
||||||
prev: f,
|
prev: f,
|
||||||
}
|
}
|
||||||
|
if nf.prev != nil {
|
||||||
|
nf.store = nf.prev.store
|
||||||
|
nf.v_vec = nf.prev.v_vec
|
||||||
|
}
|
||||||
if err := nf.readHeader(); err != nil {
|
if err := nf.readHeader(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -91,4 +91,6 @@ type frame struct {
|
|||||||
mainData mpeg1MainData
|
mainData mpeg1MainData
|
||||||
|
|
||||||
mainDataBytes *mainDataBytes
|
mainDataBytes *mainDataBytes
|
||||||
|
store [2][32][18]float32
|
||||||
|
v_vec [2][1024]float32
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user