pub trait NADecoder {
fn init(&mut self, supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()>;
fn decode(&mut self, supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef>;
+ fn flush(&mut self);
}
#[derive(Clone,Copy)]
pub struct DecoderInfo {
pub name: &'static str,
- pub get_decoder: fn () -> Box<dyn NADecoder>,
+ pub get_decoder: fn () -> Box<dyn NADecoder + Send>,
}
#[cfg(any(feature="blockdsp"))]
pub fn add_decoder(&mut self, dec: DecoderInfo) {
self.decs.push(dec);
}
- pub fn find_decoder(&self, name: &str) -> Option<fn () -> Box<dyn NADecoder>> {
+ pub fn find_decoder(&self, name: &str) -> Option<fn () -> Box<dyn NADecoder + Send>> {
for &dec in self.decs.iter() {
if dec.name == name {
return Some(dec.get_decoder);