self.ifmt.get_format() != vinfo.get_format() {
self.ifmt = vinfo;
let sc_ifmt = ScaleInfo { width: self.ifmt.get_width(), height: self.ifmt.get_height(), fmt: self.ifmt.get_format() };
- let do_yuv = if let ColorModel::YUV(_) = self.ifmt.get_format().get_model() { true } else { false };
+ let do_yuv = self.ifmt.get_format().get_model().is_yuv();
let ofmt = if do_yuv { self.ofmt_yuv } else { self.ofmt_rgb };
self.scaler = NAScale::new(sc_ifmt, ofmt).expect("scaling should not fail");
}
},
DecoderType::VideoMT(ref mut vdec, ref mut reord) => {
let queue_id = reord.register_frame();
- match vdec.queue_pkt(&mut self.dec.dsupp, &pkt, queue_id) {
+ match vdec.queue_pkt(&mut self.dec.dsupp, pkt, queue_id) {
Ok(true) => {},
Ok(false) => {
while !vdec.can_take_input() || vdec.has_output() {
},
};
}
- match vdec.queue_pkt(&mut self.dec.dsupp, &pkt, queue_id) {
+ match vdec.queue_pkt(&mut self.dec.dsupp, pkt, queue_id) {
Ok(true) => {},
Ok(false) => {
println!("still can't queue frame!");
Ok(PktSendEvent::HurryUp) => {
skip_mode = skip_mode.advance();
if let DecoderType::Video(ref mut dec, ref mut _reord) = vdec.dec.dec {
+ println!("setting hurry up mode to {}", skip_mode.to_string());
dec.set_options(&[NAOption{
name: FRAME_SKIP_OPTION,
value: NAValue::String(skip_mode.to_string()),
self.vqueue.len() >= size
}
pub fn try_send_video(&mut self, evt: PktSendEvent) -> bool {
- if self.vqueue.len() > 0 {
+ if !self.vqueue.is_empty() {
self.vqueue.push(evt);
false
} else {
frm.rgb_tex.with_lock(None, |buffer: &mut [u8], pitch: usize| {
let csize = sstride.min(pitch);
for (dst, src) in buffer.chunks_mut(pitch).zip(src.chunks(sstride)) {
- (&mut dst[..csize]).copy_from_slice(&src[..csize]);
+ dst[..csize].copy_from_slice(&src[..csize]);
}
true
}).expect("surface should be locked");