视频分析2.0 多进程拆分仓库
zhangmeng
2019-05-06 e4f567f656cc8b5e1e8f96722ca78d0a09333eb8
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 {
@@ -67,8 +72,8 @@
   go dec.serializeImageInfo(imageChan, dataChan)
   // str := "hello"
   gf.ActiveDecoder(func(d *[]byte, w, h *int) {
      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