}
DbWindowVIcon::DbWindowVIcon()
- : VIcon(SWIDTH, SHEIGHT, 24)
+ : VIcon(SWIDTH, SHEIGHT, VICON_RATE)
{
lbox = 0;
item = 0;
{
if( seq_no >= images.size() )
load_frames(lbox->gui->dwindow->mdb);
- return images[seq_no];
+ return *images[seq_no];
}
-int64_t DbWindowVIcon::next_frame(int n)
+int64_t DbWindowVIcon::set_seq_no(int64_t no)
{
- age += n * period;
- if( (seq_no+=n) >= clip_size ) seq_no = 0;
- return seq_no;
+ if( no >= clip_size ) no = 0;
+ return seq_no = no;
}
int frame_id = mdb->timeline_frame_id();
if( frame_id < 0 ) continue;
int swidth = (SWIDTH+1) & ~1, sheight = (SHEIGHT+1) & ~1;
- VFrame *frame = new VFrame(swidth, sheight, BC_YUV420P);
- memset(frame->get_y(),0x00,swidth * sheight);
- memset(frame->get_u(),0x80,swidth/2 * sheight/2);
- memset(frame->get_v(),0x80,swidth/2 * sheight/2);
- uint8_t *yp = frame->get_y(); int sw = -1, sh = -1;
+ VIFrame *vifrm = new VIFrame(swidth, sheight, BC_YUV420P);
+ VFrame *img = *vifrm;
+ memset(img->get_y(),0x00,swidth * sheight);
+ memset(img->get_u(),0x80,swidth/2 * sheight/2);
+ memset(img->get_v(),0x80,swidth/2 * sheight/2);
+ uint8_t *yp = img->get_y(); int sw = -1, sh = -1;
mdb->get_image(frame_id, yp, sw, sh);
- images.append(frame);
+ images.append(vifrm);
}
}
this->prefix_size = mdb->clip_prefix_size();
this->suffix_offset = mdb->clip_frames() - clip_size;
double framerate = mdb->clip_framerate();
- this->period = 1000. / (framerate > 0 ? framerate : 24);
+ this->frame_rate = framerate > 0 ? framerate : VICON_RATE;
gui->vicon_thread->add_vicon(this);
}
mdb->detach();