- let pts = if let Some(pt) = frm.get_pts() { pt } else { pkt.get_pts().unwrap() };
- let frmbuf = frm.get_buffer().get_vbuf().unwrap();
- if frmbuf.get_info().get_format().is_paletted() {
- write_palppm(self.prefix, self.streamno, pts, frm);
+ let pts = match self.nmode {
+ NumberMode::Counter => { self.frameno },
+ NumberMode::PktPTS => { pkt.get_pts().unwrap() },
+ NumberMode::FrmPTS => { if let Some(pt) = frm.get_pts() { pt } else { pkt.get_pts().unwrap() } },
+ };
+ let vinfo = frm.get_buffer().get_video_info().unwrap();
+ if vinfo.get_format().is_paletted() {
+ write_palppm(&self.prefix, self.streamno, pts, frm);
+ } else if vinfo.get_format().get_model().is_yuv() {
+ write_pgmyuv(&self.prefix, self.streamno, pts, frm);
+ } else if vinfo.get_format().get_model().is_rgb() {
+ write_ppm(&self.prefix, self.streamno, pts, frm);