debug_log!(self; {" prefilling"});
let mut got_video = !self.has_video;
let mut got_audio = !self.has_audio;
- while !(got_video && got_audio) {
+ let mut iters = 0;
+ while !(got_video && got_audio) && iters < 10 {
// phase 1 - try to send packets for decoding
loop {
let mut try_send = self.acontrol.get_queue_size() < FRAME_QUEUE_LEN && (!self.has_video || (!self.vcontrol.is_filled(FRAME_QUEUE_LEN) && !disp_queue.is_full()));
if self.has_audio && self.acontrol.get_fill() > 0 {
got_audio = true;
}
+ iters += 1;
}
debug_log!(self; {format!(" prefilling done, frames {}-{} audio {}", disp_queue.start, disp_queue.end, self.acontrol.get_fill())});
Ok(())