mirror of https://bitbucket.org/ausocean/av.git
codec/mjpeg/jpeg.go: moved get24 to bottom of file and gave comment.
This commit is contained in:
parent
86e215f913
commit
d0e356314d
|
@ -73,7 +73,9 @@ func (e *Extractor) Extract(dst io.Writer, src io.Reader, delay time.Duration) e
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ctx.ParsePayload(p, m)
|
err = ctx.ParsePayload(p, m)
|
||||||
if err != nil {
|
switch err {
|
||||||
|
case ErrNoFrameStart: // If no frame start then we continue until we get one.
|
||||||
|
default:
|
||||||
return fmt.Errorf("could not parse JPEG scan: %w", err)
|
return fmt.Errorf("could not parse JPEG scan: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,7 @@ var (
|
||||||
ErrReservedQ = errors.New("q value is reserved")
|
ErrReservedQ = errors.New("q value is reserved")
|
||||||
ErrUnimplementedType = errors.New("unimplemented RTP/JPEG type")
|
ErrUnimplementedType = errors.New("unimplemented RTP/JPEG type")
|
||||||
ErrUnsupportedPrecision = errors.New("unsupported precision")
|
ErrUnsupportedPrecision = errors.New("unsupported precision")
|
||||||
|
ErrNoFrameStart = errors.New("missing start of frame")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Slices used in the creation of huffman tables.
|
// Slices used in the creation of huffman tables.
|
||||||
|
@ -260,7 +261,7 @@ func (c *Context) ParsePayload(p []byte, m bool) error {
|
||||||
|
|
||||||
if c.blen == 0 {
|
if c.blen == 0 {
|
||||||
// Must have missed start of frame? So ignore and wait for start.
|
// Must have missed start of frame? So ignore and wait for start.
|
||||||
return nil
|
return ErrNoFrameStart
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: check that timestamp is consistent
|
// TODO: check that timestamp is consistent
|
||||||
|
@ -290,10 +291,6 @@ func (c *Context) ParsePayload(p []byte, m bool) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func get24(p []byte) int {
|
|
||||||
return int(p[0]<<16) | int(p[1]<<8) | int(p[2])
|
|
||||||
}
|
|
||||||
|
|
||||||
// writeHeader writes a JPEG header to the writer w.
|
// writeHeader writes a JPEG header to the writer w.
|
||||||
func writeHeader(p []byte, _type, width, height, nbqTab int, dri uint16, qtable []byte) int {
|
func writeHeader(p []byte, _type, width, height, nbqTab int, dri uint16, qtable []byte) int {
|
||||||
width <<= 3
|
width <<= 3
|
||||||
|
@ -451,3 +448,8 @@ func clip(v, min, max int) int {
|
||||||
|
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get24 parses an int24 from p using big endian order.
|
||||||
|
func get24(p []byte) int {
|
||||||
|
return int(p[0]<<16) | int(p[1]<<8) | int(p[2])
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue