diff --git a/go.mod b/go.mod index 830e498e28a..8c7db108204 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/alecthomas/kong v1.7.0 github.com/asticode/go-astits v1.13.0 github.com/bluenviron/gohlslib/v2 v2.1.3 - github.com/bluenviron/gortsplib/v4 v4.12.2 - github.com/bluenviron/mediacommon v1.13.4 + github.com/bluenviron/gortsplib/v4 v4.12.3 + github.com/bluenviron/mediacommon v1.14.0 github.com/datarhei/gosrt v0.8.0 github.com/fsnotify/fsnotify v1.8.0 github.com/gin-contrib/pprof v1.5.2 diff --git a/go.sum b/go.sum index abcb1824992..d2d9cf95f55 100644 --- a/go.sum +++ b/go.sum @@ -33,10 +33,10 @@ github.com/benburkert/openpgp v0.0.0-20160410205803-c2471f86866c h1:8XZeJrs4+ZYh github.com/benburkert/openpgp v0.0.0-20160410205803-c2471f86866c/go.mod h1:x1vxHcL/9AVzuk5HOloOEPrtJY0MaalYr78afXZ+pWI= github.com/bluenviron/gohlslib/v2 v2.1.3 h1:pysG7F76uCdjSVApwaOjKhiugGab/4t9wZOUKFn5s64= github.com/bluenviron/gohlslib/v2 v2.1.3/go.mod h1:l99DjPGFms1XR3cxSZ+BIdFgMjJ5cFt/2Z/h+rrdIYQ= -github.com/bluenviron/gortsplib/v4 v4.12.2 h1:ZCiveyk8gumqyVGdliUmfaTJFOSt0JoqsPJ/Ly3gOXI= -github.com/bluenviron/gortsplib/v4 v4.12.2/go.mod h1:QCUYd9eiD44ISFGvgUSbGgJjgjpalYb0SlsHzJ/h0FQ= -github.com/bluenviron/mediacommon v1.13.4 h1:SkMeGHxKDBxBjxjRFVhQKUj11CApLq6QpTJGBR8PfDY= -github.com/bluenviron/mediacommon v1.13.4/go.mod h1:z5LP9Tm1ZNfQV5Co54PyOzaIhGMusDfRKmh42nQSnyo= +github.com/bluenviron/gortsplib/v4 v4.12.3 h1:3EzbyGb5+MIOJQYiWytRegFEP4EW5paiyTrscQj63WE= +github.com/bluenviron/gortsplib/v4 v4.12.3/go.mod h1:SkZPdaMNr+IvHt2PKRjUXxZN6FDutmSZn4eT0GmF0sk= +github.com/bluenviron/mediacommon v1.14.0 h1:lWCwOBKNKgqmspRpwpvvg3CidYm+XOc2+z/Jw7LM5dQ= +github.com/bluenviron/mediacommon v1.14.0/go.mod h1:z5LP9Tm1ZNfQV5Co54PyOzaIhGMusDfRKmh42nQSnyo= github.com/bytedance/sonic v1.12.6 h1:/isNmCUF2x3Sh8RAp/4mh4ZGkcFAX/hLrzrK3AvpRzk= github.com/bytedance/sonic v1.12.6/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= diff --git a/internal/protocols/rtmp/reader.go b/internal/protocols/rtmp/reader.go index 250ee64ebb4..0d6762bd84a 100644 --- a/internal/protocols/rtmp/reader.go +++ b/internal/protocols/rtmp/reader.go @@ -579,7 +579,8 @@ func (r *Reader) OnDataH265(track *format.H265, cb OnDataH26xFunc) { r.onVideoData[r.videoTrackID(track)] = func(msg message.Message) error { switch msg := msg.(type) { case *message.VideoExFramesX: - au, err := h264.AVCCUnmarshal(msg.Payload) + var au h264.AVCC + err := au.Unmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { return nil @@ -590,7 +591,8 @@ func (r *Reader) OnDataH265(track *format.H265, cb OnDataH26xFunc) { cb(msg.DTS, au) case *message.VideoExCodedFrames: - au, err := h264.AVCCUnmarshal(msg.Payload) + var au h264.AVCC + err := au.Unmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { return nil @@ -625,7 +627,8 @@ func (r *Reader) OnDataH264(track *format.H264, cb OnDataH26xFunc) { cb(msg.DTS+msg.PTSDelta, au) case message.VideoTypeAU: - au, err := h264.AVCCUnmarshal(msg.Payload) + var au h264.AVCC + err := au.Unmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { return nil @@ -639,7 +642,8 @@ func (r *Reader) OnDataH264(track *format.H264, cb OnDataH26xFunc) { return nil case *message.VideoExFramesX: - au, err := h264.AVCCUnmarshal(msg.Payload) + var au h264.AVCC + err := au.Unmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { return nil @@ -650,7 +654,8 @@ func (r *Reader) OnDataH264(track *format.H264, cb OnDataH26xFunc) { cb(msg.DTS, au) case *message.VideoExCodedFrames: - au, err := h264.AVCCUnmarshal(msg.Payload) + var au h264.AVCC + err := au.Unmarshal(msg.Payload) if err != nil { if errors.Is(err, h264.ErrAVCCNoNALUs) { return nil diff --git a/internal/protocols/rtmp/writer.go b/internal/protocols/rtmp/writer.go index 575d0d11de2..9b6942fd80e 100644 --- a/internal/protocols/rtmp/writer.go +++ b/internal/protocols/rtmp/writer.go @@ -167,7 +167,7 @@ func (w *Writer) writeTracks(videoTrack format.Format, audioTrack format.Format) // WriteH264 writes H264 data. func (w *Writer) WriteH264(pts time.Duration, dts time.Duration, au [][]byte) error { - avcc, err := h264.AVCCMarshal(au) + avcc, err := h264.AVCC(au).Marshal() if err != nil { return err } diff --git a/internal/recorder/format_fmp4.go b/internal/recorder/format_fmp4.go index b58e2ddaba9..ae7adef191b 100644 --- a/internal/recorder/format_fmp4.go +++ b/internal/recorder/format_fmp4.go @@ -183,9 +183,7 @@ func (f *formatFMP4) initialize() bool { firstReceived = true } - sampl, err := fmp4.NewPartSampleAV1( - randomAccess, - tunit.TU) + sampl, err := fmp4.NewPartSampleAV12(tunit.TU) if err != nil { return err } @@ -346,9 +344,8 @@ func (f *formatFMP4) initialize() bool { return err } - sampl, err := fmp4.NewPartSampleH26x( + sampl, err := fmp4.NewPartSampleH265( int32(tunit.PTS-dts), - randomAccess, tunit.AU) if err != nil { return err @@ -421,9 +418,8 @@ func (f *formatFMP4) initialize() bool { return err } - sampl, err := fmp4.NewPartSampleH26x( + sampl, err := fmp4.NewPartSampleH264( int32(tunit.PTS-dts), - randomAccess, tunit.AU) if err != nil { return err