start hooking up pion

This commit is contained in:
Keyvan Fatehi
2023-02-21 22:08:36 -08:00
parent 99599985b6
commit b6aa7ead65
8 changed files with 219 additions and 9 deletions

44
main.go
View File

@@ -1,25 +1,55 @@
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
}
// go TestVisionIPCTrack("roadEncodeData")
for {
select {}
signal.OnPeerConnectionCreated = func(pc *webrtc.PeerConnection) {
ReplaceTrack("road", pc)
}
signal.OnICEConnectionStateChange = func(connectionState webrtc.ICEConnectionState) {
if connectionState.String() == "disconnected" {
StopTrack()
}
}
for {
}
}