mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 15:16:51 +08:00
39 lines
612 B
Go
39 lines
612 B
Go
package base
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
rtspMaxContentLength = 128 * 1024
|
|
)
|
|
|
|
func readByteEqual(rb *bufio.Reader, cmp byte) error {
|
|
byt, err := rb.ReadByte()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if byt != cmp {
|
|
return fmt.Errorf("expected '%c', got '%c'", cmp, byt)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func readBytesLimited(rb *bufio.Reader, delim byte, n int) ([]byte, error) {
|
|
for i := 1; i <= n; i++ {
|
|
byts, err := rb.Peek(i)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if byts[len(byts)-1] == delim {
|
|
rb.Discard(len(byts))
|
|
return byts, nil
|
|
}
|
|
}
|
|
return nil, fmt.Errorf("buffer length exceeds %d", n)
|
|
}
|