Fixes with RTPRelay and actioncam
Endless loop in RTPRelay and exiting from whole app using Ctrl+C
This commit is contained in:
parent
e82f5a97c9
commit
205c9896dc
2 changed files with 61 additions and 55 deletions
|
|
@ -71,6 +71,7 @@ func main() {
|
|||
case sig := <-signalChannel:
|
||||
log.Printf("Got signal %s, exiting...\n", sig)
|
||||
cancel()
|
||||
os.Exit(0)
|
||||
}
|
||||
}(cancel)
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ type RTPRelay struct {
|
|||
context context.Context
|
||||
}
|
||||
|
||||
var close bool
|
||||
|
||||
// CreateRTPRelay creates a UDP listener that handles live data
|
||||
// from the camera and forwards it as an RTP stream
|
||||
func CreateRTPRelay(ctx context.Context, targetAddress net.IP, targetPort int) *RTPRelay {
|
||||
|
|
@ -29,7 +31,9 @@ func CreateRTPRelay(ctx context.Context, targetAddress net.IP, targetPort int) *
|
|||
log.Printf("ERROR: %s\n", err)
|
||||
}
|
||||
|
||||
close = false
|
||||
relay := RTPRelay{
|
||||
close: false,
|
||||
targetIP: targetAddress,
|
||||
targetPort: targetPort,
|
||||
listener: conn,
|
||||
|
|
@ -66,7 +70,7 @@ func handleCameraStream(relay RTPRelay, conn net.PacketConn) {
|
|||
|
||||
frameBuffer := bytes.Buffer{}
|
||||
packetBuffer := bytes.Buffer{}
|
||||
|
||||
T:
|
||||
for {
|
||||
conn.SetReadDeadline(time.Now().Add(10 * time.Second))
|
||||
|
||||
|
|
@ -75,12 +79,12 @@ func handleCameraStream(relay RTPRelay, conn net.PacketConn) {
|
|||
log.Println("Context Done")
|
||||
rtpConn.Close()
|
||||
relay.listener.Close()
|
||||
break
|
||||
break T
|
||||
default:
|
||||
if relay.close {
|
||||
if close {
|
||||
rtpConn.Close()
|
||||
relay.listener.Close()
|
||||
break
|
||||
break T
|
||||
}
|
||||
|
||||
conn.ReadFrom(buffer)
|
||||
|
|
@ -136,6 +140,7 @@ func handleCameraStream(relay RTPRelay, conn net.PacketConn) {
|
|||
|
||||
// Stop stops listening for packets
|
||||
func (r *RTPRelay) Stop() {
|
||||
r.listener.Close()
|
||||
close = true
|
||||
r.close = true
|
||||
r.listener.Close()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue