Do finish pass according to blocksize
This commit is contained in:
parent
082175c4fe
commit
837c1db011
18
goborator.go
18
goborator.go
|
@ -69,6 +69,12 @@ func (g *Gaborator) GaborBlockTransform(source chan []float32) (channel chan []f
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//finish
|
||||||
|
err := g.Process(nil)
|
||||||
|
if err != nil {
|
||||||
|
log.Panic(err)
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return channel
|
return channel
|
||||||
|
@ -93,6 +99,11 @@ func (g *Gaborator) GaborTransform(source chan float32) (channel chan []float32)
|
||||||
audioData = audioData[:0]
|
audioData = audioData[:0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//finish
|
||||||
|
err := g.Process(nil)
|
||||||
|
if err != nil {
|
||||||
|
log.Panic(err)
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return channel
|
return channel
|
||||||
|
@ -131,7 +142,12 @@ func (g *Gaborator) GetBandwidth() float64 {
|
||||||
func (g *Gaborator) analyze(block []float32) {
|
func (g *Gaborator) analyze(block []float32) {
|
||||||
handle := cgo.NewHandle(g.coefficientOutputChannel)
|
handle := cgo.NewHandle(g.coefficientOutputChannel)
|
||||||
defer handle.Delete()
|
defer handle.Delete()
|
||||||
C.gaborator_transform(g.pointer, (*C.float)(&block[0]), C.int(len(block)), C.gaborator_transform_callback(C.cgoCallback), C.uintptr_t(handle))
|
|
||||||
|
if len(block) == 0 {
|
||||||
|
C.gaborator_transform(g.pointer, (*C.float)(nil), C.int(0), C.gaborator_transform_callback(C.cgoCallback), C.uintptr_t(handle))
|
||||||
|
} else {
|
||||||
|
C.gaborator_transform(g.pointer, (*C.float)(&block[0]), C.int(len(block)), C.gaborator_transform_callback(C.cgoCallback), C.uintptr_t(handle))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//export cgoCallback
|
//export cgoCallback
|
||||||
|
|
Loading…
Reference in a new issue