mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 23:52:46 +08:00
expose InterleavedFrame read/write functions
This commit is contained in:
2
auth.go
2
auth.go
@@ -84,7 +84,7 @@ func (as *AuthServer) GenerateHeader() HeaderValue {
|
||||
}
|
||||
|
||||
// ValidateHeader validates the Authorization header sent by a client after receiving the
|
||||
// WWW-Authenticate header provided by GenerateHeader().
|
||||
// WWW-Authenticate header.
|
||||
func (as *AuthServer) ValidateHeader(v HeaderValue, method Method, ur *url.URL) error {
|
||||
if len(v) == 0 {
|
||||
return fmt.Errorf("authorization header not provided")
|
||||
|
@@ -81,7 +81,7 @@ func (c *ConnClient) NetConn() net.Conn {
|
||||
// ReadFrame reads an InterleavedFrame.
|
||||
func (c *ConnClient) ReadFrame(frame *InterleavedFrame) error {
|
||||
c.conf.Conn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
|
||||
return frame.read(c.br)
|
||||
return frame.Read(c.br)
|
||||
}
|
||||
|
||||
// ReadFrameOrResponse reads an InterleavedFrame or a Response.
|
||||
@@ -94,7 +94,7 @@ func (c *ConnClient) ReadFrameOrResponse(frame *InterleavedFrame) (interface{},
|
||||
c.br.UnreadByte()
|
||||
|
||||
if b == interleavedFrameMagicByte {
|
||||
err := frame.read(c.br)
|
||||
err := frame.Read(c.br)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -175,7 +175,7 @@ func (c *ConnClient) Do(req *Request) (*Response, error) {
|
||||
// WriteFrame writes an InterleavedFrame.
|
||||
func (c *ConnClient) WriteFrame(frame *InterleavedFrame) error {
|
||||
c.conf.Conn.SetWriteDeadline(time.Now().Add(c.conf.WriteTimeout))
|
||||
return frame.write(c.bw)
|
||||
return frame.Write(c.bw)
|
||||
}
|
||||
|
||||
// Options writes an OPTIONS request and reads a response, that contains
|
||||
|
@@ -69,7 +69,7 @@ func (s *ConnServer) ReadFrameOrRequest(frame *InterleavedFrame) (interface{}, e
|
||||
s.br.UnreadByte()
|
||||
|
||||
if b == interleavedFrameMagicByte {
|
||||
err := frame.read(s.br)
|
||||
err := frame.Read(s.br)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -88,5 +88,5 @@ func (s *ConnServer) WriteResponse(res *Response) error {
|
||||
// WriteFrame writes an InterleavedFrame.
|
||||
func (s *ConnServer) WriteFrame(frame *InterleavedFrame) error {
|
||||
s.conf.Conn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
||||
return frame.write(s.bw)
|
||||
return frame.Write(s.bw)
|
||||
}
|
||||
|
@@ -24,9 +24,10 @@ type InterleavedFrame struct {
|
||||
Content []byte
|
||||
}
|
||||
|
||||
func (f *InterleavedFrame) read(r io.Reader) error {
|
||||
// Read reads an interleaved frame from a buffered reader.
|
||||
func (f *InterleavedFrame) Read(br *bufio.Reader) error {
|
||||
var header [4]byte
|
||||
_, err := io.ReadFull(r, header[:])
|
||||
_, err := io.ReadFull(br, header[:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -52,14 +53,15 @@ func (f *InterleavedFrame) read(r io.Reader) error {
|
||||
|
||||
f.Content = f.Content[:framelen]
|
||||
|
||||
_, err = io.ReadFull(r, f.Content)
|
||||
_, err = io.ReadFull(br, f.Content)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *InterleavedFrame) write(bw *bufio.Writer) error {
|
||||
// Write writes an InterleavedFrame into a buffered writer.
|
||||
func (f *InterleavedFrame) Write(bw *bufio.Writer) error {
|
||||
// convert TrackId and StreamType into channel
|
||||
channel := func() uint8 {
|
||||
if f.StreamType == StreamTypeRtp {
|
||||
|
Reference in New Issue
Block a user