Changeset 143:00dddccb0111 in mediastreamer2 for linphone/mediastreamer2/src/nowebcam.c
- Timestamp:
- Nov 3, 2008 12:04:28 AM (5 years ago)
- Branch:
- default
- File:
-
- 1 edited
-
linphone/mediastreamer2/src/nowebcam.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
linphone/mediastreamer2/src/nowebcam.c
r118 r143 116 116 typedef struct _SIData{ 117 117 MSVideoSize vsize; 118 char nowebcamimage[256]; 118 119 int index; 119 120 uint64_t lasttime; … … 125 126 d->vsize.width=MS_VIDEO_SIZE_CIF_W; 126 127 d->vsize.height=MS_VIDEO_SIZE_CIF_H; 128 memset(d->nowebcamimage, 0, sizeof(d->nowebcamimage)); 127 129 d->index=-1; 128 130 d->lasttime=0; … … 137 139 void static_image_preprocess(MSFilter *f){ 138 140 SIData *d=(SIData*)f->data; 139 d->pic=ms_load_nowebcam(&d->vsize,d->index); 141 if (d->pic==NULL) 142 { 143 if (d->nowebcamimage[0] != '\0') 144 d->pic=ms_load_jpeg_as_yuv(d->nowebcamimage,&d->vsize); 145 else 146 d->pic=ms_load_nowebcam(&d->vsize,d->index); 147 } 140 148 } 141 149 … … 144 152 /*output a frame every second*/ 145 153 if ((f->ticker->time - d->lasttime>1000) || d->lasttime==0){ 154 ms_mutex_lock(&f->lock); 146 155 if (d->pic) { 147 156 mblk_t *o=dupb(d->pic); … … 150 159 ms_queue_put(f->outputs[0],o); 151 160 } 161 ms_mutex_unlock(&f->lock); 152 162 d->lasttime=f->ticker->time; 153 163 } … … 176 186 int static_image_get_pix_fmt(MSFilter *f, void *data){ 177 187 *(MSPixFmt*)data=MS_YUV420P; 188 return 0; 189 } 190 191 static int static_image_set_image(MSFilter *f, void *arg){ 192 SIData *d=(SIData*)f->data; 193 char *image = (char *)arg; 194 ms_mutex_lock(&f->lock); 195 if (image!=NULL && image[0]!='\0') 196 snprintf(d->nowebcamimage, sizeof(d->nowebcamimage), "%s", image); 197 else 198 d->nowebcamimage[0] = '\0'; 199 200 if (d->pic!=NULL) 201 freemsg(d->pic); 202 203 //if (d->nowebcamimage[0] != '\0') 204 // d->pic=ms_load_jpeg_as_yuv(d->nowebcamimage,&d->vsize); 205 //else 206 // d->pic=ms_load_nowebcam(&d->vsize,d->index); 207 ms_mutex_unlock(&f->lock); 178 208 return 0; 179 209 } … … 183 213 { MS_FILTER_GET_VIDEO_SIZE, static_image_get_vsize }, 184 214 { MS_FILTER_GET_PIX_FMT, static_image_get_pix_fmt }, 215 { MS_FILTER_SET_IMAGE, static_image_set_image }, 185 216 { 0,0 } 186 217 };
Note: See TracChangeset
for help on using the changeset viewer.
