mirror of
https://github.com/pion/webrtc.git
synced 2026-04-22 15:07:23 +08:00
Parse rtp extension from padding only empty packet
This commit is contained in:
committed by
arjun shaji
parent
ae0a731cbb
commit
f857501780
+3
-5
@@ -432,12 +432,10 @@ func handleUnknownRTPPacket(
|
||||
return mid, rid, rsid, false, err
|
||||
}
|
||||
|
||||
if rp.Padding && len(rp.Payload) == 0 {
|
||||
return mid, rid, rsid, true, nil
|
||||
}
|
||||
isPaddingOnlyPacket := rp.Padding && len(rp.Payload) == 0
|
||||
|
||||
if !rp.Header.Extension {
|
||||
return mid, rid, rsid, false, nil
|
||||
return mid, rid, rsid, isPaddingOnlyPacket, nil
|
||||
}
|
||||
|
||||
if payload := rp.GetExtension(midExtensionID); payload != nil {
|
||||
@@ -452,5 +450,5 @@ func handleUnknownRTPPacket(
|
||||
rsid = string(payload)
|
||||
}
|
||||
|
||||
return mid, rid, rsid, false, nil
|
||||
return mid, rid, rsid, isPaddingOnlyPacket, nil
|
||||
}
|
||||
|
||||
@@ -273,3 +273,35 @@ func Test_RTPTransceiver_UnattachedRTX(t *testing.T) {
|
||||
|
||||
closePairNow(t, offerPC, answerPC)
|
||||
}
|
||||
|
||||
func Test_ParseExtensionFromPaddingOnlyPacket(t *testing.T) {
|
||||
buf := []byte{
|
||||
176, 114, 15, 39, 0, 0, 0, 0, 209, 108, 221, 2, 190,
|
||||
222, 0, 2, 64, 49, 176, 102, 49, 0, 1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255,
|
||||
}
|
||||
mid, rid, rsid, paddingOnly, err := handleUnknownRTPPacket(
|
||||
buf, uint8(4),
|
||||
uint8(10),
|
||||
uint8(11),
|
||||
)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, mid, "1")
|
||||
assert.Equal(t, rid, "")
|
||||
assert.Equal(t, rsid, "f")
|
||||
assert.Equal(t, paddingOnly, true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user