@@ -5,7 +5,7 @@ use std::time::Instant;
5
5
6
6
use crate :: change:: AddMedia ;
7
7
use crate :: io:: { Id , DATAGRAM_MTU } ;
8
- use crate :: packet:: { DepacketizingBuffer , PacketizingBuffer , RtpMeta } ;
8
+ use crate :: packet:: { DepacketizingBuffer , Payloader , RtpMeta } ;
9
9
use crate :: rtp_:: SRTP_BLOCK_SIZE ;
10
10
use crate :: rtp_:: { ExtensionMap , SRTP_OVERHEAD } ;
11
11
use crate :: RtcError ;
@@ -68,14 +68,14 @@ pub struct Media {
68
68
expected_rid_rx : Vec < Rid > ,
69
69
70
70
/// 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 > ,
73
73
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 > ,
76
76
77
- /// Next sample to packetize .
78
- to_packetize : Option < ToPacketize > ,
77
+ /// Next sample to payload .
78
+ to_payload : Option < ToPayload > ,
79
79
80
80
pub ( crate ) need_open_event : bool ,
81
81
pub ( crate ) need_changed_event : bool ,
@@ -86,14 +86,13 @@ pub struct Media {
86
86
pub ( crate ) app_tmp : bool ,
87
87
}
88
88
89
- pub ( crate ) struct ToPacketize {
89
+ pub ( crate ) struct ToPayload {
90
90
pub pt : Pt ,
91
91
pub rid : Option < Rid > ,
92
92
pub wallclock : Instant ,
93
93
pub rtp_time : MediaTime ,
94
94
pub data : Vec < u8 > ,
95
95
pub ext_vals : ExtensionValues ,
96
- pub max_retain : usize , // TODO: remove this.
97
96
}
98
97
99
98
impl Media {
@@ -163,7 +162,7 @@ impl Media {
163
162
}
164
163
165
164
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 {
167
166
if let Some ( r) = buf. pop ( ) {
168
167
let codec = * self . params . iter ( ) . find ( |c| c. pt ( ) == * pt) ?;
169
168
return Some (
@@ -195,7 +194,7 @@ impl Media {
195
194
Some ( p. pt )
196
195
}
197
196
198
- pub ( crate ) fn depacketize (
197
+ pub ( crate ) fn depayload (
199
198
& mut self ,
200
199
rid : Option < Rid > ,
201
200
packet : RtpPacket ,
@@ -210,10 +209,10 @@ impl Media {
210
209
211
210
let key = ( pt, rid) ;
212
211
213
- let exists = self . depacketizers . contains_key ( & key) ;
212
+ let exists = self . depayloaders . contains_key ( & key) ;
214
213
215
214
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 .
217
216
let params = self . get_params ( pt) . unwrap ( ) ;
218
217
219
218
let codec = params. spec . codec ;
@@ -227,11 +226,11 @@ impl Media {
227
226
228
227
let buffer = DepacketizingBuffer :: new ( codec. into ( ) , hold_back) ;
229
228
230
- self . depacketizers . insert ( ( pt, rid) , buffer) ;
229
+ self . depayloaders . insert ( ( pt, rid) , buffer) ;
231
230
}
232
231
233
232
// 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 ( ) ;
235
234
236
235
let meta = RtpMeta {
237
236
received : packet. timestamp ,
@@ -316,44 +315,34 @@ impl Media {
316
315
self . params . iter ( ) . any ( |p| p. pt == pt)
317
316
}
318
317
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 ( || {
326
320
// Unwrap is OK, the pt should be checked already when calling this function.
327
321
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 ( ) )
329
323
} )
330
324
}
331
325
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 ( ) {
334
328
return Err ( RtcError :: WriteWithoutPoll ) ;
335
329
}
336
330
337
- self . to_packetize = Some ( to_packetize ) ;
331
+ self . to_payload = Some ( to_payload ) ;
338
332
339
333
Ok ( ( ) )
340
334
}
341
335
342
- pub ( crate ) fn do_packetize (
336
+ pub ( crate ) fn do_payload (
343
337
& mut self ,
344
338
now : Instant ,
345
339
streams : & mut Streams ,
346
340
) -> Result < ( ) , RtcError > {
347
- let Some ( to_packetize ) = self . to_packetize . take ( ) else {
341
+ let Some ( to_payload ) = self . to_payload . take ( ) else {
348
342
return Ok ( ( ) ) ;
349
343
} ;
350
344
351
- let ToPacketize {
352
- pt,
353
- rid,
354
- max_retain,
355
- ..
356
- } = & to_packetize;
345
+ let ToPayload { pt, rid, .. } = & to_payload;
357
346
358
347
let is_audio = self . kind . is_audio ( ) ;
359
348
@@ -365,14 +354,14 @@ impl Media {
365
354
366
355
let pt = * pt;
367
356
368
- let packetizer = self . packetizer_for ( pt, * rid, * max_retain ) ;
357
+ let payloader = self . payloader_for ( pt, * rid) ;
369
358
370
359
const RTP_SIZE : usize = DATAGRAM_MTU - SRTP_OVERHEAD ;
371
360
// align to SRTP block size to minimize padding needs
372
361
const MTU : usize = RTP_SIZE - RTP_SIZE % SRTP_BLOCK_SIZE ;
373
362
374
- packetizer
375
- . push_sample ( now, to_packetize , MTU , is_audio, stream)
363
+ payloader
364
+ . push_sample ( now, to_payload , MTU , is_audio, stream)
376
365
. map_err ( |e| RtcError :: Packet ( self . mid , pt, e) ) ?;
377
366
378
367
Ok ( ( ) )
@@ -407,9 +396,9 @@ impl Default for Media {
407
396
params : vec ! [ ] ,
408
397
simulcast : None ,
409
398
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 ,
413
402
need_open_event : true ,
414
403
need_changed_event : false ,
415
404
}
0 commit comments