From 7858ad214af2b27e165653ca5b9bd964b487d20d Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 17 十二月 2019 10:44:16 +0800
Subject: [PATCH] udpate

---
 work/sdk/yolotrack.go |   72 -----------------------------------
 1 files changed, 1 insertions(+), 71 deletions(-)

diff --git a/work/sdk/yolotrack.go b/work/sdk/yolotrack.go
index 5f864cf..1ae08e2 100644
--- a/work/sdk/yolotrack.go
+++ b/work/sdk/yolotrack.go
@@ -4,7 +4,6 @@
 	"analysis/logo"
 	"analysis/work"
 	"context"
-	"time"
 
 	"basic.com/pubsub/protomsg.git"
 	"basic.com/valib/gosdk.git"
@@ -13,76 +12,7 @@
 
 func (y *YoloDetect) detectTrack(ctx context.Context, in <-chan work.MsgRS, out chan<- work.MsgRS, typ string) {
 	y.tracker = make(map[string]*trackInfo)
-	go y.work(ctx, out, typ)
-
-	for {
-		select {
-		case <-ctx.Done():
-			return
-		default:
-			rMsg := <-in
-			if !validRemoteMessage(rMsg, typ) {
-				logo.Errorln("yolo validremotemessage invalid")
-				ejectResult(nil, rMsg, out)
-				continue
-			}
-			y.push(rMsg)
-		}
-	}
-}
-
-func (y *YoloDetect) push(data work.MsgRS) {
-	y.cv.L.Lock()
-	y.cache.PushBack(data)
-	if y.cache.Len() > 12 {
-		for i := 0; i < y.cache.Len(); {
-			y.cache.Remove(y.cache.Front())
-			i = i + 2
-		}
-	}
-	// logo.Infof("push to cache count : %d\n", t.cache.Len())
-	y.cond = true
-	y.cv.Signal()
-	y.cv.L.Unlock()
-}
-
-func (y *YoloDetect) work(ctx context.Context, out chan<- work.MsgRS, typ string) {
-	tm := time.Now()
-	sc := 0
-
-	for {
-		select {
-		case <-ctx.Done():
-			return
-		default:
-
-			y.cv.L.Lock()
-
-			for !y.cond {
-				y.cv.Wait()
-			}
-
-			rMsg := y.cache.Front().Value.(work.MsgRS)
-
-			y.track(rMsg, out, typ)
-			y.cache.Remove(y.cache.Front())
-			y.cond = false
-			y.cv.L.Unlock()
-
-			sc++
-			if sc == 25 {
-				logo.Infoln("YOLO RUN 25 FRAME USE TIME: ", time.Since(tm))
-				sc = 0
-				tm = time.Now()
-			}
-			if time.Since(tm) > time.Second {
-				logo.Infof("YOLO RUN %d FRAME USE TIME: %v", sc, time.Since(tm))
-				sc = 0
-				tm = time.Now()
-			}
-		}
-	}
-
+	FlowSimple(ctx, in, out, typ, y.list.Push, y.list.Pop, y.track, func() { gosdk.Free() })
 }
 
 func (y *YoloDetect) track(rMsg work.MsgRS, out chan<- work.MsgRS, typ string) {

--
Gitblit v1.8.0