aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2023-03-10 18:23:23 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2023-03-10 18:23:23 +0100
commit637e4d452eb37142ae456aee40ba150cb5d0c06a (patch)
tree4fb7dfa2c2721dfdb2397b8bbe6710817ef21e93
parent4dd9047c4ba7e1ee7f1e163e0c551d318497d6db (diff)
downloadnihav-encoder-637e4d452eb37142ae456aee40ba150cb5d0c06a.tar.gz
pass null frames to the encoder without attempting to convert them
-rw-r--r--src/main.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 191a8a6..5e00cf0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -706,7 +706,10 @@ println!("can't generate default channel map for {} channels", dainfo.channels);
fn encode_frame(dst_id: u32, encoder: &mut Box<dyn NAEncoder>, cvt: &mut OutputConvert, frm: NAFrameRef, scale_opts: &[(String, String)]) -> bool {
let buf = frm.get_buffer();
- let cbuf = match cvt {
+ let cbuf = if let NABufferType::None = buf {
+ buf
+ } else {
+ match cvt {
OutputConvert::None => buf,
OutputConvert::Video(ref mut scaler, ref mut dbuf) => {
let cur_ifmt = get_scale_fmt_from_pic(&buf);
@@ -735,7 +738,8 @@ fn encode_frame(dst_id: u32, encoder: &mut Box<dyn NAEncoder>, cvt: &mut OutputC
}
ret.unwrap()
},
- };
+ }
+ };
let cfrm = NAFrame::new(frm.get_time_information(), frm.frame_type, frm.key, frm.get_info(), cbuf);
encoder.encode(&cfrm).unwrap();
true