视频分析2.0 多进程拆分仓库
zhangmeng
2019-04-30 d3618c4e9ceab273a52813c1f2c462912fb81e59
decoder/work/service/decoder.go
@@ -55,8 +55,13 @@
}
// Run run a decoder
func (dec *Decoder) Run() {
   ipc := ipc.NewServer(dec.ctxIPC.ctx, dec.ipcURL)
func (dec *Decoder) Run(asServer bool) {
   var i *ipc.IPC
   if asServer {
      i = ipc.NewServer(dec.ctxIPC.ctx, dec.ipcURL)
   } else {
      i = ipc.NewClient(dec.ctxIPC.ctx, dec.ipcURL)
   }
   gf := goffmpeg.New()
   if gf != nil {
@@ -68,7 +73,7 @@
   go dec.serializeImageInfo(imageChan, dataChan)
   gf.ActiveDecoder(func(d *[]byte, w, h *int) {
      fmt.Println("get a pic")
      if *w > 0 && *h > 0 {
         i := ImageInfo{*d, *w, *h, dec.cameraID}
         imageChan <- i
@@ -78,7 +83,7 @@
   })
   gf.Run(dec.streamURL)
   ipc.SendFromChannel(dataChan)
   i.SendFromChannel(dataChan)
}
// Stop stop run decoder, must run in goroutine