summaryrefslogtreecommitdiffstats
path: root/nihav-duck/src
diff options
context:
space:
mode:
authorKostya Shishkov <[email protected]>2019-11-09 18:57:34 +0100
committerKostya Shishkov <[email protected]>2019-11-09 18:57:34 +0100
commitf9be4e750dccff762b9a3d894faec50ffdb59233 (patch)
tree183d7d505c1785f850a3c652c62cd012cd4c5aa2 /nihav-duck/src
parent80aaa7ef4cf5ce03978f64d07c344e4b18718b1b (diff)
add flush() to decoder interface
Diffstat (limited to 'nihav-duck/src')
-rw-r--r--nihav-duck/src/codecs/dkadpcm.rs2
-rw-r--r--nihav-duck/src/codecs/on2avc.rs2
-rw-r--r--nihav-duck/src/codecs/truemotion1.rs3
-rw-r--r--nihav-duck/src/codecs/truemotion2.rs2
-rw-r--r--nihav-duck/src/codecs/truemotion2x.rs2
-rw-r--r--nihav-duck/src/codecs/truemotionrt.rs2
-rw-r--r--nihav-duck/src/codecs/vp3.rs3
-rw-r--r--nihav-duck/src/codecs/vp5.rs3
-rw-r--r--nihav-duck/src/codecs/vp56.rs3
-rw-r--r--nihav-duck/src/codecs/vp6.rs3
-rw-r--r--nihav-duck/src/codecs/vp7.rs3
11 files changed, 28 insertions, 0 deletions
diff --git a/nihav-duck/src/codecs/dkadpcm.rs b/nihav-duck/src/codecs/dkadpcm.rs
index d339556..24f5b5b 100644
--- a/nihav-duck/src/codecs/dkadpcm.rs
+++ b/nihav-duck/src/codecs/dkadpcm.rs
@@ -163,6 +163,8 @@ impl NADecoder for DuckADPCMDecoder {
Err(DecoderError::InvalidData)
}
}
+ fn flush(&mut self) {
+ }
}
pub fn get_decoder_dk3() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/on2avc.rs b/nihav-duck/src/codecs/on2avc.rs
index 46880fa..8273437 100644
--- a/nihav-duck/src/codecs/on2avc.rs
+++ b/nihav-duck/src/codecs/on2avc.rs
@@ -1044,6 +1044,8 @@ impl NADecoder for AVCDecoder {
frm.set_keyframe(true);
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ }
}
pub fn get_decoder_500() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/truemotion1.rs b/nihav-duck/src/codecs/truemotion1.rs
index 44ff668..c313b13 100644
--- a/nihav-duck/src/codecs/truemotion1.rs
+++ b/nihav-duck/src/codecs/truemotion1.rs
@@ -654,6 +654,9 @@ impl NADecoder for TM1Decoder {
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.lastframe.reset();
+ }
}
pub fn get_decoder() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/truemotion2.rs b/nihav-duck/src/codecs/truemotion2.rs
index ecfce30..c222c44 100644
--- a/nihav-duck/src/codecs/truemotion2.rs
+++ b/nihav-duck/src/codecs/truemotion2.rs
@@ -577,6 +577,8 @@ impl NADecoder for TM2Decoder {
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ }
}
pub fn get_decoder() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/truemotion2x.rs b/nihav-duck/src/codecs/truemotion2x.rs
index 16d1125..584ee43 100644
--- a/nihav-duck/src/codecs/truemotion2x.rs
+++ b/nihav-duck/src/codecs/truemotion2x.rs
@@ -688,6 +688,8 @@ impl NADecoder for TM2XDecoder {
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ }
}
pub fn get_decoder() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/truemotionrt.rs b/nihav-duck/src/codecs/truemotionrt.rs
index ba2ff17..97ad981 100644
--- a/nihav-duck/src/codecs/truemotionrt.rs
+++ b/nihav-duck/src/codecs/truemotionrt.rs
@@ -80,6 +80,8 @@ impl NADecoder for TMRTDecoder {
frm.set_frame_type(FrameType::I);
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ }
}
pub fn get_decoder() -> Box<dyn NADecoder> {
diff --git a/nihav-duck/src/codecs/vp3.rs b/nihav-duck/src/codecs/vp3.rs
index d25d27f..dd71c8b 100644
--- a/nihav-duck/src/codecs/vp3.rs
+++ b/nihav-duck/src/codecs/vp3.rs
@@ -1839,6 +1839,9 @@ impl NADecoder for VP34Decoder {
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.shuf.clear();
+ }
}
pub fn get_decoder_vp3() -> Box<NADecoder> {
diff --git a/nihav-duck/src/codecs/vp5.rs b/nihav-duck/src/codecs/vp5.rs
index abfd4d0..d13ffab 100644
--- a/nihav-duck/src/codecs/vp5.rs
+++ b/nihav-duck/src/codecs/vp5.rs
@@ -267,6 +267,9 @@ impl NADecoder for VP5Decoder {
frm.set_frame_type(ftype);
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.dec.flush();
+ }
}
pub fn get_decoder() -> Box<NADecoder> {
diff --git a/nihav-duck/src/codecs/vp56.rs b/nihav-duck/src/codecs/vp56.rs
index d0a991f..28b1f06 100644
--- a/nihav-duck/src/codecs/vp56.rs
+++ b/nihav-duck/src/codecs/vp56.rs
@@ -428,6 +428,9 @@ impl VP56Decoder {
self.set_dimensions(vinfo.get_width(), vinfo.get_height());
Ok(())
}
+ pub fn flush(&mut self) {
+ self.shuf.clear();
+ }
pub fn decode_frame(&mut self, supp: &mut NADecoderSupport, src: &[u8], br: &mut dyn VP56Parser) -> DecoderResult<(NABufferType, FrameType)> {
let aoffset;
let mut bc;
diff --git a/nihav-duck/src/codecs/vp6.rs b/nihav-duck/src/codecs/vp6.rs
index 1cf6a78..803ce5e 100644
--- a/nihav-duck/src/codecs/vp6.rs
+++ b/nihav-duck/src/codecs/vp6.rs
@@ -701,6 +701,9 @@ impl NADecoder for VP6Decoder {
frm.set_frame_type(ftype);
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.dec.flush();
+ }
}
pub fn get_decoder_vp6() -> Box<NADecoder> {
diff --git a/nihav-duck/src/codecs/vp7.rs b/nihav-duck/src/codecs/vp7.rs
index ccdb5dd..b96da83 100644
--- a/nihav-duck/src/codecs/vp7.rs
+++ b/nihav-duck/src/codecs/vp7.rs
@@ -1392,6 +1392,9 @@ impl NADecoder for VP7Decoder {
frm.set_frame_type(if self.dstate.is_intra { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.shuf.clear();
+ }
}
pub fn get_decoder() -> Box<NADecoder> {