Files
webrtc/main.go
2023-02-21 22:08:36 -08:00

56 lines
1.1 KiB
Go

package main
import (
"fmt"
"log"
"secureput"
"github.com/pion/webrtc/v3"
)
var vipctrack *VisionIpcTrack
func StopTrack() {
if vipctrack != nil {
vipctrack.Stop()
vipctrack = nil
}
}
func ReplaceTrack(prefix string, pc *webrtc.PeerConnection) {
StopTrack()
var err error
vipctrack, err = NewVisionIpcTrack(prefix + "EncodeData")
if err != nil {
log.Fatal(fmt.Errorf("main: creating track failed: %w", err))
}
go vipctrack.Start()
webrtc.newtrack
for frame := range vipctrack.Frame {
// Do something with decoded frame
}
}
func main() {
signal := secureput.Create("go-webrtc-body")
signal.DeviceMetadata = map[string]interface{}{"isRobot": true}
signal.Gui = &Face{app: &signal}
go signal.RunDaemonMode()
if !signal.Paired() {
go signal.Gui.Show()
log.Println("Waiting to pair.")
<-signal.PairWaitChannel
}
signal.OnPeerConnectionCreated = func(pc *webrtc.PeerConnection) {
ReplaceTrack("road", pc)
}
signal.OnICEConnectionStateChange = func(connectionState webrtc.ICEConnectionState) {
if connectionState.String() == "disconnected" {
StopTrack()
}
}
for {
}
}