Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
.idea/

bin/

# Editor directories
.vscode
37 changes: 24 additions & 13 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,29 @@ import (
"github.com/deepch/vdk/av"
)

//Config global
// Config global
var Config = loadConfig()

//ConfigST struct
// ConfigST struct
type ConfigST struct {
mutex sync.RWMutex
Server ServerST `json:"server"`
Streams map[string]StreamST `json:"streams"`
mutex sync.RWMutex
Server ServerST `json:"server"`
Streams map[string]StreamST `json:"streams"`
LastError error
}

//ServerST struct
// ServerST struct
type ServerST struct {
HTTPPort string `json:"http_port"`
ICEServers []string `json:"ice_servers"`
ICEUsername string `json:"ice_username"`
ICECredential string `json:"ice_credential"`
WebRTCPortMin uint16 `json:"webrtc_port_min"`
WebRTCPortMax uint16 `json:"webrtc_port_max"`
HTTPPort string `json:"http_port"`
ICEServers []string `json:"ice_servers"`
ICEUsername string `json:"ice_username"`
ICECredential string `json:"ice_credential"`
WebRTCPortMin uint16 `json:"webrtc_port_min"`
WebRTCPortMax uint16 `json:"webrtc_port_max"`
CrossOriginDomains []string `json:"cross_origin_domains"`
}

//StreamST struct
// StreamST struct
type StreamST struct {
URL string `json:"url"`
Status bool `json:"status"`
Expand Down Expand Up @@ -114,6 +115,12 @@ func (element *ConfigST) GetWebRTCPortMax() uint16 {
return element.Server.WebRTCPortMax
}

func (element *ConfigST) GetCrossOriginDomains() []string {
element.mutex.Lock()
defer element.mutex.Unlock()
return element.Server.CrossOriginDomains
}

func loadConfig() *ConfigST {
var tmp ConfigST
data, err := ioutil.ReadFile("config.json")
Expand All @@ -131,6 +138,7 @@ func loadConfig() *ConfigST {
udpMin := flag.Int("udp_min", 0, "WebRTC UDP port min")
udpMax := flag.Int("udp_max", 0, "WebRTC UDP port max")
iceServer := flag.String("ice_server", "", "ICE Server")
crossOriginDomains := flag.String("cross_origin_domains", "", "Cross Origin Domains")
flag.Parse()

tmp.Server.HTTPPort = *addr
Expand All @@ -139,6 +147,9 @@ func loadConfig() *ConfigST {
if len(*iceServer) > 0 {
tmp.Server.ICEServers = []string{*iceServer}
}
if len(*crossOriginDomains) > 0 {
tmp.Server.CrossOriginDomains = []string{*crossOriginDomains}
}

tmp.Streams = make(map[string]StreamST)
}
Expand Down
3 changes: 2 additions & 1 deletion config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"server": {
"http_port": ":8083",
"ice_servers": ["stun:stun.l.google.com:19302"]
"ice_servers": ["stun:stun.l.google.com:19302"],
"cross_origin_domains": ["localhost:3000", "localhost:5173"]
},
"streams": {
"H264_AAC": {
Expand Down
4 changes: 0 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ require (
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.11.2 // indirect
github.com/goccy/go-json v0.10.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
Expand All @@ -37,10 +36,8 @@ require (
github.com/pion/sdp/v3 v3.0.6 // indirect
github.com/pion/srtp/v2 v2.0.12 // indirect
github.com/pion/stun v0.4.0 // indirect
github.com/pion/transport v0.14.1 // indirect
github.com/pion/transport/v2 v2.0.2 // indirect
github.com/pion/turn/v2 v2.1.0 // indirect
github.com/pion/udp v0.1.4 // indirect
github.com/pion/udp/v2 v2.0.1 // indirect
github.com/pion/webrtc/v3 v3.1.58 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
Expand All @@ -51,6 +48,5 @@ require (
golang.org/x/sys v0.6.0 // indirect
golang.org/x/text v0.8.0 // indirect
google.golang.org/protobuf v1.29.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Loading