@@ -270,25 +270,36 @@ fn process_bsf(
270
270
debug ! ( "Ingress packet count: {}" , packets. len( ) ) ;
271
271
let mut new_packets = Vec :: new ( ) ;
272
272
for mut packet in packets. drain ( ..) {
273
+ debug ! ( "Source packet size: {}" , packet. size( ) ) ;
273
274
unsafe {
274
275
if av_bsf_send_packet ( filter. ptr , packet. as_mut_ptr ( ) ) < 0 {
275
276
error ! ( "Unable to send packet to bitstream filter" ) ;
276
277
}
277
278
278
279
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" ) ;
282
288
break ;
283
289
}
284
- if ret == AVERROR ( EAGAIN ) || ret == AVERROR_EOF {
290
+ if ret < 0 {
291
+ error ! ( "Unable to receive packet from bitstream filter: {}" , ret) ;
285
292
break ;
286
293
}
294
+ debug ! (
295
+ "New packet size: {}" ,
296
+ new_packet. data( ) . as_ref( ) . unwrap( ) . len( )
297
+ ) ;
287
298
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());
292
303
new_packets. push ( new_packet. clone ( ) ) ;
293
304
}
294
305
}
0 commit comments