Release ExtPacket if dependency descriptor or other parsing fails (#4141)

This commit is contained in:
Raja Subramanian
2025-12-10 11:05:19 +05:30
committed by GitHub
parent 35b0e2bc21
commit dd598ef23f

View File

@@ -955,6 +955,7 @@ func (b *Buffer) getExtPacket(rtpPacket *rtp.Packet, arrivalTime int64, isBuffer
b.createFrameRateCalculator()
}
} else {
b.ReleaseExtPacket(ep)
return nil
}
} else if ddVal != nil {
@@ -970,6 +971,7 @@ func (b *Buffer) getExtPacket(rtpPacket *rtp.Packet, arrivalTime int64, isBuffer
vp8Packet := VP8{}
if err := vp8Packet.Unmarshal(rtpPacket.Payload); err != nil {
b.logger.Warnw("could not unmarshal VP8 packet", err)
b.ReleaseExtPacket(ep)
return nil
}
ep.KeyFrame = vp8Packet.IsKeyFrame
@@ -994,6 +996,7 @@ func (b *Buffer) getExtPacket(rtpPacket *rtp.Packet, arrivalTime int64, isBuffer
_, err := vp9Packet.Unmarshal(rtpPacket.Payload)
if err != nil {
b.logger.Warnw("could not unmarshal VP9 packet", err)
b.ReleaseExtPacket(ep)
return nil
}
ep.VideoLayer = VideoLayer{
@@ -1034,6 +1037,7 @@ func (b *Buffer) getExtPacket(rtpPacket *rtp.Packet, arrivalTime int64, isBuffer
if ep.DependencyDescriptor == nil {
if len(rtpPacket.Payload) < 2 {
b.logger.Warnw("invalid H265 packet", nil)
b.ReleaseExtPacket(ep)
return nil
}
ep.VideoLayer = VideoLayer{