From 883194a19b7244355c9bc975c0574c9842733637 Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Tue, 18 Aug 2026 13:53:43 +0200 Subject: [PATCH] bump dependencies (#6113) --- go.mod | 10 ++-- go.sum | 20 +++---- internal/protocols/mpegts/to_stream.go | 4 +- internal/recorder/format_fmp4.go | 38 ++++++++----- internal/servers/rtsp/server_test.go | 76 ++++++++++++++------------ 5 files changed, 81 insertions(+), 67 deletions(-) diff --git a/go.mod b/go.mod index 6e00a728..3a677ea3 100644 --- a/go.mod +++ b/go.mod @@ -10,10 +10,10 @@ require ( github.com/abema/go-mp4 v1.7.1 github.com/alecthomas/kong v1.16.1 github.com/asticode/go-astits v1.16.0 - github.com/bluenviron/gohlslib/v2 v2.4.2 - github.com/bluenviron/gortmplib v1.0.1-0.20260813085012-9c63c23d6928 - github.com/bluenviron/gortsplib/v5 v5.6.3 - github.com/bluenviron/mediacommon/v2 v2.9.2 + github.com/bluenviron/gohlslib/v2 v2.4.3 + github.com/bluenviron/gortmplib v1.0.1 + github.com/bluenviron/gortsplib/v5 v5.6.4 + github.com/bluenviron/mediacommon/v2 v2.9.3 github.com/datarhei/gosrt v0.11.1-0.20260812091715-a77b40bb4b76 github.com/fsnotify/fsnotify v1.10.1 github.com/gin-contrib/pprof v1.5.4 @@ -86,7 +86,7 @@ require ( github.com/pion/mdns/v2 v2.1.0 // indirect github.com/pion/randutil v0.1.0 // indirect github.com/pion/sctp v1.11.1 // indirect - github.com/pion/srtp/v3 v3.0.12 // indirect + github.com/pion/srtp/v3 v3.0.13 // indirect github.com/pion/stun/v3 v3.1.6 // indirect github.com/pion/turn/v5 v5.0.12 // indirect github.com/pjbgf/sha1cd v0.6.0 // indirect diff --git a/go.sum b/go.sum index 8820c964..0a675152 100644 --- a/go.sum +++ b/go.sum @@ -33,14 +33,14 @@ github.com/asticode/go-astits v1.16.0 h1:MgyLnG30oRiQsHWQNXA29ZS6i7UNN/OGcPdgH86 github.com/asticode/go-astits v1.16.0/go.mod h1:psImoC1BhcAWIsyM/RnbO1OgUW+XSf8fZpFvF5McDyo= github.com/benburkert/openpgp v0.0.0-20160410205803-c2471f86866c h1:8XZeJrs4+ZYhJeJ2aZxADI2tGADS15AzIF8MQ8XAhT4= github.com/benburkert/openpgp v0.0.0-20160410205803-c2471f86866c/go.mod h1:x1vxHcL/9AVzuk5HOloOEPrtJY0MaalYr78afXZ+pWI= -github.com/bluenviron/gohlslib/v2 v2.4.2 h1:WU3FwwCn8hRIVe4DRBLfX95igUC+qU1bYxQ4+bP5588= -github.com/bluenviron/gohlslib/v2 v2.4.2/go.mod h1:oWuUkEnWqDJ1FpC+i+NXef8/y8DE76IlAzryzhyDqwE= -github.com/bluenviron/gortmplib v1.0.1-0.20260813085012-9c63c23d6928 h1:HFCBYT6R8WRIQfypSbmMoMdPBWJeJfv3l4YUNjqcNCk= -github.com/bluenviron/gortmplib v1.0.1-0.20260813085012-9c63c23d6928/go.mod h1:S/uI6mb4EmyxpZEL8W4AwfrADYeFj+xUl4FjpdTsZEE= -github.com/bluenviron/gortsplib/v5 v5.6.3 h1:OXvHthQZ9fZbLh6r3Go2wuF4XQ4/QW4WTIM2f4bv/W4= -github.com/bluenviron/gortsplib/v5 v5.6.3/go.mod h1:kzHgUtvl8NWNsQ5Vsez6Vuugk6ItFT4ByCPm8J/kbSQ= -github.com/bluenviron/mediacommon/v2 v2.9.2 h1:jvYeBjvhHKFOBRMTMm4hvrSjyOlCelkOkx6708DidQM= -github.com/bluenviron/mediacommon/v2 v2.9.2/go.mod h1:jMf/OJDaJl02xRgkLM2zbidUHnDYqLnO1dMMveCmyyU= +github.com/bluenviron/gohlslib/v2 v2.4.3 h1:ej9Rl+iLoibazinoX8g721CTXp4VYsIVen9q9EIiAzk= +github.com/bluenviron/gohlslib/v2 v2.4.3/go.mod h1:8q/hhKxS0wALwPj7xQptVFbwePTSQc8kqcetaKWyUsk= +github.com/bluenviron/gortmplib v1.0.1 h1:+8DIpYvY6Ewyd159VNPauXV1uk/OU56knCDYDkisIrI= +github.com/bluenviron/gortmplib v1.0.1/go.mod h1:zOFIIBd09RX2WrgF1KdyOFz9la1bZCA5Jt5bEANMkDA= +github.com/bluenviron/gortsplib/v5 v5.6.4 h1:e3h1QMYUlh+c+yLvxqr6kPL/2dCH5Sk18XRm9k4u2zU= +github.com/bluenviron/gortsplib/v5 v5.6.4/go.mod h1:0bjv+O0C5AbH8SqrjvjOX67NNpHtpGBtmMEVMQQ6VXU= +github.com/bluenviron/mediacommon/v2 v2.9.3 h1:cT52JxFnOG2EvI8Imp0sy0NZI773Id+QmY3eOEryR9Y= +github.com/bluenviron/mediacommon/v2 v2.9.3/go.mod h1:QHNpEjVsUnmP2tfYZ+hgQRfvupR1GRBUd2FJqSvC/qo= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= @@ -185,8 +185,8 @@ github.com/pion/sctp v1.11.1 h1:O4dIFyURw1KTST7w+gtD4gLeYXkhPa0xXLHMMoe/OSA= github.com/pion/sctp v1.11.1/go.mod h1:7KFmTwLcoYgJs/Z+99nJvsWL0qDpuyloSI0RbAqlrz0= github.com/pion/sdp/v3 v3.0.19 h1:1VMKs3gIkTQV5M3hNKfTAPrDXSNrYtOlmOD8+mSZUGQ= github.com/pion/sdp/v3 v3.0.19/go.mod h1:dE5WOSlzXrtiE/iuZqe9n+AcEbOjtAd3k5m5NtlV/qU= -github.com/pion/srtp/v3 v3.0.12 h1:U7V17bckl7sI4mb3sepiojByDuBY0wNCqQE+6IlQBbc= -github.com/pion/srtp/v3 v3.0.12/go.mod h1:EeZOi/sd6glM1EXapg051gdNWO9yWT1YSsgQ4SlJkns= +github.com/pion/srtp/v3 v3.0.13 h1:FmQaqgNbN1vUtMhEsmj8trldc3lNZr1xmN7nl8CyX+Q= +github.com/pion/srtp/v3 v3.0.13/go.mod h1:7qR3L69t8RX0EPVQwGNwCa1Gy9keKKNDpWwQzZbeXDY= github.com/pion/stun/v3 v3.1.6 h1:WnhsD0eHCiwCfKNkVx0VJJwr2Y3eV4Ueih3KJ+dfZy8= github.com/pion/stun/v3 v3.1.6/go.mod h1:zRUghXSQU32Lx5orJsz3uYMkIihweXb3mu5gIns02fs= github.com/pion/transport/v3 v3.1.1 h1:Tr684+fnnKlhPceU+ICdrw6KKkTms+5qHMgw6bIkYOM= diff --git a/internal/protocols/mpegts/to_stream.go b/internal/protocols/mpegts/to_stream.go index 434dd17c..5b0bbea1 100644 --- a/internal/protocols/mpegts/to_stream.go +++ b/internal/protocols/mpegts/to_stream.go @@ -82,7 +82,7 @@ func ToStream( }}, } - r.OnDataMPEGxVideo(track, func(pts int64, frame []byte) error { + r.OnDataMPEG4Video(track, func(pts int64, frame []byte) error { pts = td.Decode(pts) (*subStream).WriteUnit(medi, medi.Formats[0], &unit.Unit{ @@ -98,7 +98,7 @@ func ToStream( Formats: []format.Format{&format.MPEG1Video{}}, } - r.OnDataMPEGxVideo(track, func(pts int64, frame []byte) error { + r.OnDataMPEG1Video(track, func(pts int64, frame []byte) error { pts = td.Decode(pts) (*subStream).WriteUnit(medi, medi.Formats[0], &unit.Unit{ diff --git a/internal/recorder/format_fmp4.go b/internal/recorder/format_fmp4.go index e2d65c2e..43b32633 100644 --- a/internal/recorder/format_fmp4.go +++ b/internal/recorder/format_fmp4.go @@ -200,16 +200,18 @@ func (f *formatFMP4) initialize() bool { firstReceived = true } - var sampl fmp4.Sample - err := sampl.FillAV1(u.Payload.(unit.PayloadAV1)) + payload, err := av1.Bitstream(u.Payload.(unit.PayloadAV1)).Marshal() if err != nil { return err } return track.write(&formatFMP4Sample{ - Sample: &sampl, - dts: u.PTS, - ntp: u.NTP, + Sample: &fmp4.Sample{ + IsNonSyncSample: !randomAccess, + Payload: payload, + }, + dts: u.PTS, + ntp: u.NTP, }) }) @@ -373,16 +375,19 @@ func (f *formatFMP4) initialize() bool { return err } - var sampl fmp4.Sample - err = sampl.FillH265(int32(u.PTS-dts), u.Payload.(unit.PayloadH265)) + payload, err := h264.AVCC(u.Payload.(unit.PayloadH265)).Marshal() if err != nil { return err } return track.write(&formatFMP4Sample{ - Sample: &sampl, - dts: dts, - ntp: u.NTP, + Sample: &fmp4.Sample{ + PTSOffset: int32(u.PTS - dts), + IsNonSyncSample: !randomAccess, + Payload: payload, + }, + dts: dts, + ntp: u.NTP, }) }) @@ -453,16 +458,19 @@ func (f *formatFMP4) initialize() bool { return err } - var sampl fmp4.Sample - err = sampl.FillH264(int32(u.PTS-dts), u.Payload.(unit.PayloadH264)) + payload, err := h264.AVCC(u.Payload.(unit.PayloadH264)).Marshal() if err != nil { return err } return track.write(&formatFMP4Sample{ - Sample: &sampl, - dts: dts, - ntp: u.NTP, + Sample: &fmp4.Sample{ + PTSOffset: int32(u.PTS - dts), + IsNonSyncSample: !randomAccess, + Payload: payload, + }, + dts: dts, + ntp: u.NTP, }) }) diff --git a/internal/servers/rtsp/server_test.go b/internal/servers/rtsp/server_test.go index 1001ec1c..9d835369 100644 --- a/internal/servers/rtsp/server_test.go +++ b/internal/servers/rtsp/server_test.go @@ -234,22 +234,26 @@ func TestServerPublish(t *testing.T) { require.Equal(t, &defs.APIRTSPSessionList{ Items: []defs.APIRTSPSession{ { - ID: list.Items[0].ID, - Created: list.Items[0].Created, - RemoteAddr: list.Items[0].RemoteAddr, - State: "publish", - Path: "teststream", - Query: "param=value", - User: "myuser", - UserAgent: list.Items[0].UserAgent, - InboundBytes: list.Items[0].InboundBytes, - InboundRTPPackets: list.Items[0].InboundRTPPackets, - OutboundBytes: list.Items[0].OutboundBytes, - BytesReceived: list.Items[0].BytesReceived, - BytesSent: list.Items[0].BytesSent, - Conns: list.Items[0].Conns, - RTPPacketsReceived: list.Items[0].RTPPacketsReceived, - Transport: new("TCP"), + ID: list.Items[0].ID, + Created: list.Items[0].Created, + RemoteAddr: list.Items[0].RemoteAddr, + State: "publish", + Path: "teststream", + Query: "param=value", + User: "myuser", + UserAgent: list.Items[0].UserAgent, + InboundBytes: list.Items[0].InboundBytes, + InboundRTPPackets: list.Items[0].InboundRTPPackets, + InboundRTCPPackets: list.Items[0].InboundRTCPPackets, + InboundRTCPPacketsInError: list.Items[0].InboundRTCPPacketsInError, + OutboundBytes: list.Items[0].OutboundBytes, + BytesReceived: list.Items[0].BytesReceived, + BytesSent: list.Items[0].BytesSent, + Conns: list.Items[0].Conns, + RTPPacketsReceived: list.Items[0].RTPPacketsReceived, + RTCPPacketsReceived: list.Items[0].RTCPPacketsReceived, + RTCPPacketsInError: list.Items[0].RTCPPacketsInError, + Transport: new("TCP"), Profile: func() *string { if encrypt == "tls" { return new("SAVP") @@ -563,25 +567,27 @@ func TestServerRead(t *testing.T) { require.Equal(t, &defs.APIRTSPSessionList{ Items: []defs.APIRTSPSession{ { - ID: list.Items[0].ID, - Created: list.Items[0].Created, - RemoteAddr: list.Items[0].RemoteAddr, - State: "read", - Path: "teststream", - Query: "param=value", - User: "myuser", - UserAgent: list.Items[0].UserAgent, - InboundBytes: list.Items[0].InboundBytes, - InboundRTPPackets: list.Items[0].InboundRTPPackets, - OutboundBytes: list.Items[0].OutboundBytes, - OutboundRTPPackets: list.Items[0].OutboundRTPPackets, - BytesReceived: list.Items[0].BytesReceived, - BytesSent: list.Items[0].BytesSent, - Conns: list.Items[0].Conns, - RTPPacketsReceived: list.Items[0].RTPPacketsReceived, - RTPPacketsSent: list.Items[0].RTPPacketsSent, - Transport: new("TCP"), - Profile: new("AVP"), + ID: list.Items[0].ID, + Created: list.Items[0].Created, + RemoteAddr: list.Items[0].RemoteAddr, + State: "read", + Path: "teststream", + Query: "param=value", + User: "myuser", + UserAgent: list.Items[0].UserAgent, + InboundBytes: list.Items[0].InboundBytes, + InboundRTPPackets: list.Items[0].InboundRTPPackets, + OutboundBytes: list.Items[0].OutboundBytes, + OutboundRTPPackets: list.Items[0].OutboundRTPPackets, + OutboundRTCPPackets: list.Items[0].OutboundRTCPPackets, + BytesReceived: list.Items[0].BytesReceived, + BytesSent: list.Items[0].BytesSent, + Conns: list.Items[0].Conns, + RTPPacketsReceived: list.Items[0].RTPPacketsReceived, + RTPPacketsSent: list.Items[0].RTPPacketsSent, + RTCPPacketsSent: list.Items[0].RTCPPacketsSent, + Transport: new("TCP"), + Profile: new("AVP"), }, }, }, list)