qdata.flush();
ADEC_STATE.set_state(DecodingState::Waiting);
},
- Ok(PktSendEvent::End) => break,
+ Ok(PktSendEvent::End) => {
+ ADEC_STATE.set_state(DecodingState::End);
+ },
Ok(PktSendEvent::ImmediateEnd) => {
let mut qdata = queue.lock().expect("audio queue should be accessible");
qdata.flush();
if self.has_video && !(self.vcontrol.is_video_end() && disp_q.is_empty()) {
end = false;
}
- if self.has_audio && !self.acontrol.is_audio_end() {
+ if self.has_audio && !(self.acontrol.is_audio_end() && self.acontrol.get_fill() == 0) {
end = false;
}
if end {