void contourextract_free(void *d) { if(d) { contourextract_data *my = (contourextract_data*) d; if(my->current) free(my->current); if(my->bitmap) free(my->bitmap); free(d); } if( shrink_ ) { yuv_free_swscaler( shrink_ ); shrink_ = NULL; } int i; for( i = 0; i < 255; i++ ) if( proj_[i] ) viewport_destroy( proj_[i] ); for( i = 0; i < 12000; i ++ ) { if(points[i]) free(points[i]); } free(points); d = NULL; }
AS3_Val destroyViewport( void* self, AS3_Val args ) { Viewport *viewport = AS3_PtrValue(args); viewport_destroy(&viewport); return 0; }
void zoom_free() { int i; for( i = 0; i < 3; i ++ ) { if( zoom_private_[i] ) free(zoom_private_[i] ); zoom_private_[i] = NULL; } if( zoom_vp_ ) viewport_destroy( zoom_vp_ ); zoom_vp_ = NULL; }
void zoom_apply( VJFrame *frame, int width, int height, int x, int y, int factor, int dir) { if( zoom_[0] != x || zoom_[1] != y || zoom_[2] != factor || !zoom_vp_ || dir != zoom_[3]) { if( zoom_vp_ ) viewport_destroy( zoom_vp_ ); zoom_vp_ = viewport_fx_init( VP_QUADZOOM, width,height,x,y,factor, dir ); if(!zoom_vp_ ) return; zoom_[0] = x; zoom_[1] = y; zoom_[2] = factor; zoom_[3] = dir; } int strides[4] = { (width*height),(width*height),(width*height), 0 }; vj_frame_copy( frame->data, zoom_private_, strides ); viewport_process_dynamic( zoom_vp_, zoom_private_, frame->data ); }