vj_effect *dupmagic_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 1; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 5; ve->description = "Strong Luma Overlay"; ve->limits[0][0] = 0; ve->limits[1][0] = 12; ve->extra_frame = 1; ve->parallel = 1; ve->sub_format = -1; ve->has_user = 0; ve->parallel = 1; ve->param_description = vje_build_param_list( ve->num_params, "Mode" ); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0], 0, "Softburn", "Additive", "Multiply", "Divide", "Lighten", "Difference Negate", "Freeze", "Unfreeze", "Relative Add", "Relative Add Luma", "Max Select", "Min Select", "Experimental" ); return ve; }
vj_effect *colormap_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 255; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->defaults[0] = 46; ve->defaults[1] = 109; ve->defaults[2] = 92; ve->description = "Color mapping"; ve->sub_format = -1; ve->extra_frame = 0; ve->has_user = 0; ve->parallel = 1; ve->param_description = vje_build_param_list( ve->num_params, "Red","Green","Blue" ); return ve; }
vj_effect *contourextract_init(int width, int height) { //int i,j; vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 5; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 255; ve->limits[0][1] = 0; /* reverse */ ve->limits[1][1] = 1; ve->limits[0][2] = 0; /* show thresholded image / contour */ ve->limits[1][2] = 2; ve->limits[0][3] = 1; /* thinning */ ve->limits[1][3] = 100; ve->limits[0][4] = 1; /* minimum blob weight */ ve->limits[1][4] = 5000; ve->defaults[0] = 30; ve->defaults[1] = 0; ve->defaults[2] = 0; ve->defaults[3] = 3; ve->defaults[4] = 200; ve->description = "Contour extraction"; ve->extra_frame = 0; ve->sub_format = 0; ve->has_user = 1; ve->user_data = NULL; ve->param_description = vje_build_param_list( ve->num_params, "Threshold", "Mode", "Show image/contour", "Thinning", "Min weight" ); return ve; }
vj_effect *noisepencil_init(int width , int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->defaults[0] = 0; /* type */ ve->defaults[1] = 1000; ve->defaults[2] = 68; ve->defaults[3] = 110; ve->limits[0][0] = 0; ve->limits[1][0] = 3; ve->limits[0][1] = 1; ve->limits[1][1] = 10000; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->limits[0][3] = 0; ve->limits[1][3] = 255; ve->param_description = vje_build_param_list(ve->num_params, "Mode", "Amplification", "Min Threshold", "Max Threshold"); ve->description = "Noise Pencil"; ve->extra_frame = 0; ve->sub_format = 0; ve->has_user = 0; return ve; }
vj_effect *videowall_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; // selector ve->limits[1][0] = n_pics(w,h); ve->limits[0][1] = 0; ve->limits[1][1] = w; // displacement x ve->limits[0][2] = 0; ve->limits[1][2] = h; // displacement y ve->limits[0][3] = 0; ve->limits[1][3] = 1; // lock update of x,y in offset[selector] ve->defaults[0] = 0; ve->defaults[1] = 1; ve->defaults[2] = 1; ve->defaults[3] = 0; ve->description = "VideoWall / Tile Placement"; ve->sub_format = 1; // todo: optimize to work in 4:2:0/4:2:2, see also photo/video play.c ve->extra_frame = 1; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Photos","X Displacement", "Y displacement", "Lock update"); return ve; }
vj_effect *constantblend_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 31; ve->limits[0][1] = 1; // scale from 0.0 to 5.0 (only luma) ve->limits[1][1] = 500; ve->limits[0][2] = pixel_Y_lo_; ve->limits[1][2] = pixel_Y_hi_; ve->defaults[0] = 1; // blend type (additive) ve->defaults[1] = 110; // scale before blend ve->defaults[2] = 16; // constant Y ve->description = "Constant Luminance Blend"; ve->parallel = 1; ve->sub_format = 0; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Mode", "Threshold", "Constant" ); return ve; }
vj_effect *bar_init(int width, int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 5; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *)vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 4; ve->defaults[1] = 1; ve->defaults[2] = 3; ve->defaults[3] = 0; ve->defaults[4] = 0; ve->limits[0][0] = 1; ve->limits[1][0] = height; ve->sub_format = 1; ve->limits[0][1] = 0; ve->limits[1][1] = height; ve->limits[0][2] = 0; ve->limits[1][2] = height; ve->limits[0][3] = 0; ve->limits[1][3] = height; ve->limits[0][4] = 0; ve->limits[1][4] = height; ve->description = "Horizontal Sliding Bars"; ve->extra_frame = 1; ve->has_user = 0; ve->param_description = vje_build_param_list(ve->num_params, "Divider", "Top Y", "Bot Y", "Top X", "Bot X"); return ve; }
vj_effect *toalpha_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 1; ve->description = "Alpha: Set from Image"; ve->sub_format = -1; ve->extra_frame = 0; ve->parallel = 1; ve->has_user = 0; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 1; ve->defaults[0] = !yuv_use_auto_ccir_jpeg(); ve->param_description = vje_build_param_list( ve->num_params, "Scale Luminance to range 0-255 (1=on)" ); ve->alpha = FLAG_ALPHA_OUT; __init_lookup_table( __lookup_table, 256, 16.0f, 235.0f, 0, 255 ); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0], 0, "Verbatim", "Full range" ); return ve; }
vj_effect *tripplicity_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 255; // opacity Y ve->limits[0][1] = 0; ve->limits[1][1] = 255; // opacity Cb ve->limits[0][2] = 0; ve->limits[1][2] = 255; // opacity Cr ve->defaults[0] = 150; ve->defaults[1] = 150; ve->defaults[2] = 150; ve->description = "Normal Overlay (per Channel)"; ve->sub_format = 0; ve->extra_frame = 1; ve->has_user = 0; ve->parallel = 1; ve->param_description = vje_build_param_list( ve->num_params, "Opacity Y", "Opacity Cb", "Opacity Cr" ); return ve; }
vj_effect *mtracer_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 2; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 32; ve->limits[0][1] = 1; ve->limits[1][1] = 25; ve->defaults[0] = 150; ve->defaults[1] = 8; ve->description = "Magic Tracer"; ve->sub_format = -1; ve->extra_frame = 1; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Mode", "Length"); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0], 0, "Additive", "Subtractive","Multiply","Divide","Lighten","Hardlight", "Difference","Difference Negate","Exclusive","Base","Freeze", "Unfreeze","Relative Add","Relative Subtract","Max select", "Min select", "Relative Luma Add", "Relative Luma Subtract", "Min Subselect", "Max Subselect", "Add Subselect", "Add Average", "Experimental 1","Experimental 2", "Experimental 3", "Multisub", "Softburn", "Inverse Burn", "Dodge", "Distorted Add", "Distorted Subtract", "Experimental 4", "Negation Divide"); return ve; }
vj_effect *average_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 2; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 1; ve->limits[1][0] = 1000; ve->limits[0][1] = 0; ve->limits[1][1] = 1; ve->defaults[0] = 1; ve->defaults[1] = 0; ve->parallel = 0; //@ cannot run in parallel ve->description = "Average"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Number of frames to average", "Mode"); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][1], 1, "Running Average", "Average" ); return ve; }
vj_effect *transline_init(int width, int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 150; /* opacity */ ve->defaults[1] = 10; /* line width */ ve->defaults[2] = 3; /* distance */ ve->defaults[3] = 0; /* type */ ve->limits[0][0] = 0; ve->limits[1][0] = 255; ve->limits[0][1] = 1; ve->limits[1][1] = width; ve->limits[0][2] = 2; ve->limits[1][2] = width; ve->limits[0][3] = 0; ve->limits[1][3] = 1; ve->sub_format = 1; ve->description = "Transition Line"; ve->extra_frame = 1; ve->has_user = 0; ve->param_description = vje_build_param_list(ve->num_params, "Opacity", "Line width", "Distance" , "Mode"); return ve; }
vj_effect *zoom_init(int width , int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = width/2; ve->defaults[1] = height/2; ve->defaults[2] = 50; ve->defaults[3] = 1; ve->limits[0][0] = 0; ve->limits[1][0] = width; ve->limits[0][1] = 0; ve->limits[1][1] = height; ve->limits[0][2] = 10; ve->limits[1][2] = 100; ve->limits[0][3] = 0; ve->limits[1][3] = 1; ve->description = "Zoom"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Width", "Height", "Factor", "Mode" ); return ve; }
vj_effect *autoeq_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 1; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->defaults[0] = 0; // y only, v only, u only, all ve->defaults[1] = 200; // intensity ve->defaults[2] = 132; // strength ve->description = "Automatic Histogram Equalizer"; ve->sub_format = 0; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Channel (Y,U,V,All)","Intensity","Strength"); return ve; }
vj_effect *cutstop_init(int width , int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 40; // treshold ve->defaults[1] = 50; // hold frame freq ve->defaults[2] = 0; // cut mode ve->defaults[3] = 0; // hold front/back ve->limits[0][0] = 0; ve->limits[1][0] = 255; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 1; ve->limits[0][3] = 0; ve->limits[1][3] = 1; ve->description = "vvCutStop"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Threshold", "Frame freq", "Cut mode", "Hold front/back" ); frq_cnt = 256; return ve; }
vj_effect *neighbours3_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 2; ve->limits[1][0] = 32; /* line size */ ve->limits[0][1] = 1; ve->limits[1][1] = 255; /* smoothness */ ve->limits[0][2] = 0; /* luma only / include chroma */ ve->limits[1][2] = 1; ve->defaults[0] = 9; ve->defaults[1] = 7; ve->defaults[2] = 1; ve->description = "ZArtistic Filter (Horizontal strokes)"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Line size", "Smoothness", "Mode (Luma/Chroma)" ); return ve; }
static int prepare_filmstrip(int film_length, int w, int h) { int i,j; int picture_width = w / sqrt(film_length); int picture_height = h / sqrt(film_length); photo_list = (picture_t**) vj_calloc(sizeof(picture_t*) * (film_length + 1) ); if(!photo_list) return 0; rt = (int*) vj_calloc(sizeof(int) * film_length ); if(!rt) return 0; num_photos = film_length; for ( i = 0; i < num_photos; i ++ ) { photo_list[i] = vj_malloc(sizeof(picture_t)); if(!photo_list[i]) return 0; photo_list[i]->w = picture_width; photo_list[i]->h = picture_height; for( j = 0; j < 3; j ++ ) { photo_list[i]->data[j] = vj_malloc(sizeof(uint8_t) * picture_width * picture_height ); if(!photo_list[i]->data[j]) return 0; veejay_memset(photo_list[i]->data[j], (j==0 ? pixel_Y_lo_ : 128), picture_width *picture_height ); } } frame_counter = 0; return 1; }
vj_effect *magicmirror_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = w/4; ve->defaults[1] = h/4; ve->defaults[2] = 20; ve->defaults[3] = 20; ve->limits[0][0] = 0; ve->limits[1][0] = w/2; ve->limits[0][1] = 0; ve->limits[1][1] = h/2; ve->limits[0][2] = 0; ve->limits[1][2] = 100; ve->limits[0][3] = 0; ve->limits[1][3] = 100; ve->sub_format = 1; ve->description = "Magic Mirror Surface"; ve->has_user =0; ve->extra_frame = 0; ve->param_description = vje_build_param_list(ve->num_params, "X", "Y", "X","Y" ); return ve; }
vj_effect *rgbchannel_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 1; ve->limits[0][1] = 0; ve->limits[1][1] = 1; ve->limits[0][2] = 0; ve->limits[1][2] = 1; ve->defaults[0] = 0; ve->defaults[0] = 0; ve->defaults[0] = 0; ve->description = "RGB Channel"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->rgba_only = 1; ve->parallel = 1; ve->param_description = vje_build_param_list(ve->num_params, "Red", "Green", "Blue"); return ve; }
int magicmirror_malloc(int w, int h) { int i ; for( i = 0; i < 3 ;i ++ ) { magicmirrorbuf[i] = (uint8_t*)vj_malloc(sizeof(uint8_t) * RUP8(w*h)); if(!magicmirrorbuf[i]) return 0; } funhouse_x = (double*)vj_calloc(sizeof(double) * w ); if(!funhouse_x) return 0; cache_x = (unsigned int *)vj_calloc(sizeof(unsigned int)*w); if(!cache_x) return 0; funhouse_y = (double*)vj_calloc(sizeof(double) * h ); if(!funhouse_y) return 0; cache_y = (unsigned int*)vj_calloc(sizeof(unsigned int)*h); if(!cache_y) return 0; veejay_memset(cache_x,0,w); veejay_memset(cache_y,0,h); n__ =0; N__ =0; return 1; }
vj_effect *autoeq_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; ve->limits[1][0] = 1; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->defaults[0] = 0; // show histogram ve->defaults[1] = 200; // intensity ve->defaults[2] = 132; // strength ve->description = "Automatic Histogram Equalizer"; ve->sub_format = 0; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Mode","Intensity","Strength"); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0],0, "Show Histogram", "Equalize Frame" ); return ve; }
vj_effect *raster_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 2; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 4; ve->limits[1][0] = h/4; ve->limits[0][1] = 0; ve->limits[1][1] = 1; ve->defaults[0] = 4; ve->defaults[1] = 1; ve->description = "Grid"; ve->sub_format = 0; ve->extra_frame = 0; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Grid size", "Mode"); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][1], 1,"Black", "White" ); return ve; }
vj_effect *fibdownscale_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 2; ve->description = "Fibonacci Downscaler"; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 0; ve->defaults[1] = 1; ve->limits[0][0] = 0; ve->limits[0][1] = 1; ve->limits[1][0] = 1; ve->limits[1][1] = 8; ve->sub_format = -1; ve->extra_frame = 0; ve->param_description = vje_build_param_list( ve->num_params, "Mode", "Fib" ); ve->has_user = 0; ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints,ve->limits[0][1],0, "Down", "Rectangle" ); return ve; }
int chameleon_malloc(int w, int h) { int i; for( i = 0; i < 3; i ++ ) { bgimage[i] = vj_malloc(sizeof(uint8_t) * RUP8(w * h) + RUP8(w*2) ); tmpimage[i] = vj_malloc(sizeof(uint8_t) * RUP8(w * h) ); } vj_frame_clear1( bgimage[0], pixel_Y_lo_, RUP8(w*h)); vj_frame_clear1( tmpimage[0], pixel_Y_lo_, RUP8(w*h)); for( i = 1; i < 3; i ++ ) { vj_frame_clear1( bgimage[i], 128, RUP8(w*h)); vj_frame_clear1( tmpimage[i], 128, RUP8(w*h)); } sum = (int32_t*) vj_calloc( RUP8(w * h) * sizeof(int32_t)); timebuffer = (uint8_t*) vj_calloc( RUP8(w * h) * PLANES ); has_bg = 0; plane = 0; N__ = 0; n__ = 0; last_mode_ = -1; return 1; }
vj_effect *greyselect_init(int w, int h) { vj_effect *ve; ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 4500; /* angle */ ve->defaults[1] = 255; /* r */ ve->defaults[2] = 0; /* g */ ve->defaults[3] = 0; /* b */ ve->limits[0][0] = 1; ve->limits[1][0] = 9000; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->limits[0][3] = 0; ve->limits[1][3] = 255; ve->has_user = 0; ve->parallel = 1; ve->description = "Grayscale by Color Key (RGB)"; ve->extra_frame = 0; ve->sub_format = 1; ve->rgb_conv = 1; ve->param_description = vje_build_param_list(ve->num_params,"Angle","Red","Green","Blue"); return ve; }
vj_effect *contrast_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); ve->defaults[0] = 2; /* type */ ve->defaults[1] = 125; ve->defaults[2] = 200; ve->limits[0][0] = 0; ve->limits[1][0] = 2; ve->limits[0][1] = 0; ve->limits[1][1] = 255; ve->limits[0][2] = 0; ve->limits[1][2] = 255; ve->parallel = 1; ve->description = "Contrast"; ve->has_user = 0; ve->parallel = 1; ve->extra_frame = 0; ve->sub_format = -1; ve->param_description = vje_build_param_list( ve->num_params, "Mode", "Luma", "Chroma" ); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0], 0, "Luma Only", "Chroma Only" ,"All Channels" ); return ve; }
vj_effect *radcor_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 1; ve->limits[1][0] = 1000; ve->limits[0][1] = 1; ve->limits[1][1] = 1000; ve->limits[0][2] = 0; ve->limits[1][2] = 1; ve->limits[0][1] = 0; ve->limits[1][1] = 1; ve->defaults[0] = 10; ve->defaults[1] = 40; ve->defaults[2] = 0; ve->description = "Lens correction"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->alpha = FLAG_ALPHA_OPTIONAL | FLAG_ALPHA_OUT; ve->param_description = vje_build_param_list( ve->num_params, "Alpha X", "Alpha Y", "Direction", "Update Alpha"); return ve; }
vj_effect *slidingdoor_init(int width, int height) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 1; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 0; ve->limits[0][0] = 0; ve->limits[1][0] = 7; ve->sub_format = 1; ve->parallel = 1; ve->description = "Channel Overlay"; ve->extra_frame = 1; ve->has_user = 0; ve->param_description = vje_build_param_list( ve->num_params, "Operator" ); ve->hints = vje_init_value_hint_list( ve->num_params ); vje_build_value_hint_list( ve->hints, ve->limits[1][0],0, "Luminance B", "Negative Luminance B", "Chroma Blue B", "Negative Chroma Blue B", "Chroma Red B", "Negative Chroma Red B", "Alpha B", "Negative Alpha B" ); return ve; }
vj_effect *fadecolor_init(int w,int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 4; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->defaults[0] = 255; ve->defaults[1] = VJ_EFFECT_COLOR_BLACK; ve->defaults[2] = 15; ve->defaults[3] = 1; ve->sub_format = 0; ve->limits[0][0] = 1; ve->limits[1][0] = 255; ve->limits[0][1] = 0; ve->limits[1][1] = 7; ve->limits[0][2] = 1; ve->limits[1][2] = (120 * 25); ve->limits[0][3] = 0; ve->limits[1][3] = 1; ve->has_user = 0; ve->description = "Transition Fade to Color"; ve->extra_frame = 0; ve->param_description = vje_build_param_list(ve->num_params, "Opacity", "Color", "Frame length", "Mode" ); return ve; }
vj_effect *colmorphology_init(int w, int h) { vj_effect *ve = (vj_effect *) vj_calloc(sizeof(vj_effect)); ve->num_params = 3; ve->defaults = (int *) vj_calloc(sizeof(int) * ve->num_params); /* default values */ ve->limits[0] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* min */ ve->limits[1] = (int *) vj_calloc(sizeof(int) * ve->num_params); /* max */ ve->limits[0][0] = 0; // threshold ve->limits[1][0] = 255; ve->limits[0][1] = 0; // morpology operator (dilate,erode, ... ) ve->limits[1][1] = 8; ve->limits[0][2] = 0; ve->limits[1][2] = 1; // type ve->defaults[0] = 140; ve->defaults[1] = 1; ve->defaults[2] = 0; ve->description = "Colored Morphology"; ve->sub_format = 1; ve->extra_frame = 0; ve->has_user = 0; ve->parallel = 0; ve->param_description = vje_build_param_list( ve->num_params, "Threshold","Kernel", "Dilate or Erode"); return ve; }