rtmp: fix compatibility issue with some DJI drones () ()

This commit is contained in:
Alessandro Ros 2023-09-27 14:38:07 +02:00 committed by GitHub
parent 9044e88c9d
commit d7d96230ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 3 deletions

2
go.mod
View File

@ -9,7 +9,7 @@ require (
github.com/aler9/writerseeker v1.1.0
github.com/bluenviron/gohlslib v1.0.3
github.com/bluenviron/gortsplib/v4 v4.2.0
github.com/bluenviron/mediacommon v1.4.0
github.com/bluenviron/mediacommon v1.4.1-0.20230924203439-7ac007e2ac2d
github.com/datarhei/gosrt v0.5.4
github.com/fsnotify/fsnotify v1.6.0
github.com/gin-gonic/gin v1.9.1

4
go.sum
View File

@ -16,8 +16,8 @@ github.com/bluenviron/gohlslib v1.0.3 h1:FMHevlIrrZ67uzCXmlTSGflsfYREEtHb8L9BDyf
github.com/bluenviron/gohlslib v1.0.3/go.mod h1:R/aIsSxLI61N0CVMjtcHqJouK6+Ddd5YIihcCr7IFIw=
github.com/bluenviron/gortsplib/v4 v4.2.0 h1:EbIMqkFxFo/iG5Hkld+Flew9R8ORKnuxlgUyFdpd5Rk=
github.com/bluenviron/gortsplib/v4 v4.2.0/go.mod h1:wz9d4Tn2qS/mexc+BnvNeWzlNOpyaHzNK6SXxtg4mfM=
github.com/bluenviron/mediacommon v1.4.0 h1:nPQIxAJQPlKBTPWZJZbP646XytPr7EJ63afwdHiPNLM=
github.com/bluenviron/mediacommon v1.4.0/go.mod h1:/vlOVSebDwzdRtQONOKLua0fOSJg1tUDHpP+h9a0uqM=
github.com/bluenviron/mediacommon v1.4.1-0.20230924203439-7ac007e2ac2d h1:VbzIg0t5HKfyLbuzWeNU64JdOtTUp981Fx9ljdMRGpM=
github.com/bluenviron/mediacommon v1.4.1-0.20230924203439-7ac007e2ac2d/go.mod h1:/vlOVSebDwzdRtQONOKLua0fOSJg1tUDHpP+h9a0uqM=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=

View File

@ -189,6 +189,9 @@ func tracksFromMetadata(conn *Conn, payload []interface{}) (format.Format, forma
} else if tmsg.Type == message.VideoTypeAU && tmsg.IsKeyFrame {
nalus, err := h264.AVCCUnmarshal(tmsg.Payload)
if err != nil {
if err == h264.ErrAVCCNoNALUs {
continue
}
return nil, nil, err
}
@ -477,6 +480,9 @@ func (r *Reader) OnDataH265(cb OnDataH26xFunc) {
case *message.Video:
au, err := h264.AVCCUnmarshal(msg.Payload)
if err != nil {
if err == h264.ErrAVCCNoNALUs {
return nil
}
return fmt.Errorf("unable to decode AVCC: %v", err)
}
@ -485,6 +491,9 @@ func (r *Reader) OnDataH265(cb OnDataH26xFunc) {
case *message.ExtendedFramesX:
au, err := h264.AVCCUnmarshal(msg.Payload)
if err != nil {
if err == h264.ErrAVCCNoNALUs {
return nil
}
return fmt.Errorf("unable to decode AVCC: %v", err)
}
@ -493,6 +502,9 @@ func (r *Reader) OnDataH265(cb OnDataH26xFunc) {
case *message.ExtendedCodedFrames:
au, err := h264.AVCCUnmarshal(msg.Payload)
if err != nil {
if err == h264.ErrAVCCNoNALUs {
return nil
}
return fmt.Errorf("unable to decode AVCC: %v", err)
}
@ -525,6 +537,9 @@ func (r *Reader) OnDataH264(cb OnDataH26xFunc) {
case message.VideoTypeAU:
au, err := h264.AVCCUnmarshal(msg.Payload)
if err != nil {
if err == h264.ErrAVCCNoNALUs {
return nil
}
return fmt.Errorf("unable to decode AVCC: %v", err)
}