Consider first packet when reading Simulcast IDs (#3144)

The code currently ignores the first packet when reading Simulcast IDs
from a new SSRC, and probes only subsequent packets. This commit makes
it so that we consider the first packet as well (which we already have
read). Helps if the publisher only sends Simulcast IDs on the first
packet.
This commit is contained in:
Kostya Vasilyev
2025-11-17 18:11:03 -08:00
committed by GitHub
parent 17287fd0f0
commit e7e3b36fce
3 changed files with 128 additions and 7 deletions

View File

@@ -428,10 +428,10 @@ func handleUnknownRTPPacket(
streamIDExtensionID,
repairStreamIDExtensionID uint8,
mid, rid, rsid *string,
) (payloadType PayloadType, paddingOnly bool, err error) {
) (paddingOnly bool, err error) {
rp := &rtp.Packet{}
if err = rp.Unmarshal(buf); err != nil {
return 0, false, err
return false, err
}
if rp.Padding && len(rp.Payload) == 0 {
@@ -439,10 +439,9 @@ func handleUnknownRTPPacket(
}
if !rp.Header.Extension {
return payloadType, paddingOnly, nil
return paddingOnly, nil
}
payloadType = PayloadType(rp.PayloadType)
if payload := rp.GetExtension(midExtensionID); payload != nil {
*mid = string(payload)
}
@@ -455,5 +454,5 @@ func handleUnknownRTPPacket(
*rsid = string(payload)
}
return payloadType, paddingOnly, nil
return paddingOnly, nil
}