use nihav_core::codecs::*;
use nihav_core::soundcvt::*;
-use super::{DecoderStuff, PktSendEvent};
+use super::{DecoderStuff, DecoderType, PktSendEvent};
static SKIP_ADECODING: AtomicBool = AtomicBool::new(false);
static AUDIO_VOLUME: AtomicUsize = AtomicUsize::new(100);
}
let adevice = ret.unwrap();
(Some(adevice), std::thread::Builder::new().name("acontrol".to_string()).spawn(move ||{
+ let adec = if let DecoderType::Audio(ref mut dec) = audio_dec.dec { dec } else { panic!("not an audio decoder!"); };
let mut samplepos = 0usize;
let dst_chmap = if dst_info.channels == 2 {
NAChannelMap::from_str("L,R").unwrap()
std::thread::sleep(Duration::from_millis(100));
}
if !SKIP_ADECODING.load(Ordering::Relaxed) {
- if let Ok(frm) = audio_dec.dec.decode(&mut audio_dec.dsupp, &pkt) {
+ if let Ok(frm) = adec.decode(&mut audio_dec.dsupp, &pkt) {
let buf = frm.get_buffer();
if let Some(pts) = frm.get_pts() {
samplepos = NATimeInfo::ts_to_time(pts, u64::from(dst_info.sample_rate), frm.ts.tb_num, frm.ts.tb_den) as usize;
}
}
},
+ Ok(PktSendEvent::GetFrames) => {},
Ok(PktSendEvent::Flush) => {
- audio_dec.dec.flush();
+ adec.flush();
let mut qdata = queue.lock().unwrap();
qdata.flush();
SKIP_ADECODING.store(false, Ordering::Relaxed);