aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2023-05-16 18:13:11 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2023-05-16 18:13:11 +0200
commitb76448d99f7c994787b8f6385d50bb62d3ba8217 (patch)
tree3c1b8b873f674921b34ca2b86306502b46761fb8
parentb0481c9e4084c2946507754bc194a64306a278f8 (diff)
downloadnihav-encoder-b76448d99f7c994787b8f6385d50bb62d3ba8217.tar.gz
duplicate last frame when the encoder does not support skip frames
-rw-r--r--src/main.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index ff19ae1..1e77521 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -743,10 +743,16 @@ fn encode_frame(dst_id: u32, encoder: &mut Box<dyn NAEncoder>, cvt: &mut OutputC
let buf = frm.get_buffer();
let cbuf = if let NABufferType::None = buf {
if (encoder.get_capabilities() & ENC_CAPS_SKIPFRAME) == 0 {
- println!("encoder does not support skip frames, skipping");
- return true;
+ match cvt {
+ OutputConvert::Video(_, ref mut dbuf) => dbuf.clone(),
+ _ => {
+ println!("encoder does not support skip frames, skipping");
+ return true;
+ },
+ }
+ } else {
+ buf
}
- buf
} else {
match cvt {
OutputConvert::None => buf,