diff --git a/.golangci.yml b/.golangci.yml index 33a993a4..1ac50f4c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -68,4 +68,3 @@ linters-settings: disable: - fieldalignment - reflectvaluecompare - - shadow diff --git a/internal/auth/manager.go b/internal/auth/manager.go index c58dcebb..f43f5188 100644 --- a/internal/auth/manager.go +++ b/internal/auth/manager.go @@ -275,13 +275,13 @@ func (m *Manager) authenticateJWT(req *Request) error { return fmt.Errorf("JWT not provided") } - var customClaims customClaims - _, err = jwt.ParseWithClaims(v["jwt"][0], &customClaims, keyfunc) + var cc customClaims + _, err = jwt.ParseWithClaims(v["jwt"][0], &cc, keyfunc) if err != nil { return err } - if !matchesPermission(customClaims.MediaMTXPermissions, req) { + if !matchesPermission(cc.MediaMTXPermissions, req) { return fmt.Errorf("user doesn't have permission to perform action") } diff --git a/internal/auth/manager_test.go b/internal/auth/manager_test.go index 14498cb5..764605e5 100644 --- a/internal/auth/manager_test.go +++ b/internal/auth/manager_test.go @@ -309,8 +309,8 @@ func TestAuthJWT(t *testing.T) { httpServ := &http.Server{ Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - response, err := jwkSet.JSONPublic(r.Context()) - if err != nil { + response, err2 := jwkSet.JSONPublic(r.Context()) + if err2 != nil { w.WriteHeader(http.StatusInternalServerError) return } diff --git a/internal/core/api_test.go b/internal/core/api_test.go index 829f956d..33cf0a3d 100644 --- a/internal/core/api_test.go +++ b/internal/core/api_test.go @@ -506,7 +506,7 @@ func TestAPIProtocolListGet(t *testing.T) { go func() { time.Sleep(500 * time.Millisecond) - err := source.WritePacketRTP(medi, &rtp.Packet{ + err2 := source.WritePacketRTP(medi, &rtp.Packet{ Header: rtp.Header{ Version: 2, Marker: true, @@ -517,7 +517,7 @@ func TestAPIProtocolListGet(t *testing.T) { }, Payload: []byte{5, 1, 2, 3, 4}, }) - require.NoError(t, err) + require.NoError(t, err2) }() c := &webrtc.WHIPClient{ diff --git a/internal/core/core.go b/internal/core/core.go index a749cf19..f7476f84 100644 --- a/internal/core/core.go +++ b/internal/core/core.go @@ -305,7 +305,7 @@ func (p *Core) createResources(initial bool) error { AuthManager: p.authManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -325,7 +325,7 @@ func (p *Core) createResources(initial bool) error { AuthManager: p.authManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -356,7 +356,7 @@ func (p *Core) createResources(initial bool) error { AuthManager: p.authManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -415,7 +415,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -455,7 +455,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -486,7 +486,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -517,7 +517,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -549,7 +549,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -583,7 +583,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -610,7 +610,7 @@ func (p *Core) createResources(initial bool) error { PathManager: p.pathManager, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } @@ -643,7 +643,7 @@ func (p *Core) createResources(initial bool) error { SRTServer: p.srtServer, Parent: p, } - err := i.Initialize() + err = i.Initialize() if err != nil { return err } diff --git a/internal/core/metrics_test.go b/internal/core/metrics_test.go index 5cb09c94..5237e57c 100644 --- a/internal/core/metrics_test.go +++ b/internal/core/metrics_test.go @@ -169,10 +169,10 @@ webrtc_sessions_bytes_sent 0 tr := &http.Transport{} defer tr.CloseIdleConnections() - hc := &http.Client{Transport: tr} + hc2 := &http.Client{Transport: tr} s := &webrtc.WHIPClient{ - HTTPClient: hc, + HTTPClient: hc2, URL: su, Log: test.NilLogger, } diff --git a/internal/core/path_test.go b/internal/core/path_test.go index 0b21759c..90e31900 100644 --- a/internal/core/path_test.go +++ b/internal/core/path_test.go @@ -425,7 +425,7 @@ func TestPathRunOnRead(t *testing.T) { case <-writerTerminate: return } - err := source.WritePacketRTP(media0, &rtp.Packet{ + err2 := source.WritePacketRTP(media0, &rtp.Packet{ Header: rtp.Header{ Version: 2, Marker: true, @@ -436,7 +436,7 @@ func TestPathRunOnRead(t *testing.T) { }, Payload: []byte{5}, }) - require.NoError(t, err) + require.NoError(t, err2) i++ } }() @@ -525,7 +525,7 @@ func TestPathRecord(t *testing.T) { defer source.Close() for i := 0; i < 4; i++ { - err := source.WritePacketRTP(media0, &rtp.Packet{ + err = source.WritePacketRTP(media0, &rtp.Packet{ Header: rtp.Header{ Version: 2, Marker: true, @@ -562,7 +562,7 @@ func TestPathRecord(t *testing.T) { time.Sleep(500 * time.Millisecond) for i := 4; i < 8; i++ { - err := source.WritePacketRTP(media0, &rtp.Packet{ + err = source.WritePacketRTP(media0, &rtp.Packet{ Header: rtp.Header{ Version: 2, Marker: true, @@ -761,7 +761,7 @@ func TestPathOverridePublisher(t *testing.T) { require.NoError(t, err) if ca == "enabled" { - err := s1.Wait() + err = s1.Wait() require.EqualError(t, err, "EOF") err = s2.WritePacketRTP(medi, &rtp.Packet{ diff --git a/internal/formatprocessor/h264.go b/internal/formatprocessor/h264.go index 7f0f11af..0d5cf289 100644 --- a/internal/formatprocessor/h264.go +++ b/internal/formatprocessor/h264.go @@ -30,7 +30,7 @@ func rtpH264ExtractParams(payload []byte) ([]byte, []byte) { return nil, payload case h264.NALUTypeSTAPA: - payload := payload[1:] + payload = payload[1:] var sps []byte var pps []byte diff --git a/internal/formatprocessor/h265.go b/internal/formatprocessor/h265.go index e04cafe4..eaa336d1 100644 --- a/internal/formatprocessor/h265.go +++ b/internal/formatprocessor/h265.go @@ -33,7 +33,7 @@ func rtpH265ExtractParams(payload []byte) ([]byte, []byte, []byte) { return nil, nil, payload case h265.NALUType_AggregationUnit: - payload := payload[2:] + payload = payload[2:] var vps []byte var sps []byte var pps []byte diff --git a/internal/playback/mp4/presentation.go b/internal/playback/mp4/presentation.go index fa01b6b3..0f12bfe5 100644 --- a/internal/playback/mp4/presentation.go +++ b/internal/playback/mp4/presentation.go @@ -134,7 +134,8 @@ func (p *Presentation) marshalFtypAndMoov(w io.Writer) error { stcosOffsets := make([]int, len(p.Tracks)) for i, track := range p.Tracks { - res, err := track.marshal(mw) + var res *headerTrackMarshalResult + res, err = track.marshal(mw) if err != nil { return err } diff --git a/internal/playback/mp4/track.go b/internal/playback/mp4/track.go index 07dff1f8..d21743e4 100644 --- a/internal/playback/mp4/track.go +++ b/internal/playback/mp4/track.go @@ -354,7 +354,8 @@ func (t *Track) marshal(w *mp4Writer) (*headerTrackMarshalResult, error) { return nil, err } - bs, err := av1.BitstreamMarshal([][]byte{codec.SequenceHeader}) + var bs []byte + bs, err = av1.BitstreamMarshal([][]byte{codec.SequenceHeader}) if err != nil { return nil, err } diff --git a/internal/playback/on_get.go b/internal/playback/on_get.go index dca27721..7b793227 100644 --- a/internal/playback/on_get.go +++ b/internal/playback/on_get.go @@ -73,13 +73,14 @@ func seekAndMux( segmentEnd = start.Add(segmentMaxElapsed) for _, seg := range segments[1:] { - f, err := os.Open(seg.Fpath) + f, err = os.Open(seg.Fpath) if err != nil { return err } defer f.Close() - init, err := segmentFMP4ReadInit(f) + var init *fmp4.Init + init, err = segmentFMP4ReadInit(f) if err != nil { return err } @@ -90,7 +91,8 @@ func seekAndMux( segmentStartOffset := seg.Start.Sub(start) - segmentMaxElapsed, err := segmentFMP4MuxParts(f, segmentStartOffset, duration, firstInit, m) + var segmentMaxElapsed time.Duration + segmentMaxElapsed, err = segmentFMP4MuxParts(f, segmentStartOffset, duration, firstInit, m) if err != nil { return err } diff --git a/internal/playback/segment_fmp4.go b/internal/playback/segment_fmp4.go index 6a612ab8..e1619f8f 100644 --- a/internal/playback/segment_fmp4.go +++ b/internal/playback/segment_fmp4.go @@ -159,7 +159,8 @@ func segmentFMP4ReadMaxDuration( lastMoofPos := int64(-1) for { - moofPos, err := r.Seek(0, io.SeekCurrent) + var moofPos int64 + moofPos, err = r.Seek(0, io.SeekCurrent) if err != nil { return 0, err } @@ -423,9 +424,9 @@ func segmentFMP4SeekAndMuxParts( e.SampleSize, func() ([]byte, error) { payload := make([]byte, sampleSize) - n, err := r.ReadAt(payload, int64(sampleOffset)) - if err != nil { - return nil, err + n, err2 := r.ReadAt(payload, int64(sampleOffset)) + if err2 != nil { + return nil, err2 } if n != int(sampleSize) { return nil, fmt.Errorf("partial read") @@ -547,9 +548,9 @@ func segmentFMP4MuxParts( e.SampleSize, func() ([]byte, error) { payload := make([]byte, sampleSize) - n, err := r.ReadAt(payload, int64(sampleOffset)) - if err != nil { - return nil, err + n, err2 := r.ReadAt(payload, int64(sampleOffset)) + if err2 != nil { + return nil, err2 } if n != int(sampleSize) { return nil, fmt.Errorf("partial read") diff --git a/internal/playback/segment_fmp4_test.go b/internal/playback/segment_fmp4_test.go index e93d5f67..178af562 100644 --- a/internal/playback/segment_fmp4_test.go +++ b/internal/playback/segment_fmp4_test.go @@ -60,7 +60,7 @@ func BenchmarkFMP4ReadInit(b *testing.B) { for n := 0; n < b.N; n++ { func() { - f, err := os.Open(f.Name()) + f, err = os.Open(f.Name()) if err != nil { panic(err) } diff --git a/internal/protocols/rtmp/chunk/chunk0.go b/internal/protocols/rtmp/chunk/chunk0.go index f0e0323d..e9eea678 100644 --- a/internal/protocols/rtmp/chunk/chunk0.go +++ b/internal/protocols/rtmp/chunk/chunk0.go @@ -32,7 +32,7 @@ func (c *Chunk0) Read(r io.Reader, maxBodyLen uint32, _ bool) error { c.MessageStreamID = uint32(header[8])<<24 | uint32(header[9])<<16 | uint32(header[10])<<8 | uint32(header[11]) if c.Timestamp >= 0xFFFFFF { - _, err := io.ReadFull(r, header[:4]) + _, err = io.ReadFull(r, header[:4]) if err != nil { return err } diff --git a/internal/protocols/rtmp/chunk/chunk3.go b/internal/protocols/rtmp/chunk/chunk3.go index ea953b53..38f3269f 100644 --- a/internal/protocols/rtmp/chunk/chunk3.go +++ b/internal/protocols/rtmp/chunk/chunk3.go @@ -26,7 +26,7 @@ func (c *Chunk3) Read(r io.Reader, bodyLen uint32, hasExtendedTimestamp bool) er c.ChunkStreamID = header[0] & 0x3F if hasExtendedTimestamp { - _, err := io.ReadFull(r, header[:4]) + _, err = io.ReadFull(r, header[:4]) if err != nil { return err } diff --git a/internal/protocols/rtmp/conn.go b/internal/protocols/rtmp/conn.go index c9c25f65..8a0222c3 100644 --- a/internal/protocols/rtmp/conn.go +++ b/internal/protocols/rtmp/conn.go @@ -342,7 +342,6 @@ func (c *Conn) initializeServer() (*url.URL, bool, error) { var rw io.ReadWriter if keyIn != nil { - var err error rw, err = newRC4ReadWriter(c.bc, keyIn, keyOut) if err != nil { return nil, false, err diff --git a/internal/protocols/rtmp/conn_test.go b/internal/protocols/rtmp/conn_test.go index 28ab6d47..3b632c82 100644 --- a/internal/protocols/rtmp/conn_test.go +++ b/internal/protocols/rtmp/conn_test.go @@ -28,37 +28,37 @@ func TestNewClientConn(t *testing.T) { done := make(chan struct{}) go func() { - conn, err := ln.Accept() - require.NoError(t, err) + conn, err2 := ln.Accept() + require.NoError(t, err2) defer conn.Close() bc := bytecounter.NewReadWriter(conn) - _, _, err = handshake.DoServer(bc, false) - require.NoError(t, err) + _, _, err2 = handshake.DoServer(bc, false) + require.NoError(t, err2) mrw := message.NewReadWriter(bc, bc, true) - msg, err := mrw.Read() - require.NoError(t, err) + msg, err2 := mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.SetWindowAckSize{ Value: 2500000, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.SetPeerBandwidth{ Value: 2500000, Type: 2, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.SetChunkSize{ Value: 65536, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 3, Name: "connect", @@ -77,7 +77,7 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - err = mrw.Write(&message.CommandAMF0{ + err2 = mrw.Write(&message.CommandAMF0{ ChunkStreamID: 3, Name: "_result", CommandID: 1, @@ -94,12 +94,12 @@ func TestNewClientConn(t *testing.T) { }, }, }) - require.NoError(t, err) + require.NoError(t, err2) switch ca { case "read", "read nginx rtmp": - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 3, Name: "createStream", @@ -109,7 +109,7 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - err = mrw.Write(&message.CommandAMF0{ + err2 = mrw.Write(&message.CommandAMF0{ ChunkStreamID: 3, Name: "_result", CommandID: 2, @@ -118,16 +118,16 @@ func TestNewClientConn(t *testing.T) { float64(1), }, }) - require.NoError(t, err) + require.NoError(t, err2) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.UserControlSetBufferLength{ BufferLength: 0x64, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 4, MessageStreamID: 0x1000000, @@ -139,7 +139,7 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - err = mrw.Write(&message.CommandAMF0{ + err2 = mrw.Write(&message.CommandAMF0{ ChunkStreamID: 5, MessageStreamID: 0x1000000, Name: "onStatus", @@ -158,11 +158,11 @@ func TestNewClientConn(t *testing.T) { }, }, }) - require.NoError(t, err) + require.NoError(t, err2) case "publish": - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 3, Name: "releaseStream", @@ -173,8 +173,8 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 3, Name: "FCPublish", @@ -185,8 +185,8 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 3, Name: "createStream", @@ -196,7 +196,7 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - err = mrw.Write(&message.CommandAMF0{ + err2 = mrw.Write(&message.CommandAMF0{ ChunkStreamID: 3, Name: "_result", CommandID: 4, @@ -205,10 +205,10 @@ func TestNewClientConn(t *testing.T) { float64(1), }, }) - require.NoError(t, err) + require.NoError(t, err2) - msg, err = mrw.Read() - require.NoError(t, err) + msg, err2 = mrw.Read() + require.NoError(t, err2) require.Equal(t, &message.CommandAMF0{ ChunkStreamID: 4, MessageStreamID: 0x1000000, @@ -221,7 +221,7 @@ func TestNewClientConn(t *testing.T) { }, }, msg) - err = mrw.Write(&message.CommandAMF0{ + err2 = mrw.Write(&message.CommandAMF0{ ChunkStreamID: 5, MessageStreamID: 0x1000000, Name: "onStatus", @@ -235,7 +235,7 @@ func TestNewClientConn(t *testing.T) { }, }, }) - require.NoError(t, err) + require.NoError(t, err2) } close(done) @@ -280,12 +280,12 @@ func TestNewServerConn(t *testing.T) { done := make(chan struct{}) go func() { - nconn, err := ln.Accept() - require.NoError(t, err) + nconn, err2 := ln.Accept() + require.NoError(t, err2) defer nconn.Close() - _, u, isPublishing, err := NewServerConn(nconn) - require.NoError(t, err) + _, u, isPublishing, err2 := NewServerConn(nconn) + require.NoError(t, err2) require.Equal(t, &url.URL{ Scheme: "rtmp", diff --git a/internal/protocols/rtmp/reader.go b/internal/protocols/rtmp/reader.go index 99bc79ba..e881b6e2 100644 --- a/internal/protocols/rtmp/reader.go +++ b/internal/protocols/rtmp/reader.go @@ -47,8 +47,8 @@ func hasVideo(md amf0.Object) (bool, error) { v, ok := md.Get("videocodecid") if !ok { // some Dahua cameras send width and height without videocodecid - if v, ok := md.Get("width"); ok { - if vf, ok := v.(float64); ok && vf != 0 { + if v2, ok := md.Get("width"); ok { + if vf, ok := v2.(float64); ok && vf != 0 { return true, nil } } @@ -219,7 +219,8 @@ func tracksFromMetadata(conn *Conn, payload []interface{}) (format.Format, forma // format used by OBS < 29.1 to publish H265 } else if msg.Type == message.VideoTypeAU && msg.IsKeyFrame { - nalus, err := h264.AVCCUnmarshal(msg.Payload) + var nalus [][]byte + nalus, err = h264.AVCCUnmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { continue @@ -271,7 +272,7 @@ func tracksFromMetadata(conn *Conn, payload []interface{}) (format.Format, forma switch msg.FourCC { case message.FourCCHEVC: var hvcc mp4.HvcC - _, err := mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &hvcc, mp4.Context{}) + _, err = mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &hvcc, mp4.Context{}) if err != nil { return nil, nil, fmt.Errorf("invalid H265 configuration: %w", err) } @@ -292,7 +293,7 @@ func tracksFromMetadata(conn *Conn, payload []interface{}) (format.Format, forma case message.FourCCAV1: var av1c mp4.Av1C - _, err := mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &av1c, mp4.Context{}) + _, err = mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &av1c, mp4.Context{}) if err != nil { return nil, nil, fmt.Errorf("invalid AV1 configuration: %w", err) } @@ -309,7 +310,7 @@ func tracksFromMetadata(conn *Conn, payload []interface{}) (format.Format, forma default: // VP9 var vpcc mp4.VpcC - _, err := mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &vpcc, mp4.Context{}) + _, err = mp4.Unmarshal(bytes.NewReader(msg.Config), uint64(len(msg.Config)), &vpcc, mp4.Context{}) if err != nil { return nil, nil, fmt.Errorf("invalid VP9 configuration: %w", err) } diff --git a/internal/protocols/rtmp/reader_test.go b/internal/protocols/rtmp/reader_test.go index 0853ea3a..052eeb19 100644 --- a/internal/protocols/rtmp/reader_test.go +++ b/internal/protocols/rtmp/reader_test.go @@ -147,12 +147,12 @@ func TestReadTracks(t *testing.T) { IsStereo: true, AACType: message.AudioAACTypeConfig, Payload: func() []byte { - enc, err := mpeg4audio.Config{ + enc, err2 := mpeg4audio.Config{ Type: 2, SampleRate: 44100, ChannelCount: 2, }.Marshal() - require.NoError(t, err) + require.NoError(t, err2) return enc }(), }, @@ -267,12 +267,12 @@ func TestReadTracks(t *testing.T) { IsStereo: true, AACType: message.AudioAACTypeConfig, Payload: func() []byte { - enc, err := mpeg4audio.Config{ + enc, err2 := mpeg4audio.Config{ Type: 2, SampleRate: 44100, ChannelCount: 2, }.Marshal() - require.NoError(t, err) + require.NoError(t, err2) return enc }(), }, @@ -302,12 +302,12 @@ func TestReadTracks(t *testing.T) { IsStereo: true, AACType: message.AudioAACTypeConfig, Payload: func() []byte { - enc, err := mpeg4audio.Config{ + enc, err2 := mpeg4audio.Config{ Type: 2, SampleRate: 44100, ChannelCount: 2, }.Marshal() - require.NoError(t, err) + require.NoError(t, err2) return enc }(), }, @@ -320,12 +320,12 @@ func TestReadTracks(t *testing.T) { IsStereo: true, AACType: message.AudioAACTypeConfig, Payload: func() []byte { - enc, err := mpeg4audio.Config{ + enc, err2 := mpeg4audio.Config{ Type: 2, SampleRate: 44100, ChannelCount: 2, }.Marshal() - require.NoError(t, err) + require.NoError(t, err2) return enc }(), DTS: 1 * time.Second, @@ -385,12 +385,12 @@ func TestReadTracks(t *testing.T) { IsKeyFrame: true, Type: message.VideoTypeAU, Payload: func() []byte { - avcc, err := h264.AVCCMarshal([][]byte{ + avcc, err2 := h264.AVCCMarshal([][]byte{ test.FormatH265.VPS, test.FormatH265.SPS, test.FormatH265.PPS, }) - require.NoError(t, err) + require.NoError(t, err2) return avcc }(), }, @@ -403,12 +403,12 @@ func TestReadTracks(t *testing.T) { IsStereo: true, AACType: message.AudioAACTypeConfig, Payload: func() []byte { - enc, err := mpeg4audio.Config{ + enc, err2 := mpeg4audio.Config{ Type: 2, SampleRate: 44100, ChannelCount: 2, }.Marshal() - require.NoError(t, err) + require.NoError(t, err2) return enc }(), }, diff --git a/internal/protocols/webrtc/whip_client.go b/internal/protocols/webrtc/whip_client.go index 04bc5757..9c9e6a64 100644 --- a/internal/protocols/webrtc/whip_client.go +++ b/internal/protocols/webrtc/whip_client.go @@ -191,7 +191,7 @@ outer: for { select { case ca := <-c.pc.NewLocalCandidate(): - err := c.patchCandidate(ctx, offer, res.ETag, ca) + err = c.patchCandidate(ctx, offer, res.ETag, ca) if err != nil { c.deleteSession(context.Background()) //nolint:errcheck c.pc.Close() diff --git a/internal/record/agent_test.go b/internal/record/agent_test.go index 29d2710e..0f2a18c6 100644 --- a/internal/record/agent_test.go +++ b/internal/record/agent_test.go @@ -189,13 +189,13 @@ func TestAgent(t *testing.T) { if ca == "fmp4" { func() { - f, err := os.Open(filepath.Join(dir, "mypath", "2008-05-20_22-15-25-000000."+ext)) - require.NoError(t, err) + f, err2 := os.Open(filepath.Join(dir, "mypath", "2008-05-20_22-15-25-000000."+ext)) + require.NoError(t, err2) defer f.Close() var init fmp4.Init - err = init.Unmarshal(f) - require.NoError(t, err) + err2 = init.Unmarshal(f) + require.NoError(t, err2) require.Equal(t, fmp4.Init{ Tracks: []*fmp4.InitTrack{ @@ -252,7 +252,7 @@ func TestAgent(t *testing.T) { _, err = os.Stat(filepath.Join(dir, "mypath", "2008-05-20_22-16-25-000000."+ext)) require.NoError(t, err) } else { - _, err := os.Stat(filepath.Join(dir, "mypath", "2008-05-20_22-15-25-000000."+ext)) + _, err = os.Stat(filepath.Join(dir, "mypath", "2008-05-20_22-15-25-000000."+ext)) require.NoError(t, err) _, err = os.Stat(filepath.Join(dir, "mypath", "2008-05-20_22-16-25-000000."+ext)) diff --git a/internal/servers/rtsp/session.go b/internal/servers/rtsp/session.go index bc705ba8..69a31c3a 100644 --- a/internal/servers/rtsp/session.go +++ b/internal/servers/rtsp/session.go @@ -212,8 +212,8 @@ func (s *session) onSetup(c *conn, ctx *gortsplib.ServerHandlerOnSetupCtx, if err != nil { var terr auth.Error if errors.As(err, &terr) { - res, err := c.handleAuthError(terr) - return res, nil, err + res, err2 := c.handleAuthError(terr) + return res, nil, err2 } var terr2 defs.PathNoOnePublishingError diff --git a/internal/servers/srt/streamid_test.go b/internal/servers/srt/streamid_test.go index 30c3a4c6..a1757bcb 100644 --- a/internal/servers/srt/streamid_test.go +++ b/internal/servers/srt/streamid_test.go @@ -52,10 +52,10 @@ func TestStreamIDUnmarshal(t *testing.T) { }, } { t.Run(ca.name, func(t *testing.T) { - var streamID streamID - err := streamID.unmarshal(ca.raw) + var sid streamID + err := sid.unmarshal(ca.raw) require.NoError(t, err) - require.Equal(t, ca.dec, streamID) + require.Equal(t, ca.dec, sid) }) } } diff --git a/internal/staticsources/rtsp/source_test.go b/internal/staticsources/rtsp/source_test.go index 6741d0fd..51e863c2 100644 --- a/internal/staticsources/rtsp/source_test.go +++ b/internal/staticsources/rtsp/source_test.go @@ -55,8 +55,8 @@ func TestSource(t *testing.T) { Handler: &testServer{ onDescribe: func(ctx *gortsplib.ServerHandlerOnDescribeCtx, ) (*base.Response, *gortsplib.ServerStream, error) { - err := auth.Validate(ctx.Request, "testuser", "testpass", nil, nil, "IPCAM", nonce) - if err != nil { + err2 := auth.Validate(ctx.Request, "testuser", "testpass", nil, nil, "IPCAM", nonce) + if err2 != nil { return &base.Response{ //nolint:nilerr StatusCode: base.StatusUnauthorized, Header: base.Header{ @@ -77,7 +77,7 @@ func TestSource(t *testing.T) { onPlay: func(_ *gortsplib.ServerHandlerOnPlayCtx) (*base.Response, error) { go func() { time.Sleep(100 * time.Millisecond) - err := stream.WritePacketRTP(media0, &rtp.Packet{ + err2 := stream.WritePacketRTP(media0, &rtp.Packet{ Header: rtp.Header{ Version: 0x02, PayloadType: 96, @@ -88,7 +88,7 @@ func TestSource(t *testing.T) { }, Payload: []byte{5, 1, 2, 3, 4}, }) - require.NoError(t, err) + require.NoError(t, err2) }() return &base.Response{ @@ -105,15 +105,18 @@ func TestSource(t *testing.T) { s.UDPRTCPAddress = "127.0.0.1:8003" case "tls": - serverCertFpath, err := test.CreateTempFile(test.TLSCertPub) + var serverCertFpath string + serverCertFpath, err = test.CreateTempFile(test.TLSCertPub) require.NoError(t, err) defer os.Remove(serverCertFpath) - serverKeyFpath, err := test.CreateTempFile(test.TLSCertKey) + var serverKeyFpath string + serverKeyFpath, err = test.CreateTempFile(test.TLSCertKey) require.NoError(t, err) defer os.Remove(serverKeyFpath) - cert, err := tls.LoadX509KeyPair(serverCertFpath, serverKeyFpath) + var cert tls.Certificate + cert, err = tls.LoadX509KeyPair(serverCertFpath, serverKeyFpath) require.NoError(t, err) s.TLSConfig = &tls.Config{Certificates: []tls.Certificate{cert}} @@ -181,8 +184,8 @@ func TestRTSPSourceNoPassword(t *testing.T) { s := gortsplib.Server{ Handler: &testServer{ onDescribe: func(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*base.Response, *gortsplib.ServerStream, error) { - err := auth.Validate(ctx.Request, "testuser", "", nil, nil, "IPCAM", nonce) - if err != nil { + err2 := auth.Validate(ctx.Request, "testuser", "", nil, nil, "IPCAM", nonce) + if err2 != nil { return &base.Response{ //nolint:nilerr StatusCode: base.StatusUnauthorized, Header: base.Header{ @@ -198,7 +201,7 @@ func TestRTSPSourceNoPassword(t *testing.T) { onSetup: func(_ *gortsplib.ServerHandlerOnSetupCtx) (*base.Response, *gortsplib.ServerStream, error) { go func() { time.Sleep(100 * time.Millisecond) - err := stream.WritePacketRTP(media0, &rtp.Packet{ + err2 := stream.WritePacketRTP(media0, &rtp.Packet{ Header: rtp.Header{ Version: 0x02, PayloadType: 96, @@ -209,7 +212,7 @@ func TestRTSPSourceNoPassword(t *testing.T) { }, Payload: []byte{5, 1, 2, 3, 4}, }) - require.NoError(t, err) + require.NoError(t, err2) }() return &base.Response{ diff --git a/internal/staticsources/udp/source.go b/internal/staticsources/udp/source.go index 0c449f6c..1202b2f1 100644 --- a/internal/staticsources/udp/source.go +++ b/internal/staticsources/udp/source.go @@ -74,7 +74,8 @@ func (s *Source) Run(params defs.StaticSourceRunParams) error { return err } } else { - tmp, err := net.ListenPacket(restrictnetwork.Restrict("udp", addr.String())) + var tmp net.PacketConn + tmp, err = net.ListenPacket(restrictnetwork.Restrict("udp", addr.String())) if err != nil { return err } diff --git a/internal/staticsources/webrtc/source_test.go b/internal/staticsources/webrtc/source_test.go index e8bf85ac..7e061707 100644 --- a/internal/staticsources/webrtc/source_test.go +++ b/internal/staticsources/webrtc/source_test.go @@ -69,12 +69,12 @@ func TestSource(t *testing.T) { require.Equal(t, "/my/resource", r.URL.Path) require.Equal(t, "application/sdp", r.Header.Get("Content-Type")) - body, err := io.ReadAll(r.Body) - require.NoError(t, err) + body, err2 := io.ReadAll(r.Body) + require.NoError(t, err2) offer := whipOffer(body) - answer, err := pc.CreateFullAnswer(context.Background(), offer) - require.NoError(t, err) + answer, err2 := pc.CreateFullAnswer(context.Background(), offer) + require.NoError(t, err2) w.Header().Set("Content-Type", "application/sdp") w.Header().Set("Accept-Patch", "application/trickle-ice-sdpfrag") @@ -84,10 +84,10 @@ func TestSource(t *testing.T) { w.Write([]byte(answer.SDP)) go func() { - err = pc.WaitUntilConnected(context.Background()) - require.NoError(t, err) + err3 := pc.WaitUntilConnected(context.Background()) + require.NoError(t, err3) - err = tracks[0].WriteRTP(&rtp.Packet{ + err3 = tracks[0].WriteRTP(&rtp.Packet{ Header: rtp.Header{ Version: 2, Marker: true, @@ -98,7 +98,7 @@ func TestSource(t *testing.T) { }, Payload: []byte{5, 2}, }) - require.NoError(t, err) + require.NoError(t, err3) }() default: