Skip to content

Commit dfea375

Browse files
committed
Rename PacketizingBuffer -> Payloader
1 parent 056b7c2 commit dfea375

File tree

9 files changed

+121
-214
lines changed

9 files changed

+121
-214
lines changed

TODO.txt

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11

2-
* poll_resend_to_cap
3-
4-
* Catch up with main branch changes.
5-
62
* Consolidate RtpPacket, RtcMeta
73

8-
* Rename PacketizingBuffer -> Packetizer
4+
* Catch up with main branch changes.
95

106
* Do we need SDES (move cname to stream?)?
117

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@
337337
//!
338338
//! Samples are not suitable to use directly in UDP (RTP) packets - for
339339
//! one they are too big. Samples are therefore further chunked up by
340-
//! codec specific packetizers into RTP packets.
340+
//! codec specific payloaders into RTP packets.
341341
//!
342342
//! Str0m's API currently operate on the "sample level". From an
343343
//! architectural point of view, all things RTP are considered an internal

src/media/event.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ pub struct MediaData {
128128
/// Bigger samples don't fit in one UDP packet, thus WebRTC RTP is chopping up codec
129129
/// transmission units into smaller parts.
130130
///
131-
/// This data is a full depacketized Sample.
131+
/// This data is a full depayloaded Sample.
132132
pub data: Vec<u8>,
133133

134134
/// RTP header extensions for this media data. This is taken from the

src/media/mod.rs

+29-40
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::time::Instant;
55

66
use crate::change::AddMedia;
77
use crate::io::{Id, DATAGRAM_MTU};
8-
use crate::packet::{DepacketizingBuffer, PacketizingBuffer, RtpMeta};
8+
use crate::packet::{DepacketizingBuffer, Payloader, RtpMeta};
99
use crate::rtp_::SRTP_BLOCK_SIZE;
1010
use crate::rtp_::{ExtensionMap, SRTP_OVERHEAD};
1111
use crate::RtcError;
@@ -68,14 +68,14 @@ pub struct Media {
6868
expected_rid_rx: Vec<Rid>,
6969

7070
/// Buffers of incoming RTP packets. These do reordering/jitter buffer and also
71-
/// depacketize from RTP to samples.
72-
depacketizers: HashMap<(Pt, Option<Rid>), DepacketizingBuffer>,
71+
/// depayload from RTP to samples.
72+
depayloaders: HashMap<(Pt, Option<Rid>), DepacketizingBuffer>,
7373

74-
/// Packetizers for outoing RTP packets.
75-
packetizers: HashMap<(Pt, Option<Rid>), PacketizingBuffer>,
74+
/// Payloaders for outoing RTP packets.
75+
payloaders: HashMap<(Pt, Option<Rid>), Payloader>,
7676

77-
/// Next sample to packetize.
78-
to_packetize: Option<ToPacketize>,
77+
/// Next sample to payload.
78+
to_payload: Option<ToPayload>,
7979

8080
pub(crate) need_open_event: bool,
8181
pub(crate) need_changed_event: bool,
@@ -86,14 +86,13 @@ pub struct Media {
8686
pub(crate) app_tmp: bool,
8787
}
8888

89-
pub(crate) struct ToPacketize {
89+
pub(crate) struct ToPayload {
9090
pub pt: Pt,
9191
pub rid: Option<Rid>,
9292
pub wallclock: Instant,
9393
pub rtp_time: MediaTime,
9494
pub data: Vec<u8>,
9595
pub ext_vals: ExtensionValues,
96-
pub max_retain: usize, // TODO: remove this.
9796
}
9897

9998
impl Media {
@@ -163,7 +162,7 @@ impl Media {
163162
}
164163

165164
pub(crate) fn poll_sample(&mut self) -> Option<Result<MediaData, RtcError>> {
166-
for ((pt, rid), buf) in &mut self.depacketizers {
165+
for ((pt, rid), buf) in &mut self.depayloaders {
167166
if let Some(r) = buf.pop() {
168167
let codec = *self.params.iter().find(|c| c.pt() == *pt)?;
169168
return Some(
@@ -195,7 +194,7 @@ impl Media {
195194
Some(p.pt)
196195
}
197196

198-
pub(crate) fn depacketize(
197+
pub(crate) fn depayload(
199198
&mut self,
200199
rid: Option<Rid>,
201200
packet: RtpPacket,
@@ -210,10 +209,10 @@ impl Media {
210209

211210
let key = (pt, rid);
212211

213-
let exists = self.depacketizers.contains_key(&key);
212+
let exists = self.depayloaders.contains_key(&key);
214213

215214
if !exists {
216-
// This unwrap is ok because we needed the clock_rate before calling depacketize.
215+
// This unwrap is ok because we needed the clock_rate before unpayloading.
217216
let params = self.get_params(pt).unwrap();
218217

219218
let codec = params.spec.codec;
@@ -227,11 +226,11 @@ impl Media {
227226

228227
let buffer = DepacketizingBuffer::new(codec.into(), hold_back);
229228

230-
self.depacketizers.insert((pt, rid), buffer);
229+
self.depayloaders.insert((pt, rid), buffer);
231230
}
232231

233232
// The entry will be there by now.
234-
let buffer = self.depacketizers.get_mut(&key).unwrap();
233+
let buffer = self.depayloaders.get_mut(&key).unwrap();
235234

236235
let meta = RtpMeta {
237236
received: packet.timestamp,
@@ -316,44 +315,34 @@ impl Media {
316315
self.params.iter().any(|p| p.pt == pt)
317316
}
318317

319-
fn packetizer_for(
320-
&mut self,
321-
pt: Pt,
322-
rid: Option<Rid>,
323-
max_retain: usize,
324-
) -> &mut PacketizingBuffer {
325-
self.packetizers.entry((pt, rid)).or_insert_with(|| {
318+
fn payloader_for(&mut self, pt: Pt, rid: Option<Rid>) -> &mut Payloader {
319+
self.payloaders.entry((pt, rid)).or_insert_with(|| {
326320
// Unwrap is OK, the pt should be checked already when calling this function.
327321
let params = self.params.iter().find(|p| p.pt == pt).unwrap();
328-
PacketizingBuffer::new(params.spec.codec.into(), max_retain)
322+
Payloader::new(params.spec.codec.into())
329323
})
330324
}
331325

332-
fn set_to_packetize(&mut self, to_packetize: ToPacketize) -> Result<(), RtcError> {
333-
if self.to_packetize.is_some() {
326+
fn set_to_payload(&mut self, to_payload: ToPayload) -> Result<(), RtcError> {
327+
if self.to_payload.is_some() {
334328
return Err(RtcError::WriteWithoutPoll);
335329
}
336330

337-
self.to_packetize = Some(to_packetize);
331+
self.to_payload = Some(to_payload);
338332

339333
Ok(())
340334
}
341335

342-
pub(crate) fn do_packetize(
336+
pub(crate) fn do_payload(
343337
&mut self,
344338
now: Instant,
345339
streams: &mut Streams,
346340
) -> Result<(), RtcError> {
347-
let Some(to_packetize) = self.to_packetize.take() else {
341+
let Some(to_payload) = self.to_payload.take() else {
348342
return Ok(());
349343
};
350344

351-
let ToPacketize {
352-
pt,
353-
rid,
354-
max_retain,
355-
..
356-
} = &to_packetize;
345+
let ToPayload { pt, rid, .. } = &to_payload;
357346

358347
let is_audio = self.kind.is_audio();
359348

@@ -365,14 +354,14 @@ impl Media {
365354

366355
let pt = *pt;
367356

368-
let packetizer = self.packetizer_for(pt, *rid, *max_retain);
357+
let payloader = self.payloader_for(pt, *rid);
369358

370359
const RTP_SIZE: usize = DATAGRAM_MTU - SRTP_OVERHEAD;
371360
// align to SRTP block size to minimize padding needs
372361
const MTU: usize = RTP_SIZE - RTP_SIZE % SRTP_BLOCK_SIZE;
373362

374-
packetizer
375-
.push_sample(now, to_packetize, MTU, is_audio, stream)
363+
payloader
364+
.push_sample(now, to_payload, MTU, is_audio, stream)
376365
.map_err(|e| RtcError::Packet(self.mid, pt, e))?;
377366

378367
Ok(())
@@ -407,9 +396,9 @@ impl Default for Media {
407396
params: vec![],
408397
simulcast: None,
409398
expected_rid_rx: vec![],
410-
packetizers: HashMap::new(),
411-
depacketizers: HashMap::new(),
412-
to_packetize: None,
399+
payloaders: HashMap::new(),
400+
depayloaders: HashMap::new(),
401+
to_payload: None,
413402
need_open_event: true,
414403
need_changed_event: false,
415404
}

src/media/writer.rs

+3-10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::rtp_::VideoOrientation;
55
use crate::session::Session;
66
use crate::RtcError;
77

8-
use super::{ExtensionValues, KeyframeRequestKind, Media, MediaTime, Mid, Pt, Rid, ToPacketize};
8+
use super::{ExtensionValues, KeyframeRequestKind, Media, MediaTime, Mid, Pt, Rid, ToPayload};
99

1010
///
1111
pub struct Writer<'a> {
@@ -92,23 +92,16 @@ impl<'a> Writer<'a> {
9292
return Err(RtcError::UnknownPt(pt));
9393
}
9494

95-
let max_retain = if media.kind().is_audio() {
96-
self.session.send_buffer_audio
97-
} else {
98-
self.session.send_buffer_video
99-
};
100-
101-
let to_packetize = ToPacketize {
95+
let to_payload = ToPayload {
10296
pt,
10397
rid: self.rid,
10498
wallclock,
10599
rtp_time,
106100
data: data.into(),
107101
ext_vals: self.ext_vals,
108-
max_retain,
109102
};
110103

111-
media.set_to_packetize(to_packetize)?;
104+
media.set_to_payload(to_payload)?;
112105

113106
Ok(())
114107
}

src/packet/buffer_tx.rs

-149
This file was deleted.

0 commit comments

Comments
 (0)