From e67660d0bf785eb2feaceee1ae96d3a66b23ba49 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期一, 06 五月 2019 17:43:39 +0800 Subject: [PATCH] code --- decoder/main.go | 33 +++++++++++++++++++++------------ 1 files changed, 21 insertions(+), 12 deletions(-) diff --git a/decoder/main.go b/decoder/main.go index a9d8816..97b3496 100644 --- a/decoder/main.go +++ b/decoder/main.go @@ -19,6 +19,8 @@ proc string testIt bool + + asServer bool ) func init() { @@ -28,6 +30,8 @@ flag.StringVar(&ipcURL, "ipc", "ipc:///tmp/pic.ipc", "ipc label") flag.BoolVar(&testIt, "test", false, "use test") + + flag.BoolVar(&asServer, "server", false, "run ipc as server") } // CameraInfo camera info @@ -43,11 +47,13 @@ } var ( - mapCI = make(map[string]CameraInfo) - port = 7001 + mapCameraInfo = make(map[string]CameraInfo) + + tcp = `tcp://192.168.1.124` + port = 7000 ) -func recvFromIPC(ctx context.Context, url string, ch chan<- CameraInfo) { +func recvCameraInfoFromIPC(ctx context.Context, url string, ch chan<- CameraInfo) { ipc := ipc.NewClient(ctx, url) for { @@ -79,25 +85,25 @@ ctx, cancel := context.WithCancel(context.Background()) ch := make(chan CameraInfo) - go recvFromIPC(ctx, "tcp://192.168.1.124:7000", ch) + tcpURL := tcp + strconv.Itoa(port) + port++ + go recvCameraInfoFromIPC(ctx, tcpURL, ch) - // demo.SendByIPC("rtsp://admin:a1234567@192.168.1.188:554/h264/ch1/main/av_stream", "cid0", - // "tcp://192.168.1.140:7000", false) for { select { case <-ctx.Done(): return case c := <-ch: - if _, ok := mapCI[c.ID]; !ok { - mapCI[c.ID] = c - ipc := "tcp://192.168.1.124:" + strconv.Itoa(port) + if _, ok := mapCameraInfo[c.ID]; !ok { + mapCameraInfo[c.ID] = c + ipcAddr := tcp + strconv.Itoa(port) port++ - fmt.Printf("create ipc %s for decode : %s, on camera id %s\n", ipc, c.URL, c.ID) + fmt.Printf("create ipc %s for decode : %s, on camera id %s\n", ipcAddr, c.URL, c.ID) url := strings.TrimSpace(c.URL) id := strings.TrimSpace(c.ID) - i := strings.TrimSpace(ipc) - go runSender(id, url, i) + addr := strings.TrimSpace(ipcAddr) + go runSender(id, url, addr) } } } @@ -106,6 +112,9 @@ func runSender(cameraID, rtspURL, ipcLabel string) { d := srv.NewSender(cameraID, rtspURL, ipcLabel) + if asServer { + d.RunAsServer() + } d.RunAsClient() } func test() { -- Gitblit v1.8.0