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)
|
||||
}
|
||||
}
|
||||
|
||||
//finish
|
||||
err := g.Process(nil)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}()
|
||||
|
||||
return channel
|
||||
|
@ -93,6 +99,11 @@ func (g *Gaborator) GaborTransform(source chan float32) (channel chan []float32)
|
|||
audioData = audioData[:0]
|
||||
}
|
||||
}
|
||||
//finish
|
||||
err := g.Process(nil)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}()
|
||||
|
||||
return channel
|
||||
|
@ -131,7 +142,12 @@ func (g *Gaborator) GetBandwidth() float64 {
|
|||
func (g *Gaborator) analyze(block []float32) {
|
||||
handle := cgo.NewHandle(g.coefficientOutputChannel)
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue