diff --git a/diskwriter/diskwriter.go b/diskwriter/diskwriter.go index e9a0ab7..39ec2ea 100644 --- a/diskwriter/diskwriter.go +++ b/diskwriter/diskwriter.go @@ -308,6 +308,15 @@ func newDiskConn(client *Client, directory string, up conn.Up, remoteTracks []co tracks: make([]*diskTrack, 0, len(tracks)), remote: up, } + + truePartitionTailChecker := func(p *rtp.Packet) bool { + return true + } + + markerPartitionTailChecker := func(p *rtp.Packet) bool { + return p.Marker + } + for _, remote := range tracks { var builder *samplebuilder.SampleBuilder codec := remote.Codec() @@ -317,6 +326,9 @@ func newDiskConn(client *Client, directory string, up conn.Up, remoteTracks []co samplebuilder.WithPartitionHeadChecker( &codecs.OpusPartitionHeadChecker{}, ), + samplebuilder.WithPartitionTailChecker( + truePartitionTailChecker, + ), ) } else if strings.EqualFold(codec.MimeType, "video/vp8") { builder = samplebuilder.New( @@ -324,6 +336,9 @@ func newDiskConn(client *Client, directory string, up conn.Up, remoteTracks []co samplebuilder.WithPartitionHeadChecker( &codecs.VP8PartitionHeadChecker{}, ), + samplebuilder.WithPartitionTailChecker( + markerPartitionTailChecker, + ), ) conn.hasVideo = true } else if strings.EqualFold(codec.MimeType, "video/vp9") { @@ -332,6 +347,9 @@ func newDiskConn(client *Client, directory string, up conn.Up, remoteTracks []co samplebuilder.WithPartitionHeadChecker( &codecs.VP9PartitionHeadChecker{}, ), + samplebuilder.WithPartitionTailChecker( + markerPartitionTailChecker, + ), ) conn.hasVideo = true } else { diff --git a/go.mod b/go.mod index 7c1c503..56aebcb 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.13 require ( github.com/at-wat/ebml-go v0.16.0 github.com/gorilla/websocket v1.4.2 - github.com/jech/samplebuilder v0.0.0-20210711181036-7fcbcf0988c5 + github.com/jech/samplebuilder v0.0.0-20210711185346-d34c6dd315fb github.com/pion/ice/v2 v2.1.8 github.com/pion/rtcp v1.2.6 github.com/pion/rtp v1.6.6-0.20210512022946-4e87540a7fe6 diff --git a/go.sum b/go.sum index d3b0048..68dd18c 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/jech/samplebuilder v0.0.0-20210711181036-7fcbcf0988c5 h1:ek+KpVz14p6ytAtzMSktZNgtq2Vq6GkIcWiJDv3eP3s= -github.com/jech/samplebuilder v0.0.0-20210711181036-7fcbcf0988c5/go.mod h1:PXhvo7PKy8CVqirCgoNG2BIjwow2Zd6LwCTScabl584= +github.com/jech/samplebuilder v0.0.0-20210711185346-d34c6dd315fb h1:ctDbFqRHUmxTThbYcTP2cdOVOkECsvhNyQKqeEK7RQQ= +github.com/jech/samplebuilder v0.0.0-20210711185346-d34c6dd315fb/go.mod h1:PXhvo7PKy8CVqirCgoNG2BIjwow2Zd6LwCTScabl584= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=