| 115 | } |
| 116 | |
| 117 | func loadConfig() *ConfigST { |
| 118 | var tmp ConfigST |
| 119 | data, err := ioutil.ReadFile("config.json") |
| 120 | if err == nil { |
| 121 | err = json.Unmarshal(data, &tmp) |
| 122 | if err != nil { |
| 123 | log.Fatalln(err) |
| 124 | } |
| 125 | for i, v := range tmp.Streams { |
| 126 | v.Cl = make(map[string]viewer) |
| 127 | tmp.Streams[i] = v |
| 128 | } |
| 129 | } else { |
| 130 | addr := flag.String("listen", "8083", "HTTP host:port") |
| 131 | udpMin := flag.Int("udp_min", 0, "WebRTC UDP port min") |
| 132 | udpMax := flag.Int("udp_max", 0, "WebRTC UDP port max") |
| 133 | iceServer := flag.String("ice_server", "", "ICE Server") |
| 134 | flag.Parse() |
| 135 | |
| 136 | tmp.Server.HTTPPort = *addr |
| 137 | tmp.Server.WebRTCPortMin = uint16(*udpMin) |
| 138 | tmp.Server.WebRTCPortMax = uint16(*udpMax) |
| 139 | if len(*iceServer) > 0 { |
| 140 | tmp.Server.ICEServers = []string{*iceServer} |
| 141 | } |
| 142 | |
| 143 | tmp.Streams = make(map[string]StreamST) |
| 144 | } |
| 145 | return &tmp |
| 146 | } |
| 147 | |
| 148 | func (element *ConfigST) cast(uuid string, pck av.Packet) { |
| 149 | element.mutex.Lock() |