+ if vinfo.get_format().is_unpacked() {
+ write_pgmyuv(name.as_str(), frm)
+ } else {
+ let mut dst_vinfo = vinfo;
+ dst_vinfo.format = YUV420_FORMAT;
+ let mut cvt_buf = alloc_video_buffer(dst_vinfo, 2).unwrap();
+ let buf = frm.get_buffer();
+
+ let ifmt = get_scale_fmt_from_pic(&buf);
+ let ofmt = get_scale_fmt_from_pic(&cvt_buf);
+ let mut scaler = NAScale::new(ifmt, ofmt).unwrap();
+ scaler.convert(&buf, &mut cvt_buf).unwrap();
+ let frm = NAFrame::new(frm.get_time_information(), frm.frame_type, frm.key, frm.get_info(), cvt_buf);
+ write_pgmyuv(name.as_str(), frm.into_ref())
+ }