@@ -5,7 +5,7 @@ use crate::{Attributes, Interceptor, RTCPReader, RTCPWriter, RTPReader, RTPWrite
5
5
use async_trait:: async_trait;
6
6
use std:: sync:: Arc ;
7
7
use tokio:: sync:: { mpsc, Mutex } ;
8
- use util:: { Marshal , Unmarshal } ;
8
+ use util:: Marshal ;
9
9
10
10
type RTCPPackets = Vec < Box < dyn rtcp:: packet:: Packet + Send + Sync > > ;
11
11
@@ -88,26 +88,15 @@ impl MockStream {
88
88
let mut buf = vec ! [ 0u8 ; 1500 ] ;
89
89
let a = Attributes :: new ( ) ;
90
90
loop {
91
- let n = match rtcp_reader. read ( & mut buf, & a) . await {
91
+ let pkts = match rtcp_reader. read ( & mut buf, & a) . await {
92
92
Ok ( ( n, _) ) => n,
93
93
Err ( err) => {
94
- if Error :: ErrIoEOF != err {
95
- let _ = rtcp_in_modified_tx. send ( Err ( err) ) . await ;
96
- }
94
+ let _ = rtcp_in_modified_tx. send ( Err ( err) ) . await ;
97
95
break ;
98
96
}
99
97
} ;
100
98
101
- let mut b = & buf[ ..n] ;
102
- let pkt = match rtcp:: packet:: unmarshal ( & mut b) {
103
- Ok ( pkt) => pkt,
104
- Err ( err) => {
105
- let _ = rtcp_in_modified_tx. send ( Err ( err. into ( ) ) ) . await ;
106
- break ;
107
- }
108
- } ;
109
-
110
- let _ = rtcp_in_modified_tx. send ( Ok ( pkt) ) . await ;
99
+ let _ = rtcp_in_modified_tx. send ( Ok ( pkts) ) . await ;
111
100
}
112
101
} ) ;
113
102
@@ -121,21 +110,10 @@ impl MockStream {
121
110
let mut buf = vec ! [ 0u8 ; 1500 ] ;
122
111
let a = Attributes :: new ( ) ;
123
112
loop {
124
- let n = match rtp_reader. read ( & mut buf, & a) . await {
125
- Ok ( ( n , _) ) => n ,
113
+ let pkt = match rtp_reader. read ( & mut buf, & a) . await {
114
+ Ok ( ( pkt , _) ) => pkt ,
126
115
Err ( err) => {
127
- if Error :: ErrIoEOF != err {
128
- let _ = rtp_in_modified_tx. send ( Err ( err) ) . await ;
129
- }
130
- break ;
131
- }
132
- } ;
133
-
134
- let mut b = & buf[ ..n] ;
135
- let pkt = match rtp:: packet:: Packet :: unmarshal ( & mut b) {
136
- Ok ( pkt) => pkt,
137
- Err ( err) => {
138
- let _ = rtp_in_modified_tx. send ( Err ( err. into ( ) ) ) . await ;
116
+ let _ = rtp_in_modified_tx. send ( Err ( err) ) . await ;
139
117
break ;
140
118
}
141
119
} ;
@@ -259,7 +237,11 @@ impl RTCPWriter for MockStream {
259
237
260
238
#[ async_trait]
261
239
impl RTCPReader for MockStream {
262
- async fn read ( & self , buf : & mut [ u8 ] , a : & Attributes ) -> Result < ( usize , Attributes ) > {
240
+ async fn read (
241
+ & self ,
242
+ buf : & mut [ u8 ] ,
243
+ a : & Attributes ,
244
+ ) -> Result < ( Vec < Box < dyn rtcp:: packet:: Packet + Send + Sync > > , Attributes ) > {
263
245
let pkts = {
264
246
let mut rtcp_in = self . rtcp_in_rx . lock ( ) . await ;
265
247
rtcp_in. recv ( ) . await . ok_or ( Error :: ErrIoEOF ) ?
@@ -272,7 +254,7 @@ impl RTCPReader for MockStream {
272
254
}
273
255
274
256
buf[ ..n] . copy_from_slice ( & marshaled) ;
275
- Ok ( ( n , a. clone ( ) ) )
257
+ Ok ( ( pkts , a. clone ( ) ) )
276
258
}
277
259
}
278
260
@@ -286,7 +268,11 @@ impl RTPWriter for MockStream {
286
268
287
269
#[ async_trait]
288
270
impl RTPReader for MockStream {
289
- async fn read ( & self , buf : & mut [ u8 ] , a : & Attributes ) -> Result < ( usize , Attributes ) > {
271
+ async fn read (
272
+ & self ,
273
+ buf : & mut [ u8 ] ,
274
+ a : & Attributes ,
275
+ ) -> Result < ( rtp:: packet:: Packet , Attributes ) > {
290
276
let pkt = {
291
277
let mut rtp_in = self . rtp_in_rx . lock ( ) . await ;
292
278
rtp_in. recv ( ) . await . ok_or ( Error :: ErrIoEOF ) ?
@@ -299,7 +285,7 @@ impl RTPReader for MockStream {
299
285
}
300
286
301
287
buf[ ..n] . copy_from_slice ( & marshaled) ;
302
- Ok ( ( n , a. clone ( ) ) )
288
+ Ok ( ( pkt , a. clone ( ) ) )
303
289
}
304
290
}
305
291
0 commit comments