Skip to content

Conversation

@robfig
Copy link

@robfig robfig commented Oct 30, 2024

Rebase our patches on the latest upstream.

@cptpcrd had added these two patches:

  1. Add missing bounds checks. Upstream had a fix for this issue, so I skipped this one

  2. Fixing parsing of G bit - Applied cleanly

Commits added:

  • Update CI configs to v0.8.1
  • Fix parsing of VP8 packets with degenerate header
  • Update CI configs to v0.9.0
  • Update CI configs to v0.10.2
  • Update CI configs to v0.10.3
  • Fix multiple crashes when using VP9 depacketizer
  • Fix compatibility with gofmt
  • Fix errShortPacket with H264 EOS NALUs
  • Cleanup common sections in README
  • Update AUTHORS.txt
  • Harmonize sections in README
  • Update CI configs to v0.10.7
  • Make repo REUSE compliant
  • Fix golangci-lint warnings
  • Update CI configs to v0.10.8
  • Update CI configs to v0.10.9
  • Revert to 4e87540 (last commit before v2)
  • Update CI configs to v0.5.4
  • Make VP8 PictureID optional
  • Update CI configs to v0.5.6
  • Add Z bit to VP9 unmarshaller
  • Update CI configs to v0.5.9
  • Implement a H265/HEVC packet decoder
  • Make MTU a uint16
  • Pack SPS and PPS in one STAP-A packet
  • Implement partition head in Depacketizer
  • Fix unmarshal of packets with padding
  • Update CI configs to v0.6.0
  • Add PaddingSize to rtp.Packet
  • Update CI configs to v0.6.2
  • Replace <= with == since mtu cannot be negative
  • Update CI configs to v0.6.4
  • Adds zero-copy header extensions
  • Add IsPartitionHead and IsPartitionTail to H265
  • Update CI configs to v0.6.6
  • Update CI configs to v0.6.7
  • Update CI configs to v0.6.8
  • Remove pointer from constant functions
  • Add AV1 Support
  • Fix AV1 /v2 imports
  • Move AV1 Frame to new frame pkg
  • Add bounds check to AV1 Frame
  • Update CI configs to v0.7.0
  • Update CI configs to v0.7.1
  • Update CI configs to v0.7.2
  • Update CI configs to v0.6.9
  • Set CSRC as a empty (not nil) slice by default
  • Add experimental header extensions
  • Fix multiple crashes when using VP9 depacketizer
  • Fix parsing of VP8 packets with degenerate header
  • Fix compatibility with gofmt
  • Fix errShortPacket with H264 EOS NALUs
  • Cleanup common sections in README
  • Update AUTHORS.txt
  • Harmonize sections in README
  • Update CI configs to v0.10.7
  • Make repo REUSE compliant
  • Fix golangci-lint warnings
  • Update CI configs to v0.10.8
  • Update CI configs to v0.10.9
  • Sync asset files with .goassets
  • Minimize changes
  • Implement packet clone method
  • Fix Packet.Raw population
  • Bump Go version
  • Fix API breakage on Header.Unmarshal
  • Update AUTHORS.txt
  • Update AUTHORS.txt
  • Add non-breaking version of Remove unused ClockRate parameter pion/rtp#160
  • Readd non-breaking version of Refactor Packet struct to match RFC format pion/rtp#119
  • Update AV1 Payloader to work with libwebrtc
  • Replace symlinked license file with copy to fix godoc
  • Fix race condition in Packet.MarshalTo()
  • Update CI configs to v0.10.11
  • Move pkg into codecs/av1
  • Optimize the performance of H264 packaging
  • Remove redundant state in H264 Packetization
  • Combine OneByte and TwoByte extension parsing
  • Remove 'Generate Authors' workflow
  • Update CI configs to v0.11.0
  • Update CI configs to v0.11.3
  • Add VLA extention header parser
  • Fix a bug in AbsCpatureTimeExtension
  • Fix broken link in README.md
  • Add static RTP PayloadTypes as a constant
  • Add padding support to Packetizer
  • Update CI configs to v0.11.4
  • Fix out of range access in VP8 Unmarshal
  • Update CI configs to v0.11.7
  • Update CI configs to v0.11.12
  • Convert H264Packet.doPackaging to append style
  • Add SetZeroAllocation
  • Add ZeroAllocation support to AV1Packet
  • Add tests for SetZeroAllocation
  • Fix VP9 decoding on iOS
  • Fix RTP padding length validation
  • Add an index check to prevent out of index
  • Add test case for broken second nalu in STAP-A
  • Fix rare SRTP loss decode failure
  • Update CI configs to v0.11.15
  • Update go.mod version to 1.20
  • Fix parsing of G bit in VP9 scalability structure

Redi Kim and others added 6 commits August 2, 2024 09:39
As described in https://webrtc-review.googlesource.com/c/src/+/358360
there can be a problem when the sequence number starts near the
rollover point and there is packet loss. As linked to in that issue,
libsrtp recommends having the starting sequence number be less than
2^15 to avoid that problem.
Update lint scripts and CI configs.
Previously it would erroneously look at some of the reserved fields.
@robfig robfig requested review from cptpcrd and kcaffrey October 30, 2024 15:12
@kcaffrey
Copy link

I would rather push to get @cptpcrd's fixes upstream and get off our fork.

I have also been holding off on upgrading pion libraries recently since:

  • there is a decent amount of churn occurring in SFU related items
  • on more than one occasion in the past, updated pion has caused subtle breakages that take a while to track down
  • trying to track down such breakages when a lot of other things are in flux is a bit difficult
  • I've been monitoring the changes that go through to see if there is anything important for us to pick up, and so far there hasn't been
  • pion v4 is out, but I'm waiting for the inevitable flood of bugs that get reported and fixed before we consider upgrading

Is there a particular motivation for you to update now?

@robfig
Copy link
Author

robfig commented Oct 30, 2024

livekit/sip depends on a constant in pion/rtp which was introduced in a newer revision.

I thought pion/rtp would be low risk since it's largely operating on specified data structures.

I could also copy in the constant it needs

@robfig
Copy link
Author

robfig commented Oct 30, 2024

Alternative: #2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants