Skip to content

Commit ade6a87

Browse files
Prevent loss of initial packet(s) in RTP streams (#387)
The method by which we detected non-signaled SSRCs would silently drop a few packets. This is particularly problematic for a video stream since these initial packets usually contain the first part of a keyframe to start the stream.
1 parent 4cd47d1 commit ade6a87

File tree

6 files changed

+245
-225
lines changed

6 files changed

+245
-225
lines changed

webrtc/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
* Added support for insecure/deprecated signature verification algorithms, opt in via `SettingsEngine::allow_insecure_verification_algorithm` [#342](https://github.com/webrtc-rs/webrtc/pull/342).
66
* Make RTCRtpCodecCapability::payloader_for_codec public API [#349](https://github.com/webrtc-rs/webrtc/pull/349).
77
* Fixed a panic in `calculate_rtt_ms` [#350](https://github.com/webrtc-rs/webrtc/pull/350).
8+
* Fixed `TrackRemote` missing at least the first, sometimes more, RTP packet during probing. [#387](https://github.com/webrtc-rs/webrtc/pull/387)
9+
810
### Breaking changes
911

1012
* Change `RTCPeerConnection::on_track` callback signature to `|track: Arc<TrackRemote>, receiver: Arc<RTCRtpReceiver>, transceiver: Arc<RTCRtpTransceiver>|` [#355](https://github.com/webrtc-rs/webrtc/pull/355).

webrtc/src/dtls_transport/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -582,10 +582,10 @@ impl RTCDtlsTransport {
582582
stream_info: &StreamInfo,
583583
interceptor: &Arc<dyn Interceptor + Send + Sync>,
584584
) -> Result<(
585-
Option<Arc<srtp::stream::Stream>>,
586-
Option<Arc<dyn RTPReader + Send + Sync>>,
587-
Option<Arc<srtp::stream::Stream>>,
588-
Option<Arc<dyn RTCPReader + Send + Sync>>,
585+
Arc<srtp::stream::Stream>,
586+
Arc<dyn RTPReader + Send + Sync>,
587+
Arc<srtp::stream::Stream>,
588+
Arc<dyn RTCPReader + Send + Sync>,
589589
)> {
590590
let srtp_session = self
591591
.get_srtp_session()
@@ -608,10 +608,10 @@ impl RTCDtlsTransport {
608608
let rtcp_interceptor = interceptor.bind_rtcp_reader(rtcp_stream_reader).await;
609609

610610
Ok((
611-
Some(rtp_read_stream),
612-
Some(rtp_interceptor),
613-
Some(rtcp_read_stream),
614-
Some(rtcp_interceptor),
611+
rtp_read_stream,
612+
rtp_interceptor,
613+
rtcp_read_stream,
614+
rtcp_interceptor,
615615
))
616616
}
617617
}

0 commit comments

Comments
 (0)