Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 8, 2025

This PR contains the following updates:

Package Change Age Confidence
github.com/pion/rtp v1.8.25 -> v1.9.0 age confidence
github.com/pion/webrtc/v4 v4.1.6 -> v4.2.1 age confidence

Release Notes

pion/rtp (github.com/pion/rtp)

v1.9.0

Compare Source

Changelog

v1.8.27

Compare Source

Changelog

  • 1577354 Add MarshalTo for zero-allocation extension marshalling (#​344)

v1.8.26

Compare Source

Changelog

  • a2a2f7b Use atomic instead of lock in sequencer
  • 9e1aa3d Add a H264 Spreader
pion/webrtc (github.com/pion/webrtc/v4)

v4.2.1

Compare Source

Changelog

  • a5ce252 Assert no repair after stop
  • 48f7ac7 Check for closed receiver before setting up rid

v4.2.0

Compare Source

We are pleased to announce our final and largest release of 2025. This release includes contributions from 69 contributors.

This release also marks a new era for Pion. Going forward, we will publish releases on a regular schedule.

Major new features

RACK

ICE Renomination

// For advanced use with a custom generator and interval.
se := webrtc.SettingEngine{}

interval := 2 * time.Second
customGen := func() uint32 { return uint32(time.Now().UnixNano()) } // example

if err := se.SetICERenomination(
	webrtc.WithRenominationGenerator(customGen),
	webrtc.WithRenominationInterval(interval),
); err != nil {
	log.Println(err)
}

Cryptex

  • Pion now supports Cryptex, enabling full encryption of RTP headers and header extensions. This work is included in pion/srtp#324 and pion/sdp#213.

FlexFEC

ICEAddressRewriteRule

  • Pion’s NAT 1:1 API is now deprecated. After years of use, it no longer fits modern deployment models. This change is implemented in pion/ice#834 and #​3309.

The new API, SetICEAddressRewriteRules(rules ...ICEAddressRewriteRule) error, rewrites the IP addresses embedded in gathered ICE candidates.

Rule fields (high level):

  • External []string: the address or addresses you want to expose
  • Matchers: Local, CIDR, or Iface
  • Mode: Replace (default) or Append (keep the original and add the rewritten candidate)
  • Optional: AsCandidateType (for example, rewrite as srflx)
se := webrtc.SettingEngine{}

_ = se.SetICEAddressRewriteRules(
	webrtc.ICEAddressRewriteRule{
		Local:    "10.0.0.12",
		External: []string{"203.0.113.10"},
		// Mode omitted, defaults to Replace.
	},
)

api := webrtc.NewAPI(webrtc.WithSettingEngine(se))
// pc, _ := api.NewPeerConnection(...)
// For more advanced use.
se := webrtc.SettingEngine{}

se.SetICEAddressRewriteRules(
	// Allow eth0 (map RFC1918 to public 203.0.113.10)
	webrtc.ICEAddressRewriteRule{
		Iface:    "eth0",
		CIDR:     "10.0.0.0/8",
		External: []string{"203.0.113.10"},
		Mode:     webrtc.ICEAddressRewriteReplace,
	},

	// Allow eth1 (map 192.168/16 to public 198.51.100.20)
	webrtc.ICEAddressRewriteRule{
		Iface:    "eth1",
		CIDR:     "192.168.0.0/16",
		External: []string{"198.51.100.20"},
		Mode:     webrtc.ICEAddressRewriteReplace,
	},

	// Catch-all: drop any other IPv4 host candidates
	webrtc.ICEAddressRewriteRule{
		CIDR:     "0.0.0.0/0",
		Mode:     webrtc.ICEAddressRewriteReplace,
		External: nil, // drop
	},

	// Catch-all: drop any other IPv6 host candidates
	webrtc.ICEAddressRewriteRule{
		CIDR:     "::/0",
		Mode:     webrtc.ICEAddressRewriteReplace,
		External: nil, // drop
	},
)

SVT-AV1

HEVC reader and writer

  • #​3171

    • pkg/media/h265reader parses an H.265/HEVC Annex-B byte stream (start-code delimited) into NAL units you can work with.
    • pkg/media/h265writer takes H.265 RTP payloads (RFC 7798) and writes them back out as an Annex-B bytestream, which is useful for recording and archiving.

New OGG Reader API

  • A series of improvements to oggreader:

    • #​3301 adds OpusTags support via ParseOpusTags, enabling access to artist, title, and vendor comments.
    • #​3299 expands ParseOpusHead to parse Opus channel mappings for multichannel layouts.
    • #​3300 updates oggreader to handle multi-track Ogg by routing pages by serial and introducing NewWithOptions along with richer page and header APIs.
    • #​3302 validates the full flow by streaming single-track and multi-track Ogg with a playlist and metadata over DataChannel control, while audio remains on the RTP track.

More great features

  • Do not discard SEI NALs for H264/H265 — #​3313
  • Use ping-pong buffer for batch conn — pion/transport#363
  • Add CanTrickleICECandidates — #​3283
  • Add nohost gather policy — #​3305
  • Make Allocation/Permission lifetime configurable — pion/turn#495
  • RFC: Add a configurable sized nonce generator — pion/turn#460
  • Add AudioPlayoutStatsProvider interface for getting media-playout stats — #​3234
  • Expose stats ID for use in interceptor factories — #​3249
  • Allow IVFWriter Width/Height to be modified — #​3219
  • Allow IVFWriter Framerate to be modified — #​3220

New Examples

Major bug fixes

Performance improvement

@​3drx @​5ur3 @​aalekseevx @​aankur @​adeithe @​alexhu-oai @​amanakin @​andjcoll @​anshulmalik @​arindamnayak @​arjunshajitech @​asayyah @​astroza @​at-wat @​atoppi @​bajam-genetec @​berkant @​boks1971 @​britblue @​cgojin @​chaturvedishilpa @​chenosaurus @​cmorillas @​cnderrauber @​copilot @​cppcoffee @​debugmenot @​drshrey @​enobufs @​frantabot @​ghost @​hackerman-ru @​hanguyen-nuro @​hexbabe @​jackielii @​jasmoran @​jiajieli-dev @​joeturki @​juliapixel @​kevmo314 @​kmansoft @​lars-sto @​lidian-runner @​lkang-nuro @​mengelbart @​mikeyg42 @​miya-masa @​mrpomidoro @​nils-ohlmeier @​olexandr88 @​penhauer @​philipch07 @​pionbot @​rg0now @​ryanpotat @​sean-der @​setheck @​sirzooro @​sundenis @​sunofcoder @​sxmzou @​theodorsm @​thesyncim @​tmatth @​trs00 @​valorzard @​wrangelvid @​xinze-zheng @​yannismate @​yzhao-nuro

v4.1.8

Compare Source

Changelog

  • 0936b7d Option to check for fingerprint in DTLS handshake
  • 79d7571 Implement deadlines for mux
  • 21a8b0a Update module github.com/pion/stun/v3 to v3.0.2 (#​3293)
  • 62f6101 Do not invoke OnBufferedAmountLow after close

v4.1.7

Compare Source

Changelog


Configuration

📅 Schedule: Branch creation - "before 6am on monday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Contributor Author

renovate bot commented Dec 8, 2025

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 8 additional dependencies were updated

Details:

Package Change
github.com/pion/dtls/v3 v3.0.7 -> v3.0.8
github.com/pion/ice/v4 v4.0.10 -> v4.0.13
github.com/pion/interceptor v0.1.41 -> v0.1.42
github.com/pion/mdns/v2 v2.0.7 -> v2.1.0
github.com/pion/sctp v1.8.40 -> v1.8.41
github.com/pion/srtp/v3 v3.0.8 -> v3.0.9
github.com/pion/stun/v3 v3.0.1 -> v3.0.2
github.com/pion/turn/v4 v4.1.2 -> v4.1.3

@renovate renovate bot force-pushed the renovate/pion-deps branch 2 times, most recently from 4e0b89d to 57d061a Compare December 15, 2025 16:52
@renovate
Copy link
Contributor Author

renovate bot commented Dec 15, 2025

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 9 additional dependencies were updated

Details:

Package Change
github.com/pion/dtls/v3 v3.0.7 -> v3.0.9
github.com/pion/ice/v4 v4.0.10 -> v4.1.0
github.com/pion/interceptor v0.1.41 -> v0.1.42
github.com/pion/mdns/v2 v2.0.7 -> v2.1.0
github.com/pion/sctp v1.8.40 -> v1.9.0
github.com/pion/sdp/v3 v3.0.16 -> v3.0.17
github.com/pion/srtp/v3 v3.0.8 -> v3.0.9
github.com/pion/stun/v3 v3.0.1 -> v3.0.2
github.com/pion/turn/v4 v4.1.2 -> v4.1.3

@renovate renovate bot force-pushed the renovate/pion-deps branch 3 times, most recently from 01413cb to 0c03c77 Compare December 24, 2025 14:12
Generated by renovateBot
@renovate renovate bot force-pushed the renovate/pion-deps branch from 0c03c77 to 69af5c5 Compare December 27, 2025 05:55
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.

1 participant