mblk_t *ms_load_nowebcam(MSVideoSize *reqsize, int idx){ char tmp[256]; if (idx<0) snprintf(tmp, sizeof(tmp), "%s/images/%s.jpg", PACKAGE_DATA_DIR, NOWEBCAM_JPG); else snprintf(tmp, sizeof(tmp), "%s/images/%s%i.jpg", PACKAGE_DATA_DIR, NOWEBCAM_JPG, idx); return ms_load_jpeg_as_yuv(tmp,reqsize); }
void static_image_init(MSFilter *f){ SIData *d=(SIData*)ms_new0(SIData,1); d->vsize.width=MS_VIDEO_SIZE_CIF_W; d->vsize.height=MS_VIDEO_SIZE_CIF_H; if (def_image) d->nowebcamimage=ms_strdup(def_image); d->lasttime=0; #ifndef NO_FFMPEG d->pic=NULL; #else if (d->nowebcamimage){ // no rescaling without ffmpeg -> we need to load jpg image // before get_vsize is called d->pic=ms_load_jpeg_as_yuv(d->nowebcamimage,&d->vsize); } #endif d->fps=1; f->data=d; }
static mblk_t * v4w_make_nowebcam(V4wState *s){ #if defined(_WIN32_WCE) return NULL; #else int idx; int count; if(s->mire[0]==NULL && s->frame_ind==0 && s->nowebcamimage[0] != '\0') { s->mire[0] = ms_load_jpeg_as_yuv(s->nowebcamimage,&s->vsize); } if (s->mire[0]==NULL && s->frame_ind==0){ /* load several images to fake a movie */ for (idx=0;idx<10;idx++) { s->mire[idx]=ms_load_nowebcam(&s->vsize, idx); if (s->mire[idx]==NULL) break; } if (idx==0) s->mire[0]=ms_load_nowebcam(&s->vsize, -1); } for (count=0;count<10;count++) { if (s->mire[count]==NULL) break; } s->frame_ind++; if (count==0) return NULL; idx = s->frame_ind%count; if (s->mire[idx]!=NULL) return s->mire[idx]; return s->mire[0]; #endif }
void static_image_preprocess(MSFilter *f){ SIData *d=(SIData*)f->data; if (d->pic==NULL && d->nowebcamimage){ d->pic=ms_load_jpeg_as_yuv(d->nowebcamimage,&d->vsize); } }