mirror of https://bitbucket.org/ausocean/av.git
revid: wrote loadsender implementation for udp sending for the rtp - need to test
This commit is contained in:
parent
5cc35a77a5
commit
d291744f63
|
@ -30,6 +30,7 @@ package revid
|
|||
|
||||
import (
|
||||
"io"
|
||||
"net"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
|
@ -289,3 +290,35 @@ func (s *rtmpSender) restart() error {
|
|||
func (s *rtmpSender) close() error {
|
||||
return s.sess.Close()
|
||||
}
|
||||
|
||||
// rtpSender implements loadSender for a native udp destination.
|
||||
type udpSender struct {
|
||||
conn net.Conn
|
||||
log func(lvl int8, msg string, args ...interface{})
|
||||
chunk *ring.Chunk
|
||||
}
|
||||
|
||||
func newUdpSender(addr string, log func(lvl int8, msg string,
|
||||
args ...interface{})) (*udpSender, error) {
|
||||
|
||||
conn, err := net.Dial("udp", addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &udpSender{
|
||||
conn: conn,
|
||||
log: log,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *udpSender) load(c *ring.Chunk) error {
|
||||
s.chunk = c
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *udpSender) send() error {
|
||||
_, err := s.chunk.WriteTo(s.conn)
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *udpSender) close() error { return nil }
|
||||
|
|
Loading…
Reference in New Issue