static void vfw_engine_set_video_size(VfwEngine *obj, MSVideoSize vsize){ if (!obj->configured) obj->vsize=vsize; else if (ms_video_size_greater_than(vsize,obj->vsize) && !ms_video_size_equal(vsize,obj->vsize) ){ _vfw_engine_unconfigure(obj); _vfw_engine_disconnect(obj); _vfw_engine_connect(obj); obj->vsize=vsize; _vfw_engine_configure(obj); } }
MSVideoSize ms_video_size_get_just_lower_than(MSVideoSize vs){ MSVideoSize *p; MSVideoSize ret; ret.width=0; ret.height=0; for(p=_ordered_vsizes;p->width!=0;++p){ if (ms_video_size_greater_than(vs,*p) && !ms_video_size_equal(vs,*p)){ ret=*p; }else return ret; } return ret; }