mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-08 07:54:04 +00:00
Convert .tgs with go libraries (and cgo) (telegram) (#1569)
This commit adds support for go/cgo tgs conversion when building with the -tags `cgo` The default binaries are still "pure" go and uses the old way of converting. * Move lottie_convert.py conversion code to its own file * Add optional libtgsconverter * Update vendor * Apply suggestions from code review * Update bridge/helper/libtgsconverter.go Co-authored-by: Wim <wim@42.be>
This commit is contained in:
39
vendor/github.com/Benau/tgsconverter/libtgsconverter/webp.go
generated
vendored
Normal file
39
vendor/github.com/Benau/tgsconverter/libtgsconverter/webp.go
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
package libtgsconverter
|
||||
|
||||
import "bytes"
|
||||
import "image"
|
||||
|
||||
import "github.com/sizeofint/webpanimation"
|
||||
|
||||
type towebp struct {
|
||||
timestamp int
|
||||
webpanim *webpanimation.WebpAnimation
|
||||
config webpanimation.WebPConfig
|
||||
}
|
||||
|
||||
func(to_webp *towebp) init(w uint, h uint, options ConverterOptions) {
|
||||
to_webp.timestamp = 0
|
||||
to_webp.webpanim = webpanimation.NewWebpAnimation(int(w), int(h), 0)
|
||||
to_webp.config = webpanimation.NewWebpConfig()
|
||||
to_webp.config.SetQuality(options.GetWebpQuality())
|
||||
}
|
||||
|
||||
func(to_webp *towebp) SupportsAnimation() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (to_webp *towebp) AddFrame(image *image.RGBA, fps uint) error {
|
||||
err := to_webp.webpanim.AddFrame(image, to_webp.timestamp, to_webp.config)
|
||||
to_webp.timestamp += int((1.0 / float32(fps)) * 1000.)
|
||||
return err
|
||||
}
|
||||
|
||||
func (to_webp *towebp) Result() []byte {
|
||||
var buf bytes.Buffer
|
||||
err := to_webp.webpanim.Encode(&buf)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
to_webp.webpanim.ReleaseMemory()
|
||||
return buf.Bytes()
|
||||
}
|
Reference in New Issue
Block a user