update linter settings (#840)

This commit is contained in:
Alessandro Ros
2025-07-26 16:28:03 +02:00
committed by GitHub
parent 63f7ffc3e3
commit 1021950db8
48 changed files with 160 additions and 104 deletions

View File

@@ -67,6 +67,9 @@ linters:
disable: disable:
- fieldalignment - fieldalignment
- reflectvaluecompare - reflectvaluecompare
settings:
shadow:
strict: true
formatters: formatters:
enable: enable:

View File

@@ -1315,16 +1315,16 @@ func TestClientPlayAnyPort(t *testing.T) {
if ca == "random" { if ca == "random" {
// skip firewall opening // skip firewall opening
buf := make([]byte, 2048) buf := make([]byte, 2048)
_, _, err = l1b.ReadFrom(buf) _, _, err2 = l1b.ReadFrom(buf)
require.NoError(t, err) require.NoError(t, err2)
buf = make([]byte, 2048) buf = make([]byte, 2048)
var n int var n int
n, _, err = l1b.ReadFrom(buf) n, _, err2 = l1b.ReadFrom(buf)
require.NoError(t, err) require.NoError(t, err2)
var packets []rtcp.Packet var packets []rtcp.Packet
packets, err = rtcp.Unmarshal(buf[:n]) packets, err2 = rtcp.Unmarshal(buf[:n])
require.NoError(t, err) require.NoError(t, err2)
require.Equal(t, &testRTCPPacket, packets[0]) require.Equal(t, &testRTCPPacket, packets[0])
close(serverRecv) close(serverRecv)
} }
@@ -1351,7 +1351,7 @@ func TestClientPlayAnyPort(t *testing.T) {
<-packetRecv <-packetRecv
if ca == "random" { if ca == "random" {
err := c.WritePacketRTCP(med, &testRTCPPacket) err = c.WritePacketRTCP(med, &testRTCPPacket)
require.NoError(t, err) require.NoError(t, err)
<-serverRecv <-serverRecv
} }

View File

@@ -613,7 +613,7 @@ func TestClientRecordSocketError(t *testing.T) {
defer ti.Stop() defer ti.Stop()
for range ti.C { for range ti.C {
err := c.WritePacketRTP(medi, &testRTPPacket) err = c.WritePacketRTP(medi, &testRTPPacket)
if err != nil { if err != nil {
break break
} }

View File

@@ -178,8 +178,8 @@ func TestClientCloseDuringRequest(t *testing.T) {
optionsDone := make(chan struct{}) optionsDone := make(chan struct{})
go func() { go func() {
defer close(optionsDone) defer close(optionsDone)
_, err := c.Options(u) _, err2 := c.Options(u)
require.Error(t, err) require.Error(t, err2)
}() }()
<-requestReceived <-requestReceived
@@ -534,7 +534,8 @@ func TestClientReplyToServerRequest(t *testing.T) {
}) })
require.NoError(t, err2) require.NoError(t, err2)
res, err2 := conn.ReadResponse() var res *base.Response
res, err2 = conn.ReadResponse()
require.NoError(t, err2) require.NoError(t, err2)
require.Equal(t, base.StatusOK, res.StatusCode) require.Equal(t, base.StatusOK, res.StatusCode)
require.Equal(t, "4", res.Header["CSeq"][0]) require.Equal(t, "4", res.Header["CSeq"][0])

View File

@@ -11,6 +11,7 @@ import (
"github.com/bluenviron/gortsplib/v4/pkg/description" "github.com/bluenviron/gortsplib/v4/pkg/description"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/bluenviron/mediacommon/v2/pkg/codecs/g711" "github.com/bluenviron/mediacommon/v2/pkg/codecs/g711"
"github.com/pion/rtp"
) )
// This example shows how to // This example shows how to
@@ -129,7 +130,8 @@ func main() {
} }
// generate RTP packets from G711 samples // generate RTP packets from G711 samples
pkts, err := rtpEnc.Encode(samples) var pkts []*rtp.Packet
pkts, err = rtpEnc.Encode(samples)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -71,7 +71,7 @@ func main() {
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
// pause // pause
_, err := c.Pause() _, err = c.Pause()
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -10,6 +10,7 @@ import (
"github.com/bluenviron/gortsplib/v4/pkg/description" "github.com/bluenviron/gortsplib/v4/pkg/description"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/bluenviron/mediacommon/v2/pkg/codecs/g711" "github.com/bluenviron/mediacommon/v2/pkg/codecs/g711"
"github.com/pion/rtp"
) )
// This example shows how to // This example shows how to
@@ -89,7 +90,8 @@ func main() {
} }
// generate RTP packets from G711 samples // generate RTP packets from G711 samples
pkts, err := rtpEnc.Encode(samples) var pkts []*rtp.Packet
pkts, err = rtpEnc.Encode(samples)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -14,6 +14,7 @@ import (
"github.com/bluenviron/gortsplib/v4/pkg/description" "github.com/bluenviron/gortsplib/v4/pkg/description"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/bluenviron/mediacommon/v2/pkg/formats/mpegts" "github.com/bluenviron/mediacommon/v2/pkg/formats/mpegts"
"github.com/pion/rtp"
) )
// This example shows how to // This example shows how to
@@ -88,7 +89,8 @@ func main() {
} }
// find the H264 track inside the file // find the H264 track inside the file
track, err := findTrack(r) var track *mpegts.Track
track, err = findTrack(r)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@@ -119,7 +121,8 @@ func main() {
log.Printf("writing access unit with pts=%d dts=%d", pts, dts) log.Printf("writing access unit with pts=%d dts=%d", pts, dts)
// wrap the access unit into RTP packets // wrap the access unit into RTP packets
packets, err := rtpEnc.Encode(au) var packets []*rtp.Packet
packets, err = rtpEnc.Encode(au)
if err != nil { if err != nil {
return err return err
} }
@@ -134,7 +137,7 @@ func main() {
// write RTP packets to the server // write RTP packets to the server
for _, packet := range packets { for _, packet := range packets {
err := c.WritePacketRTP(desc.Medias[0], packet) err = c.WritePacketRTP(desc.Medias[0], packet)
if err != nil { if err != nil {
return err return err
} }
@@ -145,7 +148,7 @@ func main() {
// read the file // read the file
for { for {
err := r.Read() err = r.Read()
if err != nil { if err != nil {
// file has ended // file has ended
if errors.Is(err, io.EOF) { if errors.Is(err, io.EOF) {

View File

@@ -9,6 +9,7 @@ import (
"github.com/bluenviron/gortsplib/v4" "github.com/bluenviron/gortsplib/v4"
"github.com/bluenviron/gortsplib/v4/pkg/description" "github.com/bluenviron/gortsplib/v4/pkg/description"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/pion/rtp"
) )
// This example shows how to // This example shows how to
@@ -81,7 +82,8 @@ func main() {
samples := createDummyAudio(pts, prevPTS) samples := createDummyAudio(pts, prevPTS)
// generate RTP packets from LPCM samples // generate RTP packets from LPCM samples
pkts, err := rtpEnc.Encode(samples) var pkts []*rtp.Packet
pkts, err = rtpEnc.Encode(samples)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -11,6 +11,7 @@ import (
"github.com/bluenviron/gortsplib/v4" "github.com/bluenviron/gortsplib/v4"
"github.com/bluenviron/gortsplib/v4/pkg/description" "github.com/bluenviron/gortsplib/v4/pkg/description"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/pion/rtp"
) )
// This example shows how to // This example shows how to
@@ -79,13 +80,14 @@ func main() {
// encode the image with JPEG // encode the image with JPEG
var buf bytes.Buffer var buf bytes.Buffer
err := jpeg.Encode(&buf, img, &jpeg.Options{Quality: 80}) err = jpeg.Encode(&buf, img, &jpeg.Options{Quality: 80})
if err != nil { if err != nil {
panic(err) panic(err)
} }
// generate RTP packets from the JPEG image // generate RTP packets from the JPEG image
pkts, err := rtpEnc.Encode(buf.Bytes()) var pkts []*rtp.Packet
pkts, err = rtpEnc.Encode(buf.Bytes())
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -8,6 +8,7 @@ import (
"github.com/bluenviron/gortsplib/v4" "github.com/bluenviron/gortsplib/v4"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/bluenviron/mediacommon/v2/pkg/codecs/g711" "github.com/bluenviron/mediacommon/v2/pkg/codecs/g711"
"github.com/pion/rtp"
) )
func multiplyAndDivide(v, m, d int64) int64 { func multiplyAndDivide(v, m, d int64) int64 {
@@ -70,7 +71,8 @@ func (r *audioStreamer) run() {
} }
// generate RTP packets from G711 samples // generate RTP packets from G711 samples
pkts, err := rtpEnc.Encode(samples) var pkts []*rtp.Packet
pkts, err = rtpEnc.Encode(samples)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -12,6 +12,7 @@ import (
"github.com/bluenviron/gortsplib/v4" "github.com/bluenviron/gortsplib/v4"
"github.com/bluenviron/gortsplib/v4/pkg/format" "github.com/bluenviron/gortsplib/v4/pkg/format"
"github.com/bluenviron/mediacommon/v2/pkg/formats/mpegts" "github.com/bluenviron/mediacommon/v2/pkg/formats/mpegts"
"github.com/pion/rtp"
) )
func randUint32() (uint32, error) { func randUint32() (uint32, error) {
@@ -77,7 +78,8 @@ func (r *fileStreamer) run() {
} }
// find the H264 track inside the file // find the H264 track inside the file
track, err := findTrack(mr) var track *mpegts.Track
track, err = findTrack(mr)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@@ -108,7 +110,8 @@ func (r *fileStreamer) run() {
log.Printf("writing access unit with pts=%d dts=%d", pts, dts) log.Printf("writing access unit with pts=%d dts=%d", pts, dts)
// wrap the access unit into RTP packets // wrap the access unit into RTP packets
packets, err := rtpEnc.Encode(au) var packets []*rtp.Packet
packets, err = rtpEnc.Encode(au)
if err != nil { if err != nil {
return err return err
} }
@@ -123,7 +126,7 @@ func (r *fileStreamer) run() {
// write RTP packets to the server // write RTP packets to the server
for _, packet := range packets { for _, packet := range packets {
err := r.stream.WritePacketRTP(r.stream.Desc.Medias[0], packet) err = r.stream.WritePacketRTP(r.stream.Desc.Medias[0], packet)
if err != nil { if err != nil {
return err return err
} }
@@ -134,7 +137,7 @@ func (r *fileStreamer) run() {
// read the file // read the file
for { for {
err := mr.Read() err = mr.Read()
if err != nil { if err != nil {
// file has ended // file has ended
if errors.Is(err, io.EOF) { if errors.Is(err, io.EOF) {

View File

@@ -57,7 +57,7 @@ func (c *Conn) Read() (interface{}, error) {
return c.ReadRequest() return c.ReadRequest()
} }
if _, err := c.br.Discard(1); err != nil { if _, err = c.br.Discard(1); err != nil {
return nil, err return nil, err
} }
} }

View File

@@ -30,7 +30,7 @@ func (f *AC3) unmarshal(ctx *unmarshalContext) error {
f.SampleRate = int(tmp1) f.SampleRate = int(tmp1)
if len(tmp) >= 2 { if len(tmp) >= 2 {
tmp1, err := strconv.ParseUint(tmp[1], 10, 31) tmp1, err = strconv.ParseUint(tmp[1], 10, 31)
if err != nil || tmp1 == 0 { if err != nil || tmp1 == 0 {
return fmt.Errorf("invalid channel count: '%s'", tmp[1]) return fmt.Errorf("invalid channel count: '%s'", tmp[1])
} }

View File

@@ -47,7 +47,7 @@ func (f *G711) unmarshal(ctx *unmarshalContext) error {
f.SampleRate = int(tmp1) f.SampleRate = int(tmp1)
if len(tmp) >= 2 { if len(tmp) >= 2 {
tmp1, err := strconv.ParseUint(tmp[1], 10, 31) tmp1, err = strconv.ParseUint(tmp[1], 10, 31)
if err != nil || tmp1 == 0 { if err != nil || tmp1 == 0 {
return fmt.Errorf("invalid channel count: '%s'", tmp[1]) return fmt.Errorf("invalid channel count: '%s'", tmp[1])
} }

View File

@@ -172,7 +172,7 @@ func (f *H264) PTSEqualsDTS(pkt *rtp.Packet) bool {
return false return false
} }
typ := h264.NALUType(pkt.Payload[1] & 0x1F) typ = h264.NALUType(pkt.Payload[1] & 0x1F)
switch typ { switch typ {
case h264.NALUTypeIDR, h264.NALUTypeSPS, h264.NALUTypePPS: case h264.NALUTypeIDR, h264.NALUTypeSPS, h264.NALUTypePPS:
return true return true

View File

@@ -183,7 +183,7 @@ func (f *H265) PTSEqualsDTS(pkt *rtp.Packet) bool {
return false return false
} }
typ := h265.NALUType(pkt.Payload[2] & 0b111111) typ = h265.NALUType(pkt.Payload[2] & 0b111111)
switch typ { switch typ {
case h265.NALUType_IDR_W_RADL, h265.NALUType_IDR_N_LP, h265.NALUType_CRA_NUT, case h265.NALUType_IDR_W_RADL, h265.NALUType_IDR_N_LP, h265.NALUType_CRA_NUT,
h265.NALUType_VPS_NUT, h265.NALUType_SPS_NUT, h265.NALUType_PPS_NUT: h265.NALUType_VPS_NUT, h265.NALUType_SPS_NUT, h265.NALUType_PPS_NUT:

View File

@@ -57,7 +57,7 @@ func (f *LPCM) unmarshal(ctx *unmarshalContext) error {
f.SampleRate = int(tmp1) f.SampleRate = int(tmp1)
if len(tmp) >= 2 { if len(tmp) >= 2 {
tmp1, err := strconv.ParseUint(tmp[1], 10, 31) tmp1, err = strconv.ParseUint(tmp[1], 10, 31)
if err != nil || tmp1 == 0 { if err != nil || tmp1 == 0 {
return fmt.Errorf("invalid channel count: '%s'", tmp[1]) return fmt.Errorf("invalid channel count: '%s'", tmp[1])
} }

View File

@@ -20,7 +20,8 @@ func TestDecode(t *testing.T) {
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
clone := pkt.Clone() clone := pkt.Clone()
addFrames, err := d.Decode(pkt) var addFrames [][]byte
addFrames, err = d.Decode(pkt)
// test input integrity // test input integrity
require.Equal(t, clone, pkt) require.Equal(t, clone, pkt)

View File

@@ -20,7 +20,8 @@ func TestDecode(t *testing.T) {
var obus [][]byte var obus [][]byte
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
addOBUs, err := d.Decode(pkt) var addOBUs [][]byte
addOBUs, err = d.Decode(pkt)
if errors.Is(err, ErrMorePacketsNeeded) { if errors.Is(err, ErrMorePacketsNeeded) {
continue continue
} }

View File

@@ -22,7 +22,8 @@ func TestDecode(t *testing.T) {
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
clone := pkt.Clone() clone := pkt.Clone()
addNALUs, err := d.Decode(pkt) var addNALUs [][]byte
addNALUs, err = d.Decode(pkt)
// test input integrity // test input integrity
require.Equal(t, clone, pkt) require.Equal(t, clone, pkt)
@@ -164,7 +165,7 @@ func TestDecodeAnnexB(t *testing.T) {
}, nalus) }, nalus)
for i := 0; i < 2; i++ { for i := 0; i < 2; i++ {
nalus, err := d.Decode(&rtp.Packet{ nalus, err = d.Decode(&rtp.Packet{
Header: rtp.Header{ Header: rtp.Header{
Version: 2, Version: 2,
Marker: true, Marker: true,

View File

@@ -22,7 +22,8 @@ func TestDecode(t *testing.T) {
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
clone := pkt.Clone() clone := pkt.Clone()
addNALUs, err := d.Decode(pkt) var addNALUs [][]byte
addNALUs, err = d.Decode(pkt)
// test input integrity // test input integrity
require.Equal(t, clone, pkt) require.Equal(t, clone, pkt)

View File

@@ -20,7 +20,8 @@ func TestDecode(t *testing.T) {
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
clone := pkt.Clone() clone := pkt.Clone()
addUnits, err := d.Decode(pkt) var addUnits []byte
addUnits, err = d.Decode(pkt)
// test input integrity // test input integrity
require.Equal(t, clone, pkt) require.Equal(t, clone, pkt)

View File

@@ -20,7 +20,8 @@ func TestDecode(t *testing.T) {
var samples []byte var samples []byte
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
partial, err := d.Decode(pkt) var partial []byte
partial, err = d.Decode(pkt)
require.NoError(t, err) require.NoError(t, err)
samples = append(samples, partial...) samples = append(samples, partial...)
} }

View File

@@ -204,7 +204,7 @@ func (d *Decoder) Decode(pkt *rtp.Packet) ([]byte, error) {
if jh.Quantization >= 128 { if jh.Quantization >= 128 {
var hqt headerQuantizationTable var hqt headerQuantizationTable
n, err := hqt.unmarshal(byts) n, err = hqt.unmarshal(byts)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -16,7 +16,8 @@ func TestDecode(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
image, err := d.Decode(pkt) var image []byte
image, err = d.Decode(pkt)
if errors.Is(err, ErrMorePacketsNeeded) { if errors.Is(err, ErrMorePacketsNeeded) {
continue continue
} }

View File

@@ -100,7 +100,7 @@ func (e *Encoder) Encode(frames [][]byte) ([]*rtp.Packet, error) {
for _, frame := range batch { for _, frame := range batch {
var h mpeg1audio.FrameHeader var h mpeg1audio.FrameHeader
err := h.Unmarshal(frame) err = h.Unmarshal(frame)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -178,7 +178,8 @@ func (d *Decoder) readAUHeaders(buf []byte, headersLen int) ([]uint64, error) {
if !firstRead { if !firstRead {
firstRead = true firstRead = true
if d.IndexLength > 0 { if d.IndexLength > 0 {
auIndex, err := bits.ReadBits(buf, &pos, d.IndexLength) var auIndex uint64
auIndex, err = bits.ReadBits(buf, &pos, d.IndexLength)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -189,7 +190,8 @@ func (d *Decoder) readAUHeaders(buf []byte, headersLen int) ([]uint64, error) {
} }
} }
} else if d.IndexDeltaLength > 0 { } else if d.IndexDeltaLength > 0 {
auIndexDelta, err := bits.ReadBits(buf, &pos, d.IndexDeltaLength) var auIndexDelta uint64
auIndexDelta, err = bits.ReadBits(buf, &pos, d.IndexDeltaLength)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -25,7 +25,8 @@ func TestDecodeGeneric(t *testing.T) {
for _, pkt := range ca.pkts { for _, pkt := range ca.pkts {
clone := pkt.Clone() clone := pkt.Clone()
addAUs, err := d.Decode(pkt) var addAUs [][]byte
addAUs, err = d.Decode(pkt)
// test input integrity // test input integrity
require.Equal(t, clone, pkt) require.Equal(t, clone, pkt)
@@ -53,7 +54,8 @@ func TestDecodeGenericADTS(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
for i := 0; i < 2; i++ { for i := 0; i < 2; i++ {
aus, err := d.Decode(&rtp.Packet{ var aus [][]byte
aus, err = d.Decode(&rtp.Packet{
Header: rtp.Header{ Header: rtp.Header{
Version: 2, Version: 2,
Marker: true, Marker: true,

View File

@@ -40,7 +40,8 @@ func (f *Vorbis) unmarshal(ctx *unmarshalContext) error {
for key, val := range ctx.fmtp { for key, val := range ctx.fmtp {
if key == "configuration" { if key == "configuration" {
conf, err := base64.StdEncoding.DecodeString(val) var conf []byte
conf, err = base64.StdEncoding.DecodeString(val)
if err != nil { if err != nil {
return fmt.Errorf("invalid config: %v", val) return fmt.Errorf("invalid config: %v", val)
} }

View File

@@ -141,7 +141,8 @@ func (h *Authenticate) Unmarshal(v base.HeaderValue) error {
h.Stale = &v h.Stale = &v
case "algorithm": case "algorithm":
a, err := parseAuthAlgorithm(v) var a AuthAlgorithm
a, err = parseAuthAlgorithm(v)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -133,7 +133,8 @@ func (h *Authorization) Unmarshal(v base.HeaderValue) error {
h.Opaque = &v h.Opaque = &v
case "algorithm": case "algorithm":
a, err := parseAuthAlgorithm(v) var a AuthAlgorithm
a, err = parseAuthAlgorithm(v)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -45,7 +45,8 @@ func (h *KeyMgmt) Unmarshal(v base.HeaderValue) error {
uriProvided = true uriProvided = true
case "data": case "data":
byts, err := base64.StdEncoding.DecodeString(v) var byts []byte
byts, err = base64.StdEncoding.DecodeString(v)
if err != nil { if err != nil {
return fmt.Errorf("invalid data: %w", err) return fmt.Errorf("invalid data: %w", err)
} }

View File

@@ -54,7 +54,7 @@ func (t *RangeSMPTETime) unmarshal(s string) error {
if len(parts) == 4 { if len(parts) == 4 {
parts = strings.Split(parts[3], ".") parts = strings.Split(parts[3], ".")
if len(parts) == 2 { if len(parts) == 2 {
tmp, err := strconv.ParseUint(parts[0], 10, 64) tmp, err = strconv.ParseUint(parts[0], 10, 64)
if err != nil { if err != nil {
return err return err
} }
@@ -66,7 +66,7 @@ func (t *RangeSMPTETime) unmarshal(s string) error {
} }
t.Subframe = uint(tmp) t.Subframe = uint(tmp)
} else { } else {
tmp, err := strconv.ParseUint(parts[0], 10, 64) tmp, err = strconv.ParseUint(parts[0], 10, 64)
if err != nil { if err != nil {
return err return err
} }
@@ -111,7 +111,7 @@ func (r *RangeSMPTE) unmarshal(start string, end string) error {
if end != "" { if end != "" {
var v RangeSMPTETime var v RangeSMPTETime
err := v.unmarshal(end) err = v.unmarshal(end)
if err != nil { if err != nil {
return err return err
} }
@@ -185,7 +185,7 @@ func (r *RangeNPT) unmarshal(start string, end string) error {
if end != "" { if end != "" {
var v time.Duration var v time.Duration
err := unmarshalRangeNPTTime(&v, end) err = unmarshalRangeNPTTime(&v, end)
if err != nil { if err != nil {
return err return err
} }
@@ -230,7 +230,7 @@ func (r *RangeUTC) unmarshal(start string, end string) error {
if end != "" { if end != "" {
var v time.Time var v time.Time
err := unmarshalRangeUTCTime(&v, end) err = unmarshalRangeUTCTime(&v, end)
if err != nil { if err != nil {
return err return err
} }
@@ -296,7 +296,7 @@ func (h *Range) Unmarshal(v base.HeaderValue) error {
switch k { switch k {
case "smpte": case "smpte":
s := &RangeSMPTE{} s := &RangeSMPTE{}
err := rangeValueUnmarshal(s, v) err = rangeValueUnmarshal(s, v)
if err != nil { if err != nil {
return err return err
} }
@@ -306,7 +306,7 @@ func (h *Range) Unmarshal(v base.HeaderValue) error {
case "npt": case "npt":
s := &RangeNPT{} s := &RangeNPT{}
err := rangeValueUnmarshal(s, v) err = rangeValueUnmarshal(s, v)
if err != nil { if err != nil {
return err return err
} }
@@ -316,7 +316,7 @@ func (h *Range) Unmarshal(v base.HeaderValue) error {
case "clock": case "clock":
s := &RangeUTC{} s := &RangeUTC{}
err := rangeValueUnmarshal(s, v) err = rangeValueUnmarshal(s, v)
if err != nil { if err != nil {
return err return err
} }
@@ -326,7 +326,7 @@ func (h *Range) Unmarshal(v base.HeaderValue) error {
case "time": case "time":
var t time.Time var t time.Time
err := unmarshalRangeUTCTime(&t, v) err = unmarshalRangeUTCTime(&t, v)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -48,7 +48,8 @@ func (h *RTPInfo) Unmarshal(v base.HeaderValue) error {
urlReceived = true urlReceived = true
case "seq": case "seq":
vi, err := strconv.ParseUint(v, 10, 16) var vi uint64
vi, err = strconv.ParseUint(v, 10, 16)
if err != nil { if err != nil {
return err return err
} }
@@ -56,7 +57,8 @@ func (h *RTPInfo) Unmarshal(v base.HeaderValue) error {
e.SequenceNumber = &vi2 e.SequenceNumber = &vi2
case "rtptime": case "rtptime":
vi, err := strconv.ParseUint(v, 10, 32) var vi uint64
vi, err = strconv.ParseUint(v, 10, 32)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -47,7 +47,8 @@ func (h *Session) Unmarshal(v base.HeaderValue) error {
for k, v := range kvs { for k, v := range kvs {
if k == "timeout" { if k == "timeout" {
iv, err := strconv.ParseUint(v, 10, 32) var iv uint64
iv, err = strconv.ParseUint(v, 10, 32)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -32,7 +32,8 @@ func (m *Message) Unmarshal(buf []byte) error {
return fmt.Errorf("unsupported payload type: %d", nextPayloadType) return fmt.Errorf("unsupported payload type: %d", nextPayloadType)
} }
payloadLen, err := payload.unmarshal(buf[n:]) var payloadLen int
payloadLen, err = payload.unmarshal(buf[n:])
if err != nil { if err != nil {
return fmt.Errorf("unable to parse payload %d: %w", nextPayloadType, err) return fmt.Errorf("unable to parse payload %d: %w", nextPayloadType, err)
} }
@@ -80,7 +81,8 @@ func (m *Message) Marshal() ([]byte, error) {
buf[n] = byte(nextPayloadType) buf[n] = byte(nextPayloadType)
n2, err := pl.marshalTo(buf[n:]) var n2 int
n2, err = pl.marshalTo(buf[n:])
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -92,7 +92,8 @@ func NewMultiConn(
writeSocks := make([]int, len(enabledInterfaces)) writeSocks := make([]int, len(enabledInterfaces))
for i, intf := range enabledInterfaces { for i, intf := range enabledInterfaces {
writeSock, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP) var writeSock int
writeSock, err = syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
if err != nil { if err != nil {
for j := 0; j < i; j++ { for j := 0; j < i; j++ {
syscall.Close(writeSocks[j]) //nolint:errcheck syscall.Close(writeSocks[j]) //nolint:errcheck
@@ -111,7 +112,6 @@ func NewMultiConn(
return nil, err return nil, err
} }
var lsa syscall.SockaddrInet4
lsa.Port = addr.Port lsa.Port = addr.Port
copy(lsa.Addr[:], addr.IP.To4()) copy(lsa.Addr[:], addr.IP.To4())
err = syscall.Bind(writeSock, &lsa) err = syscall.Bind(writeSock, &lsa)

View File

@@ -28,10 +28,12 @@ func InterfaceForSource(ip net.IP) (*net.Interface, error) {
continue continue
} }
addrs, err := intf.Addrs() var addrs []net.Addr
addrs, err = intf.Addrs()
if err == nil { if err == nil {
for _, addr := range addrs { for _, addr := range addrs {
_, ipnet, err := net.ParseCIDR(addr.String()) var ipnet *net.IPNet
_, ipnet, err = net.ParseCIDR(addr.String())
if err == nil && ipnet.Contains(ip) { if err == nil && ipnet.Contains(ip) {
return &intf, nil return &intf, nil
} }

View File

@@ -87,7 +87,8 @@ func TestOverflow(t *testing.T) {
require.Equal(t, false, ok) require.Equal(t, false, ok)
for i := 0; i < 32; i++ { for i := 0; i < 32; i++ {
data, ok := r.Pull() var data interface{}
data, ok = r.Pull()
require.Equal(t, true, ok) require.Equal(t, true, ok)
require.Equal(t, []byte{1, 2, 3, 4}, data) require.Equal(t, []byte{1, 2, 3, 4}, data)
} }

View File

@@ -146,7 +146,7 @@ func (s *SessionDescription) unmarshalOrigin(value string) error {
case strings.ContainsAny(tmp, "abcdefABCDEF"): case strings.ContainsAny(tmp, "abcdefABCDEF"):
s.Origin.SessionID, err = strconv.ParseUint(tmp, 16, 64) s.Origin.SessionID, err = strconv.ParseUint(tmp, 16, 64)
default: default:
if i := strings.Index(tmp, "."); i >= 0 { if i = strings.Index(tmp, "."); i >= 0 {
tmp = tmp[:i] tmp = tmp[:i]
} }
tmp = strings.TrimPrefix(tmp, "-") tmp = strings.TrimPrefix(tmp, "-")
@@ -412,7 +412,8 @@ func (s *SessionDescription) unmarshalRepeatTimes(value string) error {
} }
for i := 2; i < len(fields); i++ { for i := 2; i < len(fields); i++ {
offset, err := parseTimeUnits(fields[i]) var offset int64
offset, err = parseTimeUnits(fields[i])
if err != nil { if err != nil {
return fmt.Errorf("%w `%v`", errSDPInvalidValue, fields) return fmt.Errorf("%w `%v`", errSDPInvalidValue, fields)
} }
@@ -453,7 +454,8 @@ func (s *SessionDescription) unmarshalMediaDescription(value string) error {
} }
if len(parts) > 1 { if len(parts) > 1 {
portRange, err := strconv.Atoi(parts[1]) var portRange int
portRange, err = strconv.Atoi(parts[1])
if err != nil { if err != nil {
return fmt.Errorf("%w `%v`", errSDPInvalidValue, parts) return fmt.Errorf("%w `%v`", errSDPInvalidValue, parts)
} }

View File

@@ -415,7 +415,7 @@ func (s *Server) runInner() error {
continue continue
} }
ss := &ServerSession{ ss = &ServerSession{
s: s, s: s,
author: req.sc, author: req.sc,
} }

View File

@@ -85,7 +85,7 @@ func (cr *serverConnReader) readFuncStandard() error {
req := readReq{req: what, res: cres} req := readReq{req: what, res: cres}
cr.chRequest <- req cr.chRequest <- req
err := <-cres err = <-cres
if err != nil { if err != nil {
return err return err
} }
@@ -121,7 +121,7 @@ func (cr *serverConnReader) readFuncTCP() error {
req := readReq{req: what, res: cres} req := readReq{req: what, res: cres}
cr.chRequest <- req cr.chRequest <- req
err := <-cres err = <-cres
if err != nil { if err != nil {
return err return err
} }

View File

@@ -40,7 +40,8 @@ func multicastCapableIP(t *testing.T) string {
for _, intf := range intfs { for _, intf := range intfs {
if (intf.Flags & net.FlagMulticast) != 0 { if (intf.Flags & net.FlagMulticast) != 0 {
addrs, err := intf.Addrs() var addrs []net.Addr
addrs, err = intf.Addrs()
if err != nil { if err != nil {
continue continue
} }
@@ -541,7 +542,8 @@ func TestServerPlaySetupErrorSameUDPPortsAndIP(t *testing.T) {
defer stream.Close() defer stream.Close()
for i := 0; i < 2; i++ { for i := 0; i < 2; i++ {
nconn, err := net.Dial("tcp", "localhost:8554") var nconn net.Conn
nconn, err = net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
conn := conn.NewConn(nconn) conn := conn.NewConn(nconn)
@@ -555,7 +557,8 @@ func TestServerPlaySetupErrorSameUDPPortsAndIP(t *testing.T) {
desc := doDescribe(t, conn, false) desc := doDescribe(t, conn, false)
res, err := writeReqReadRes(conn, base.Request{ var res *base.Response
res, err = writeReqReadRes(conn, base.Request{
Method: base.Setup, Method: base.Setup,
URL: mediaURL(t, desc.BaseURL, desc.Medias[0]), URL: mediaURL(t, desc.BaseURL, desc.Medias[0]),
Header: base.Header{ Header: base.Header{
@@ -1150,7 +1153,8 @@ func TestServerPlaySocketError(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
func() { func() {
nconn, err := net.Dial("tcp", listenIP+":8554") var nconn net.Conn
nconn, err = net.Dial("tcp", listenIP+":8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
@@ -1356,28 +1360,28 @@ func TestServerPlayDecodeErrors(t *testing.T) {
switch { //nolint:dupl switch { //nolint:dupl
case ca.proto == "udp" && ca.name == "rtcp invalid": case ca.proto == "udp" && ca.name == "rtcp invalid":
_, err := l2.WriteTo([]byte{0x01, 0x02}, &net.UDPAddr{ _, err = l2.WriteTo([]byte{0x01, 0x02}, &net.UDPAddr{
IP: net.ParseIP("127.0.0.1"), IP: net.ParseIP("127.0.0.1"),
Port: resTH.ServerPorts[1], Port: resTH.ServerPorts[1],
}) })
require.NoError(t, err) require.NoError(t, err)
case ca.proto == "udp" && ca.name == "rtcp too big": case ca.proto == "udp" && ca.name == "rtcp too big":
_, err := l2.WriteTo(bytes.Repeat([]byte{0x01, 0x02}, 2000/2), &net.UDPAddr{ _, err = l2.WriteTo(bytes.Repeat([]byte{0x01, 0x02}, 2000/2), &net.UDPAddr{
IP: net.ParseIP("127.0.0.1"), IP: net.ParseIP("127.0.0.1"),
Port: resTH.ServerPorts[1], Port: resTH.ServerPorts[1],
}) })
require.NoError(t, err) require.NoError(t, err)
case ca.proto == "tcp" && ca.name == "rtcp invalid": case ca.proto == "tcp" && ca.name == "rtcp invalid":
err := conn.WriteInterleavedFrame(&base.InterleavedFrame{ err = conn.WriteInterleavedFrame(&base.InterleavedFrame{
Channel: 1, Channel: 1,
Payload: []byte{0x01, 0x02}, Payload: []byte{0x01, 0x02},
}, make([]byte, 2048)) }, make([]byte, 2048))
require.NoError(t, err) require.NoError(t, err)
case ca.proto == "tcp" && ca.name == "rtcp too big": case ca.proto == "tcp" && ca.name == "rtcp too big":
err := conn.WriteInterleavedFrame(&base.InterleavedFrame{ err = conn.WriteInterleavedFrame(&base.InterleavedFrame{
Channel: 1, Channel: 1,
Payload: bytes.Repeat([]byte{0x01, 0x02}, 2000/2), Payload: bytes.Repeat([]byte{0x01, 0x02}, 2000/2),
}, make([]byte, 2048)) }, make([]byte, 2048))
@@ -1621,7 +1625,7 @@ func TestServerPlayTCPResponseBeforeFrames(t *testing.T) {
for { for {
select { select {
case <-ti.C: case <-ti.C:
err := stream.WritePacketRTP(stream.Description().Medias[0], &testRTPPacket) err = stream.WritePacketRTP(stream.Description().Medias[0], &testRTPPacket)
require.NoError(t, err) require.NoError(t, err)
case <-writerTerminate: case <-writerTerminate:
return return
@@ -2099,7 +2103,8 @@ func TestServerPlayUDPChangeConn(t *testing.T) {
sxID := "" sxID := ""
func() { func() {
nconn, err := net.Dial("tcp", "localhost:8554") var nconn net.Conn
nconn, err = net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
conn := conn.NewConn(nconn) conn := conn.NewConn(nconn)
@@ -2123,12 +2128,14 @@ func TestServerPlayUDPChangeConn(t *testing.T) {
}() }()
func() { func() {
nconn, err := net.Dial("tcp", "localhost:8554") var nconn net.Conn
nconn, err = net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
conn := conn.NewConn(nconn) conn := conn.NewConn(nconn)
res, err := writeReqReadRes(conn, base.Request{ var res *base.Response
res, err = writeReqReadRes(conn, base.Request{
Method: base.GetParameter, Method: base.GetParameter,
URL: mustParseURL("rtsp://localhost:8554/teststream/"), URL: mustParseURL("rtsp://localhost:8554/teststream/"),
Header: base.Header{ Header: base.Header{
@@ -2467,10 +2474,11 @@ func TestServerPlayNoInterleavedIDs(t *testing.T) {
doPlay(t, conn, "rtsp://localhost:8554/teststream", session) doPlay(t, conn, "rtsp://localhost:8554/teststream", session)
for i := range 2 { for i := range 2 {
err := stream.WritePacketRTP(stream.Description().Medias[i], &testRTPPacket) err = stream.WritePacketRTP(stream.Description().Medias[i], &testRTPPacket)
require.NoError(t, err) require.NoError(t, err)
f, err := conn.ReadInterleavedFrame() var f *base.InterleavedFrame
f, err = conn.ReadInterleavedFrame()
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, i*2, f.Channel) require.Equal(t, i*2, f.Channel)

View File

@@ -646,8 +646,8 @@ func TestServerRecord(t *testing.T) {
ctx.Session.AnnouncedDescription().Medias[i], ctx.Session.AnnouncedDescription().Medias[i],
func(pkt rtcp.Packet) { func(pkt rtcp.Packet) {
require.Equal(t, &testRTCPPacket, pkt) require.Equal(t, &testRTCPPacket, pkt)
err := ctx.Session.WritePacketRTCP(ctx.Session.AnnouncedDescription().Medias[ci], &testRTCPPacket) err2 := ctx.Session.WritePacketRTCP(ctx.Session.AnnouncedDescription().Medias[ci], &testRTCPPacket)
require.NoError(t, err) require.NoError(t, err2)
}) })
} }
@@ -1316,7 +1316,8 @@ func TestServerRecordUDPChangeConn(t *testing.T) {
sxID := "" sxID := ""
func() { func() {
nconn, err := net.Dial("tcp", "localhost:8554") var nconn net.Conn
nconn, err = net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
conn := conn.NewConn(nconn) conn := conn.NewConn(nconn)
@@ -1342,12 +1343,14 @@ func TestServerRecordUDPChangeConn(t *testing.T) {
}() }()
func() { func() {
nconn, err := net.Dial("tcp", "localhost:8554") var nconn net.Conn
nconn, err = net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer nconn.Close() defer nconn.Close()
conn := conn.NewConn(nconn) conn := conn.NewConn(nconn)
res, err := writeReqReadRes(conn, base.Request{ var res *base.Response
res, err = writeReqReadRes(conn, base.Request{
Method: base.GetParameter, Method: base.GetParameter,
URL: mustParseURL("rtsp://localhost:8554/teststream/"), URL: mustParseURL("rtsp://localhost:8554/teststream/"),
Header: base.Header{ Header: base.Header{
@@ -1574,7 +1577,7 @@ func TestServerRecordDecodeErrors(t *testing.T) {
})) }))
case ca.proto == "udp" && ca.name == "rtp too big": case ca.proto == "udp" && ca.name == "rtp too big":
_, err := l1.WriteTo(bytes.Repeat([]byte{0x01, 0x02}, 2000/2), &net.UDPAddr{ _, err = l1.WriteTo(bytes.Repeat([]byte{0x01, 0x02}, 2000/2), &net.UDPAddr{
IP: net.ParseIP("127.0.0.1"), IP: net.ParseIP("127.0.0.1"),
Port: resTH.ServerPorts[0], Port: resTH.ServerPorts[0],
}) })

View File

@@ -170,7 +170,7 @@ func (sf *serverSessionFormat) onPacketRTPLost(lost uint64) {
Session: sf.sm.ss, Session: sf.sm.ss,
Lost: lost, Lost: lost,
}) })
} else if h, ok := sf.sm.ss.s.Handler.(ServerHandlerOnPacketLost); ok { } else if h, ok2 := sf.sm.ss.s.Handler.(ServerHandlerOnPacketLost); ok2 {
h.OnPacketLost(&ServerHandlerOnPacketLostCtx{ h.OnPacketLost(&ServerHandlerOnPacketLostCtx{
Session: sf.sm.ss, Session: sf.sm.ss,
Error: liberrors.ErrServerRTPPacketsLost{Lost: uint(lost)}, //nolint:staticcheck Error: liberrors.ErrServerRTPPacketsLost{Lost: uint(lost)}, //nolint:staticcheck

View File

@@ -121,7 +121,7 @@ func (sf *serverStreamFormat) writePacketRTP(pkt *rtp.Packet, ntp time.Time) err
rsf := rsm.formats[pkt.PayloadType] rsf := rsm.formats[pkt.PayloadType]
if r.setuppedSecure { if r.setuppedSecure {
err := rsf.writePacketRTPEncoded(encr) err = rsf.writePacketRTPEncoded(encr)
if err != nil { if err != nil {
r.onStreamWriteError(err) r.onStreamWriteError(err)
continue continue
@@ -129,7 +129,7 @@ func (sf *serverStreamFormat) writePacketRTP(pkt *rtp.Packet, ntp time.Time) err
atomic.AddUint64(sf.sm.bytesSent, encrLen) atomic.AddUint64(sf.sm.bytesSent, encrLen)
} else { } else {
err := rsf.writePacketRTPEncoded(plain) err = rsf.writePacketRTPEncoded(plain)
if err != nil { if err != nil {
r.onStreamWriteError(err) r.onStreamWriteError(err)
continue continue
@@ -145,14 +145,14 @@ func (sf *serverStreamFormat) writePacketRTP(pkt *rtp.Packet, ntp time.Time) err
// send multicast // send multicast
if sf.sm.multicastWriter != nil { if sf.sm.multicastWriter != nil {
if sf.sm.srtpOutCtx != nil { if sf.sm.srtpOutCtx != nil {
err := sf.sm.multicastWriter.writePacketRTP(encr) err = sf.sm.multicastWriter.writePacketRTP(encr)
if err != nil { if err != nil {
return err return err
} }
atomic.AddUint64(sf.sm.bytesSent, encrLen) atomic.AddUint64(sf.sm.bytesSent, encrLen)
} else { } else {
err := sf.sm.multicastWriter.writePacketRTP(plain) err = sf.sm.multicastWriter.writePacketRTP(plain)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -111,7 +111,7 @@ func (sm *serverStreamMedia) writePacketRTCP(pkt rtcp.Packet) error {
for r := range sm.st.activeUnicastReaders { for r := range sm.st.activeUnicastReaders {
if sm, ok := r.setuppedMedias[sm.media]; ok { if sm, ok := r.setuppedMedias[sm.media]; ok {
if r.setuppedSecure { if r.setuppedSecure {
err := sm.writePacketRTCPEncoded(encr) err = sm.writePacketRTCPEncoded(encr)
if err != nil { if err != nil {
r.onStreamWriteError(err) r.onStreamWriteError(err)
continue continue
@@ -119,7 +119,7 @@ func (sm *serverStreamMedia) writePacketRTCP(pkt rtcp.Packet) error {
atomic.AddUint64(sm.bytesSent, encrLen) atomic.AddUint64(sm.bytesSent, encrLen)
} else { } else {
err := sm.writePacketRTCPEncoded(plain) err = sm.writePacketRTCPEncoded(plain)
if err != nil { if err != nil {
r.onStreamWriteError(err) r.onStreamWriteError(err)
continue continue
@@ -135,14 +135,14 @@ func (sm *serverStreamMedia) writePacketRTCP(pkt rtcp.Packet) error {
// send multicast // send multicast
if sm.multicastWriter != nil { if sm.multicastWriter != nil {
if sm.srtpOutCtx != nil { if sm.srtpOutCtx != nil {
err := sm.multicastWriter.writePacketRTCP(encr) err = sm.multicastWriter.writePacketRTCP(encr)
if err != nil { if err != nil {
return err return err
} }
atomic.AddUint64(sm.bytesSent, encrLen) atomic.AddUint64(sm.bytesSent, encrLen)
} else { } else {
err := sm.multicastWriter.writePacketRTCP(plain) err = sm.multicastWriter.writePacketRTCP(plain)
if err != nil { if err != nil {
return err return err
} }