From 9d7b6313a08f7fae4cf117679c6d3633734ae738 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期一, 13 一月 2020 09:08:08 +0800 Subject: [PATCH] debug --- run.go | 85 +++++++++++++++++++++++------------------- 1 files changed, 47 insertions(+), 38 deletions(-) diff --git a/run.go b/run.go index cc5a50b..3e9c399 100644 --- a/run.go +++ b/run.go @@ -14,12 +14,11 @@ type channel struct { index int - msg chan protomsg.SdkMessage + msgs *sdkhelper.LockList } ////////////////////////////////////////////////////////////////// const ( - cacheFrameNum = 3 trackChnTimeout = time.Duration(10) ) @@ -66,7 +65,7 @@ c := &channel{ index: index, - msg: make(chan protomsg.SdkMessage, cacheFrameNum), + msgs: sdkhelper.NewLockList(6), } f.mapChan[id] = c @@ -196,9 +195,9 @@ for _, msg := range msgs { if c, ok := f.channelExist(msg.Cid); ok { - f.fnLogger("######push image") - c.msg <- msg - f.fnLogger("######push over image") + f.fnLogger("######push image: ", c.index) + c.msgs.Push(msg) + f.fnLogger("######push over image: ", c.index) } else { nc := f.channelNew(msg.Cid) @@ -218,7 +217,7 @@ ret := f.handle.TrackerResize(imgW, imgH, nc.index) f.fnLogger("ResizeFaceTracker: cid: ", msg.Cid, " chan: ", nc.index, " wXh: ", imgW, "x", imgH, " result:", ret) go f.detectTrackOneChn(nc, out) - nc.msg <- msg + nc.msgs.Push(msg) } } f.fnLogger("######run over batch images") @@ -235,41 +234,56 @@ for { select { - case rMsg := <-c.msg: - if !sdkhelper.ValidRemoteMessage(rMsg, f.typ, f.fnLogger) { - sdkhelper.EjectResult(nil, rMsg, out) - f.fnLogger("Face!!!!!!SkdMessage Invalid") - - continue + case <-time.After(trackChnTimeout * time.Second): + f.fnLogger("Timeout to get image, curCid:", curCid) + if curCid != "" { + f.channelRelease(curCid) } + return + default: - i := sdkhelper.UnpackImage(rMsg, f.typ, f.fnLogger) - if i == nil || i.Data == nil || i.Width <= 0 || i.Height <= 0 { - sdkhelper.EjectResult(nil, rMsg, out) - f.fnLogger("Face!!!!!!Unpack Image From SkdMessage Failed") - - continue + elems := c.msgs.Drain() + var msgs []protomsg.SdkMessage + for _, v := range elems { + msgs = append(msgs, v.(protomsg.SdkMessage)) } + for _, rMsg := range msgs { - curCid = i.Cid + if !sdkhelper.ValidRemoteMessage(rMsg, f.typ, f.fnLogger) { + sdkhelper.EjectResult(nil, rMsg, out) + f.fnLogger("Face!!!!!!SkdMessage Invalid") - // conv to bgr24 and resize - imgW, imgH := int(i.Width), int(i.Height) + continue + } - f.fnLogger("######face sdk run") - count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn) - f.fnLogger("######face over sdk run") + i := sdkhelper.UnpackImage(rMsg, f.typ, f.fnLogger) + if i == nil || i.Data == nil || i.Width <= 0 || i.Height <= 0 { + sdkhelper.EjectResult(nil, rMsg, out) + f.fnLogger("Face!!!!!!Unpack Image From SkdMessage Failed") - f.fnLogger("######face eject data") - sdkhelper.EjectResult(data, rMsg, out) - f.fnLogger("######face over eject data") + continue + } - var id, name string - if rMsg.Tasklab != nil { - id, name = rMsg.Tasklab.Taskid, rMsg.Tasklab.Taskname + curCid = i.Cid + + // conv to bgr24 and resize + imgW, imgH := int(i.Width), int(i.Height) + + f.fnLogger("######face sdk run: ", dtchn) + count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn) + f.fnLogger("######face over sdk run: ", dtchn) + + f.fnLogger("######face eject data: ", dtchn) + sdkhelper.EjectResult(data, rMsg, out) + f.fnLogger("######face over eject data: ", dtchn) + + var id, name string + if rMsg.Tasklab != nil { + id, name = rMsg.Tasklab.Taskid, rMsg.Tasklab.Taskname + } + f.fnLogger("CAMERAID: ", rMsg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", count) } - f.fnLogger("CAMERAID: ", rMsg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", count) sc++ if sc == 25 { @@ -283,12 +297,7 @@ sc = 0 tm = time.Now() } - case <-time.After(trackChnTimeout * time.Second): - f.fnLogger("Timeout to get image, curCid:", curCid) - if curCid != "" { - f.channelRelease(curCid) - } - return + } } } -- Gitblit v1.8.0