rtmp: fix compatibility issue with some DJI drones (#2375) (#2409)

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

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)
}