@@ -5,7 +5,7 @@ use crate::{Attributes, Interceptor, RTCPReader, RTCPWriter, RTPReader, RTPWrite
55use async_trait:: async_trait;
66use std:: sync:: Arc ;
77use tokio:: sync:: { mpsc, Mutex } ;
8- use util:: { Marshal , Unmarshal } ;
8+ use util:: Marshal ;
99
1010type RTCPPackets = Vec < Box < dyn rtcp:: packet:: Packet + Send + Sync > > ;
1111
@@ -88,26 +88,15 @@ impl MockStream {
8888 let mut buf = vec ! [ 0u8 ; 1500 ] ;
8989 let a = Attributes :: new ( ) ;
9090 loop {
91- let n = match rtcp_reader. read ( & mut buf, & a) . await {
91+ let pkts = match rtcp_reader. read ( & mut buf, & a) . await {
9292 Ok ( ( n, _) ) => n,
9393 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 ;
9795 break ;
9896 }
9997 } ;
10098
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 ;
111100 }
112101 } ) ;
113102
@@ -121,21 +110,10 @@ impl MockStream {
121110 let mut buf = vec ! [ 0u8 ; 1500 ] ;
122111 let a = Attributes :: new ( ) ;
123112 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 ,
126115 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 ;
139117 break ;
140118 }
141119 } ;
@@ -259,7 +237,11 @@ impl RTCPWriter for MockStream {
259237
260238#[ async_trait]
261239impl 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 ) > {
263245 let pkts = {
264246 let mut rtcp_in = self . rtcp_in_rx . lock ( ) . await ;
265247 rtcp_in. recv ( ) . await . ok_or ( Error :: ErrIoEOF ) ?
@@ -272,7 +254,7 @@ impl RTCPReader for MockStream {
272254 }
273255
274256 buf[ ..n] . copy_from_slice ( & marshaled) ;
275- Ok ( ( n , a. clone ( ) ) )
257+ Ok ( ( pkts , a. clone ( ) ) )
276258 }
277259}
278260
@@ -286,7 +268,11 @@ impl RTPWriter for MockStream {
286268
287269#[ async_trait]
288270impl 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 ) > {
290276 let pkt = {
291277 let mut rtp_in = self . rtp_in_rx . lock ( ) . await ;
292278 rtp_in. recv ( ) . await . ok_or ( Error :: ErrIoEOF ) ?
@@ -299,7 +285,7 @@ impl RTPReader for MockStream {
299285 }
300286
301287 buf[ ..n] . copy_from_slice ( & marshaled) ;
302- Ok ( ( n , a. clone ( ) ) )
288+ Ok ( ( pkt , a. clone ( ) ) )
303289 }
304290}
305291
0 commit comments