Skip to content

Commit 3a77ebc

Browse files
Remove video/rtx codecs (#294)
We don't actually support handling RTX on a distinct SSRC and declaring these causes Chrome(and maybe others) to not sent retransmissions within the existing RTP stream. This all means that even if we emit NACKs the resulting retransmissions will simply be ignored.
1 parent 0f1c6b5 commit 3a77ebc

File tree

3 files changed

+2
-123
lines changed

3 files changed

+2
-123
lines changed

webrtc/CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Unreleased
44

5-
### Improvements
6-
75
* Added more stats to `RemoteInboundRTPStats` and `RemoteOutboundRTPStats` [#282](https://github.com/webrtc-rs/webrtc/pull/282) by [@k0nserv](https://github.com/k0nserv).
6+
* Don't register `video/rtx` codecs in `MediaEngine::register_default_codecs`. These weren't actually support and prevented RTX in the existing RTP stream from being used. Long term we should support RTX via this method, this is tracked in [#295](https://github.com/webrtc-rs/webrtc/issues/295). [#294 Remove video/rtx codecs](https://github.com/webrtc-rs/webrtc/pull/294) contributed by [k0nserv](https://github.com/k0nserv)
7+
88

99
## 0.5.1
1010

webrtc/src/api/media_engine/mod.rs

Lines changed: 0 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -165,17 +165,6 @@ impl MediaEngine {
165165
payload_type: 96,
166166
..Default::default()
167167
},
168-
RTCRtpCodecParameters {
169-
capability: RTCRtpCodecCapability {
170-
mime_type: "video/rtx".to_owned(),
171-
clock_rate: 90000,
172-
channels: 0,
173-
sdp_fmtp_line: "apt=96".to_owned(),
174-
rtcp_feedback: vec![],
175-
},
176-
payload_type: 97,
177-
..Default::default()
178-
},
179168
RTCRtpCodecParameters {
180169
capability: RTCRtpCodecCapability {
181170
mime_type: MIME_TYPE_VP9.to_owned(),
@@ -187,17 +176,6 @@ impl MediaEngine {
187176
payload_type: 98,
188177
..Default::default()
189178
},
190-
RTCRtpCodecParameters {
191-
capability: RTCRtpCodecCapability {
192-
mime_type: "video/rtx".to_owned(),
193-
clock_rate: 90000,
194-
channels: 0,
195-
sdp_fmtp_line: "apt=98".to_owned(),
196-
rtcp_feedback: vec![],
197-
},
198-
payload_type: 99,
199-
..Default::default()
200-
},
201179
RTCRtpCodecParameters {
202180
capability: RTCRtpCodecCapability {
203181
mime_type: MIME_TYPE_VP9.to_owned(),
@@ -209,17 +187,6 @@ impl MediaEngine {
209187
payload_type: 100,
210188
..Default::default()
211189
},
212-
RTCRtpCodecParameters {
213-
capability: RTCRtpCodecCapability {
214-
mime_type: "video/rtx".to_owned(),
215-
clock_rate: 90000,
216-
channels: 0,
217-
sdp_fmtp_line: "apt=100".to_owned(),
218-
rtcp_feedback: vec![],
219-
},
220-
payload_type: 101,
221-
..Default::default()
222-
},
223190
RTCRtpCodecParameters {
224191
capability: RTCRtpCodecCapability {
225192
mime_type: MIME_TYPE_H264.to_owned(),
@@ -233,17 +200,6 @@ impl MediaEngine {
233200
payload_type: 102,
234201
..Default::default()
235202
},
236-
RTCRtpCodecParameters {
237-
capability: RTCRtpCodecCapability {
238-
mime_type: "video/rtx".to_owned(),
239-
clock_rate: 90000,
240-
channels: 0,
241-
sdp_fmtp_line: "apt=102".to_owned(),
242-
rtcp_feedback: vec![],
243-
},
244-
payload_type: 121,
245-
..Default::default()
246-
},
247203
RTCRtpCodecParameters {
248204
capability: RTCRtpCodecCapability {
249205
mime_type: MIME_TYPE_H264.to_owned(),
@@ -257,17 +213,6 @@ impl MediaEngine {
257213
payload_type: 127,
258214
..Default::default()
259215
},
260-
RTCRtpCodecParameters {
261-
capability: RTCRtpCodecCapability {
262-
mime_type: "video/rtx".to_owned(),
263-
clock_rate: 90000,
264-
channels: 0,
265-
sdp_fmtp_line: "apt=127".to_owned(),
266-
rtcp_feedback: vec![],
267-
},
268-
payload_type: 120,
269-
..Default::default()
270-
},
271216
RTCRtpCodecParameters {
272217
capability: RTCRtpCodecCapability {
273218
mime_type: MIME_TYPE_H264.to_owned(),
@@ -281,17 +226,6 @@ impl MediaEngine {
281226
payload_type: 125,
282227
..Default::default()
283228
},
284-
RTCRtpCodecParameters {
285-
capability: RTCRtpCodecCapability {
286-
mime_type: "video/rtx".to_owned(),
287-
clock_rate: 90000,
288-
channels: 0,
289-
sdp_fmtp_line: "apt=125".to_owned(),
290-
rtcp_feedback: vec![],
291-
},
292-
payload_type: 107,
293-
..Default::default()
294-
},
295229
RTCRtpCodecParameters {
296230
capability: RTCRtpCodecCapability {
297231
mime_type: MIME_TYPE_H264.to_owned(),
@@ -305,17 +239,6 @@ impl MediaEngine {
305239
payload_type: 108,
306240
..Default::default()
307241
},
308-
RTCRtpCodecParameters {
309-
capability: RTCRtpCodecCapability {
310-
mime_type: "video/rtx".to_owned(),
311-
clock_rate: 90000,
312-
channels: 0,
313-
sdp_fmtp_line: "apt=108".to_owned(),
314-
rtcp_feedback: vec![],
315-
},
316-
payload_type: 109,
317-
..Default::default()
318-
},
319242
RTCRtpCodecParameters {
320243
capability: RTCRtpCodecCapability {
321244
mime_type: MIME_TYPE_H264.to_owned(),
@@ -329,17 +252,6 @@ impl MediaEngine {
329252
payload_type: 127,
330253
..Default::default()
331254
},
332-
RTCRtpCodecParameters {
333-
capability: RTCRtpCodecCapability {
334-
mime_type: "video/rtx".to_owned(),
335-
clock_rate: 90000,
336-
channels: 0,
337-
sdp_fmtp_line: "apt=127".to_owned(),
338-
rtcp_feedback: vec![],
339-
},
340-
payload_type: 120,
341-
..Default::default()
342-
},
343255
RTCRtpCodecParameters {
344256
capability: RTCRtpCodecCapability {
345257
mime_type: MIME_TYPE_H264.to_owned(),
@@ -353,17 +265,6 @@ impl MediaEngine {
353265
payload_type: 123,
354266
..Default::default()
355267
},
356-
RTCRtpCodecParameters {
357-
capability: RTCRtpCodecCapability {
358-
mime_type: "video/rtx".to_owned(),
359-
clock_rate: 90000,
360-
channels: 0,
361-
sdp_fmtp_line: "apt=123".to_owned(),
362-
rtcp_feedback: vec![],
363-
},
364-
payload_type: 118,
365-
..Default::default()
366-
},
367268
RTCRtpCodecParameters {
368269
capability: RTCRtpCodecCapability {
369270
mime_type: "video/ulpfec".to_owned(),

webrtc/src/rtp_transceiver/rtp_transceiver_test.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,6 @@ async fn test_rtp_transceiver_set_codec_preferences() -> Result<()> {
102102
payload_type: 96,
103103
..Default::default()
104104
},
105-
RTCRtpCodecParameters {
106-
capability: RTCRtpCodecCapability {
107-
mime_type: "video/rtx".to_string(),
108-
clock_rate: 90000,
109-
channels: 0,
110-
sdp_fmtp_line: "apt=96".to_string(),
111-
rtcp_feedback: vec![],
112-
},
113-
payload_type: 97,
114-
..Default::default()
115-
},
116105
RTCRtpCodecParameters {
117106
capability: RTCRtpCodecCapability {
118107
mime_type: MIME_TYPE_VP9.to_string(),
@@ -124,17 +113,6 @@ async fn test_rtp_transceiver_set_codec_preferences() -> Result<()> {
124113
payload_type: 98,
125114
..Default::default()
126115
},
127-
RTCRtpCodecParameters {
128-
capability: RTCRtpCodecCapability {
129-
mime_type: "video/rtx".to_string(),
130-
clock_rate: 90000,
131-
channels: 0,
132-
sdp_fmtp_line: "apt=98".to_string(),
133-
rtcp_feedback: vec![],
134-
},
135-
payload_type: 99,
136-
..Default::default()
137-
},
138116
],
139117
];
140118

0 commit comments

Comments
 (0)