@@ -270,25 +270,36 @@ fn process_bsf(
270270 debug ! ( "Ingress packet count: {}" , packets. len( ) ) ;
271271 let mut new_packets = Vec :: new ( ) ;
272272 for mut packet in packets. drain ( ..) {
273+ debug ! ( "Source packet size: {}" , packet. size( ) ) ;
273274 unsafe {
274275 if av_bsf_send_packet ( filter. ptr , packet. as_mut_ptr ( ) ) < 0 {
275276 error ! ( "Unable to send packet to bitstream filter" ) ;
276277 }
277278
278279 loop {
279- let mut new_packet = Packet :: new ( packet. size ( ) + 2048 ) ;
280- let ret = av_bsf_receive_packet ( filter. ptr , packet. as_mut_ptr ( ) ) ;
281- if ret < 0 {
280+ let mut new_packet = Packet :: empty ( ) ;
281+ let ret = av_bsf_receive_packet ( filter. ptr , new_packet. as_mut_ptr ( ) ) ;
282+ if ret == AVERROR ( EAGAIN ) {
283+ //debug!("Required extra packets");
284+ break ;
285+ }
286+ if ret == AVERROR_EOF {
287+ error ! ( "End of filter" ) ;
282288 break ;
283289 }
284- if ret == AVERROR ( EAGAIN ) || ret == AVERROR_EOF {
290+ if ret < 0 {
291+ error ! ( "Unable to receive packet from bitstream filter: {}" , ret) ;
285292 break ;
286293 }
294+ debug ! (
295+ "New packet size: {}" ,
296+ new_packet. data( ) . as_ref( ) . unwrap( ) . len( )
297+ ) ;
287298 new_packet. set_stream ( packet. stream ( ) ) ;
288- new_packet. set_flags ( packet. flags ( ) ) ;
289- new_packet. set_dts ( packet. dts ( ) ) ;
290- new_packet. set_pts ( packet. pts ( ) ) ;
291- new_packet. set_duration ( packet. duration ( ) ) ;
299+ // new_packet.set_flags(packet.flags());
300+ // new_packet.set_dts(packet.dts());
301+ // new_packet.set_pts(packet.pts());
302+ // new_packet.set_duration(packet.duration());
292303 new_packets. push ( new_packet. clone ( ) ) ;
293304 }
294305 }
0 commit comments