package util
|
|
import (
|
"fmt"
|
|
"basic.com/valib/deliver.git"
|
|
"basic.com/pubsub/protomsg.git"
|
|
"github.com/pierrec/lz4"
|
)
|
|
const (
|
FDetect = "FaceDetect" // ParamFacePos 检测
|
FExtract = "FaceExtract" // ParamFaceFeature 提取
|
FProperty = "FaceProperty"
|
FCompare = "FaceCompare"
|
FtTract = "FaceTrack"
|
FtDetect = "FaceTrackDetect"
|
FtOnly = "FaceTrackOnly"
|
YDetect = "Yolo"
|
)
|
|
const mode = deliver.PushPull
|
|
// MsgRS msg recv and snd
|
type MsgRS struct {
|
Msg protomsg.SdkMessage
|
}
|
|
// UnCompress uncompress
|
func UnCompress(in []byte) ([]byte, error) {
|
out := make([]byte, 10*len(in))
|
n, err := lz4.UncompressBlock(in, out)
|
if err != nil {
|
fmt.Println(err)
|
return nil, err
|
}
|
out = out[:n] // uncompressed data
|
return out, nil
|
}
|
|
// Compress compress
|
func Compress(in []byte) ([]byte, error) {
|
out := make([]byte, len(in))
|
ht := make([]int, 64<<10) // buffer for the compression table
|
n, err := lz4.CompressBlock(in, out, ht)
|
if err != nil {
|
fmt.Println(err)
|
return nil, err
|
}
|
if n >= len(in) {
|
fmt.Println("image is not compressible")
|
}
|
out = out[:n] // compressed data
|
return out, nil
|
}
|