Refreshed patches (and removed those applied upstream)
IOhannes m zmölnig
9 years ago
| 0 | Author: Janne Liljeblad <janne.liljeblad@gmail.com> | |
| 1 | Last-Update: 2013-03-05 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=852a4ac | |
| 4 | Description: Add transparent background option to vectorscope | |
| 5 | ||
| 6 | --- | |
| 7 | src/filter/vectorscope/vectorscope.c | 105 ++++++++++++++++++++++++++++------- | |
| 8 | 1 file changed, 84 insertions(+), 21 deletions(-) | |
| 9 | ||
| 10 | diff --git a/src/filter/vectorscope/vectorscope.c b/src/filter/vectorscope/vectorscope.c | |
| 11 | index fd28313..e984534 100644 | |
| 12 | --- a/src/filter/vectorscope/vectorscope.c | |
| 13 | +++ b/src/filter/vectorscope/vectorscope.c | |
| 14 | @@ -57,6 +57,8 @@ typedef struct vectorscope_instance { | |
| 15 | gavl_video_scaler_t* scope_scaler; | |
| 16 | gavl_video_frame_t* scope_frame_src; | |
| 17 | gavl_video_frame_t* scope_frame_dst; | |
| 18 | + double mix; | |
| 19 | + double overlay_sides; | |
| 20 | } vectorscope_instance_t; | |
| 21 | ||
| 22 | int f0r_init() | |
| 23 | @@ -74,14 +76,26 @@ void f0r_get_plugin_info( f0r_plugin_info_t* info ) | |
| 24 | info->color_model = F0R_COLOR_MODEL_RGBA8888; | |
| 25 | info->frei0r_version = FREI0R_MAJOR_VERSION; | |
| 26 | info->major_version = 0; | |
| 27 | - info->minor_version = 1; | |
| 28 | - info->num_params = 0; | |
| 29 | + info->minor_version = 2; | |
| 30 | + info->num_params = 2; | |
| 31 | info->explanation = "Displays the vectorscope of the video-data"; | |
| 32 | } | |
| 33 | ||
| 34 | void f0r_get_param_info( f0r_param_info_t* info, int param_index ) | |
| 35 | { | |
| 36 | - /* empty */ | |
| 37 | + switch(param_index) | |
| 38 | + { | |
| 39 | + case 0: | |
| 40 | + info->name = "mix"; | |
| 41 | + info->type = F0R_PARAM_DOUBLE; | |
| 42 | + info->explanation = "The amount of source image mixed into background of display"; | |
| 43 | + break; | |
| 44 | + case 1: | |
| 45 | + info->name = "overlay sides"; | |
| 46 | + info->type = F0R_PARAM_BOOL; | |
| 47 | + info->explanation = "If false, the sides of image are shown without overlay"; | |
| 48 | + break; | |
| 49 | + } | |
| 50 | } | |
| 51 | ||
| 52 | f0r_instance_t f0r_construct(unsigned int width, unsigned int height) | |
| 53 | @@ -94,6 +108,9 @@ f0r_instance_t f0r_construct(unsigned int width, unsigned int height) | |
| 54 | return NULL; | |
| 55 | } | |
| 56 | ||
| 57 | + inst->mix = 0.0; | |
| 58 | + inst->overlay_sides = 1.0; | |
| 59 | + | |
| 60 | inst->scala = (unsigned char*)malloc( width * height * 4 ); | |
| 61 | ||
| 62 | gavl_video_scaler_t* video_scaler; | |
| 63 | @@ -232,13 +249,35 @@ void f0r_destruct(f0r_instance_t instance) | |
| 64 | } | |
| 65 | ||
| 66 | void f0r_get_param_value(f0r_instance_t instance, f0r_param_t param, int param_index) | |
| 67 | -{ | |
| 68 | - /* empty */ | |
| 69 | +{ | |
| 70 | + assert(instance); | |
| 71 | + vectorscope_instance_t* inst = (vectorscope_instance_t*)instance; | |
| 72 | + | |
| 73 | + switch(param_index) | |
| 74 | + { | |
| 75 | + case 0: | |
| 76 | + *((double *)param) = inst->mix; | |
| 77 | + break; | |
| 78 | + case 1: | |
| 79 | + *((double *)param) = inst->overlay_sides; | |
| 80 | + break; | |
| 81 | + } | |
| 82 | } | |
| 83 | ||
| 84 | void f0r_set_param_value(f0r_instance_t instance, f0r_param_t param, int param_index) | |
| 85 | -{ | |
| 86 | - /* empty */ | |
| 87 | +{ | |
| 88 | + assert(instance); | |
| 89 | + vectorscope_instance_t* inst = (vectorscope_instance_t*)instance; | |
| 90 | + | |
| 91 | + switch(param_index) | |
| 92 | + { | |
| 93 | + case 0: | |
| 94 | + inst->mix = *((double *)param); | |
| 95 | + break; | |
| 96 | + case 1: | |
| 97 | + inst->overlay_sides = *((double *)param); | |
| 98 | + break; | |
| 99 | + } | |
| 100 | } | |
| 101 | ||
| 102 | /* RGB to YCbCr range 0-255 */ | |
| 103 | @@ -257,7 +296,8 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 104 | vectorscope_instance_t* inst = (vectorscope_instance_t*)instance; | |
| 105 | ||
| 106 | int width = inst->w; | |
| 107 | - int height = inst->h; | |
| 108 | + int height = inst->h; | |
| 109 | + double mix = inst->mix; | |
| 110 | int len = inst->w * inst->h; | |
| 111 | int scope_len = SCOPE_WIDTH * SCOPE_HEIGHT; | |
| 112 | ||
| 113 | @@ -276,9 +316,17 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 114 | src_end = src + len; | |
| 115 | scope_end = scope + scope_len; | |
| 116 | ||
| 117 | - while ( dst < dst_end ) { | |
| 118 | - *(dst++) = 0xFF000000; | |
| 119 | - } | |
| 120 | + if ( inst->overlay_sides > 0.5) { | |
| 121 | + while ( dst < dst_end ) { | |
| 122 | + *(dst++) = 0xFF000000; | |
| 123 | + } | |
| 124 | + } else { | |
| 125 | + while ( dst < dst_end ) { | |
| 126 | + *(dst++) = *(src++); | |
| 127 | + } | |
| 128 | + src -= len; | |
| 129 | + } | |
| 130 | + | |
| 131 | dst = outframe; | |
| 132 | while ( scope < scope_end ) { | |
| 133 | *(scope++) = 0xFF000000; | |
| 134 | @@ -293,7 +341,6 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 135 | YCbCr = rgb_to_YCbCr(rgb); | |
| 136 | x = YCbCr.Cb; | |
| 137 | y = 255-YCbCr.Cr; | |
| 138 | - //printf ("Cb: %d, Cr: %d\n", x, y ); | |
| 139 | if ( x >= 0 && x < SCOPE_WIDTH && y >= 0 && y < SCOPE_HEIGHT ) { | |
| 140 | pixel = (uint8_t*)&scope[x+SCOPE_WIDTH*y]; | |
| 141 | if ( pixel[0] < 255 ) { | |
| 142 | @@ -301,7 +348,6 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 143 | pixel[1]++; | |
| 144 | pixel[2]++; | |
| 145 | } | |
| 146 | - //dst[x+width*y] += 1;//0xFFFFFFFF; | |
| 147 | } | |
| 148 | } | |
| 149 | ||
| 150 | @@ -310,17 +356,34 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 151 | ||
| 152 | gavl_video_scaler_scale( inst->scope_scaler, inst->scope_frame_src, inst->scope_frame_dst ); | |
| 153 | ||
| 154 | - unsigned char *scala8, *dst8, *dst8_end; | |
| 155 | + unsigned char *scala8, *dst8, *dst8_end, *src8; | |
| 156 | ||
| 157 | scala8 = inst->scala; | |
| 158 | + src8 = (unsigned char*)inframe; | |
| 159 | dst8 = (unsigned char*)outframe; | |
| 160 | dst8_end = dst8 + ( len * 4 ); | |
| 161 | - while ( dst8 < dst8_end ) { | |
| 162 | - dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 163 | - dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 164 | - dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 165 | - scala8 += 4; | |
| 166 | - dst8 += 4; | |
| 167 | - } | |
| 168 | + if (mix > 0.001 ) { // to not lose performance for non-mixing users | |
| 169 | + while ( dst8 < dst8_end ) { | |
| 170 | + dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 171 | + dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 172 | + dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 173 | + if (dst8[0] == 0) { | |
| 174 | + dst8[0] = src8[0] * mix; | |
| 175 | + dst8[1] = src8[1] * mix; | |
| 176 | + dst8[2] = src8[2] * mix; | |
| 177 | + } | |
| 178 | + scala8 += 4; | |
| 179 | + dst8 += 4; | |
| 180 | + src8 += 4; | |
| 181 | + } | |
| 182 | + } else { | |
| 183 | + while ( dst8 < dst8_end ) { | |
| 184 | + dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 185 | + dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 186 | + dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 187 | + scala8 += 4; | |
| 188 | + dst8 += 4; | |
| 189 | + } | |
| 190 | + } | |
| 191 | } | |
| 192 | ||
| 193 | -- | |
| 194 | 2.0.0.rc2 | |
| 195 |
| 0 | Author: Janne Liljeblad <janne.liljeblad@gmail.com> | |
| 1 | Last-Update: 2013-03-05 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=d67548e | |
| 4 | Description: Add transparent background option to rgbparade | |
| 5 | ||
| 6 | --- | |
| 7 | src/filter/rgbparade/rgbparade.c | 105 ++++++++++++++++++++++++++++++++------- | |
| 8 | 1 file changed, 88 insertions(+), 17 deletions(-) | |
| 9 | ||
| 10 | diff --git a/src/filter/rgbparade/rgbparade.c b/src/filter/rgbparade/rgbparade.c | |
| 11 | index 66bde18..b97aa64 100644 | |
| 12 | --- a/src/filter/rgbparade/rgbparade.c | |
| 13 | +++ b/src/filter/rgbparade/rgbparade.c | |
| 14 | @@ -45,6 +45,8 @@ typedef struct rgbparade { | |
| 15 | gavl_video_scaler_t* parade_scaler; | |
| 16 | gavl_video_frame_t* parade_frame_src; | |
| 17 | gavl_video_frame_t* parade_frame_dst; | |
| 18 | + double mix; | |
| 19 | + double overlay_sides; | |
| 20 | } rgbparade_t; | |
| 21 | ||
| 22 | int f0r_init() | |
| 23 | @@ -62,13 +64,27 @@ void f0r_get_plugin_info( f0r_plugin_info_t* info ) | |
| 24 | info->color_model = F0R_COLOR_MODEL_RGBA8888; | |
| 25 | info->frei0r_version = FREI0R_MAJOR_VERSION; | |
| 26 | info->major_version = 0; | |
| 27 | - info->minor_version = 1; | |
| 28 | - info->num_params = 0; | |
| 29 | + info->minor_version = 2; | |
| 30 | + info->num_params = 2; | |
| 31 | info->explanation = "Displays a histogram of R, G and B of the video-data"; | |
| 32 | } | |
| 33 | ||
| 34 | void f0r_get_param_info( f0r_param_info_t* info, int param_index ) | |
| 35 | -{ /* empty */ } | |
| 36 | +{ | |
| 37 | + switch(param_index) | |
| 38 | + { | |
| 39 | + case 0: | |
| 40 | + info->name = "mix"; | |
| 41 | + info->type = F0R_PARAM_DOUBLE; | |
| 42 | + info->explanation = "The amount of source image mixed into background of display"; | |
| 43 | + break; | |
| 44 | + case 1: | |
| 45 | + info->name = "overlay sides"; | |
| 46 | + info->type = F0R_PARAM_BOOL; | |
| 47 | + info->explanation = "If false, the sides of image are shown without overlay"; | |
| 48 | + break; | |
| 49 | + } | |
| 50 | +} | |
| 51 | ||
| 52 | f0r_instance_t f0r_construct(unsigned int width, unsigned int height) | |
| 53 | { | |
| 54 | @@ -76,6 +92,9 @@ f0r_instance_t f0r_construct(unsigned int width, unsigned int height) | |
| 55 | inst->w = width; | |
| 56 | inst->h = height; | |
| 57 | ||
| 58 | + inst->mix = 0.0; | |
| 59 | + inst->overlay_sides = 1.0; | |
| 60 | + | |
| 61 | inst->scala = (unsigned char*)malloc( width * height * 4 ); | |
| 62 | ||
| 63 | gavl_video_scaler_t* video_scaler; | |
| 64 | @@ -196,10 +215,36 @@ void f0r_destruct(f0r_instance_t instance) | |
| 65 | } | |
| 66 | ||
| 67 | void f0r_get_param_value(f0r_instance_t instance, f0r_param_t param, int param_index) | |
| 68 | -{ /* empty */ } | |
| 69 | +{ | |
| 70 | + assert(instance); | |
| 71 | + rgbparade_t* inst = (rgbparade_t*)instance; | |
| 72 | + | |
| 73 | + switch(param_index) | |
| 74 | + { | |
| 75 | + case 0: | |
| 76 | + *((double *)param) = inst->mix; | |
| 77 | + break; | |
| 78 | + case 1: | |
| 79 | + *((double *)param) = inst->overlay_sides; | |
| 80 | + break; | |
| 81 | + } | |
| 82 | +} | |
| 83 | ||
| 84 | void f0r_set_param_value(f0r_instance_t instance, f0r_param_t param, int param_index) | |
| 85 | -{ /* empty */ } | |
| 86 | +{ | |
| 87 | + assert(instance); | |
| 88 | + rgbparade_t* inst = (rgbparade_t*)instance; | |
| 89 | + | |
| 90 | + switch(param_index) | |
| 91 | + { | |
| 92 | + case 0: | |
| 93 | + inst->mix = *((double *)param); | |
| 94 | + break; | |
| 95 | + case 1: | |
| 96 | + inst->overlay_sides = *((double *)param); | |
| 97 | + break; | |
| 98 | + } | |
| 99 | +} | |
| 100 | ||
| 101 | void draw_grid(unsigned char* scope, double width, double height) | |
| 102 | { | |
| 103 | @@ -230,7 +275,8 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 104 | rgbparade_t* inst = (rgbparade_t*)instance; | |
| 105 | ||
| 106 | int width = inst->w; | |
| 107 | - int height = inst->h; | |
| 108 | + int height = inst->h; | |
| 109 | + double mix = inst->mix; | |
| 110 | int len = inst->w * inst->h; | |
| 111 | int parade_len = width * PARADE_HEIGHT; | |
| 112 | ||
| 113 | @@ -250,9 +296,17 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 114 | src_end = src + len; | |
| 115 | parade_end = parade + parade_len; | |
| 116 | ||
| 117 | - while ( dst < dst_end ) { | |
| 118 | - *(dst++) = 0xFF000000; | |
| 119 | - } | |
| 120 | + if ( inst->overlay_sides > 0.5) { | |
| 121 | + while ( dst < dst_end ) { | |
| 122 | + *(dst++) = 0xFF000000; | |
| 123 | + } | |
| 124 | + } else { | |
| 125 | + while ( dst < dst_end ) { | |
| 126 | + *(dst++) = *(src++); | |
| 127 | + } | |
| 128 | + src -= len; | |
| 129 | + } | |
| 130 | + | |
| 131 | dst = outframe; | |
| 132 | while ( parade < parade_end ) { | |
| 133 | *(parade++) = 0xFF000000; | |
| 134 | @@ -291,17 +345,34 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u | |
| 135 | ||
| 136 | gavl_video_scaler_scale( inst->parade_scaler, inst->parade_frame_src, inst->parade_frame_dst ); | |
| 137 | ||
| 138 | - unsigned char *scala8, *dst8, *dst8_end; | |
| 139 | + unsigned char *scala8, *dst8, *dst8_end, *src8; | |
| 140 | ||
| 141 | scala8 = inst->scala; | |
| 142 | + src8 = (unsigned char*)inframe; | |
| 143 | dst8 = (unsigned char*)outframe; | |
| 144 | dst8_end = dst8 + ( len * 4 ); | |
| 145 | - while ( dst8 < dst8_end ) { | |
| 146 | - dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 147 | - dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 148 | - dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 149 | - scala8 += 4; | |
| 150 | - dst8 += 4; | |
| 151 | - } | |
| 152 | + if (mix > 0.001 ) { // to not lose performance for non-mixing users | |
| 153 | + while ( dst8 < dst8_end ) { | |
| 154 | + dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 155 | + dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 156 | + dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 157 | + if (dst8[0] == 0 && dst8[1] == 0 && dst8[2] == 0){ | |
| 158 | + dst8[0] = src8[0] * mix; | |
| 159 | + dst8[1] = src8[1] * mix; | |
| 160 | + dst8[2] = src8[2] * mix; | |
| 161 | + } | |
| 162 | + scala8 += 4; | |
| 163 | + dst8 += 4; | |
| 164 | + src8 += 4; | |
| 165 | + } | |
| 166 | + } else { | |
| 167 | + while ( dst8 < dst8_end ) { | |
| 168 | + dst8[0] = ( ( ( scala8[0] - dst8[0] ) * 255 * scala8[3] ) >> 16 ) + dst8[0]; | |
| 169 | + dst8[1] = ( ( ( scala8[1] - dst8[1] ) * 255 * scala8[3] ) >> 16 ) + dst8[1]; | |
| 170 | + dst8[2] = ( ( ( scala8[2] - dst8[2] ) * 255 * scala8[3] ) >> 16 ) + dst8[2]; | |
| 171 | + scala8 += 4; | |
| 172 | + dst8 += 4; | |
| 173 | + } | |
| 174 | + } | |
| 175 | } | |
| 176 | ||
| 177 | -- | |
| 178 | 2.0.0.rc2 | |
| 179 |
| 0 | Author: Dan Dennedy <dan@dennedy.org> | |
| 1 | Last-Update: 2013-03-14 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=5b70863 | |
| 4 | Description: Fix version in autoconf. | |
| 5 | ||
| 6 | --- | |
| 7 | configure.ac | 2 +- | |
| 8 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
| 9 | ||
| 10 | diff --git a/configure.ac b/configure.ac | |
| 11 | index 1a92ac3..48335d9 100644 | |
| 12 | --- a/configure.ac | |
| 13 | +++ b/configure.ac | |
| 14 | @@ -2,7 +2,7 @@ | |
| 15 | # Process this file with autoconf to produce a configure script. | |
| 16 | ||
| 17 | AC_PREREQ(2.59c) | |
| 18 | -AC_INIT(frei0r-plugins, [1.3.0], [frei0r-devel@piksel.no]) | |
| 19 | +AC_INIT(frei0r-plugins, [1.4.0], [frei0r-devel@piksel.no]) | |
| 20 | AC_CONFIG_MACRO_DIR([m4]) | |
| 21 | ||
| 22 | AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) | |
| 23 | -- | |
| 24 | 2.0.0.rc2 | |
| 25 |
| 0 | Author: Dan Dennedy <dan@dennedy.org> | |
| 1 | Last-Update: 2013-03-14 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=e803035 | |
| 4 | Description: Fix missing string.h include. | |
| 5 | ||
| 6 | --- | |
| 7 | include/frei0r_cairo.h | 1 + | |
| 8 | 1 file changed, 1 insertion(+) | |
| 9 | ||
| 10 | diff --git a/include/frei0r_cairo.h b/include/frei0r_cairo.h | |
| 11 | index 4e545cb..d82e115 100644 | |
| 12 | --- a/include/frei0r_cairo.h | |
| 13 | +++ b/include/frei0r_cairo.h | |
| 14 | @@ -21,6 +21,7 @@ | |
| 15 | ||
| 16 | ||
| 17 | #include <cairo.h> | |
| 18 | +#include <string.h> | |
| 19 | ||
| 20 | /** | |
| 21 | * String identifiers for gradient types available using Cairo. | |
| 22 | -- | |
| 23 | 2.0.0.rc2 | |
| 24 |
| 0 | Author: =?UTF-8?q?Jean-Fran=C3=A7ois=20Fortin=20Tam?= <nekohayo@gmail.com> | |
| 1 | Last-Update: 2013-03-16 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=245bb38 | |
| 4 | Description: Make property names for "pixeliz0r" and "lenscorrection" | |
| 5 | human-readable | |
| 6 | ||
| 7 | --- | |
| 8 | src/filter/lenscorrection/lenscorrection.c | 10 +++++----- | |
| 9 | src/filter/pixeliz0r/pixeliz0r.c | 4 ++-- | |
| 10 | 2 files changed, 7 insertions(+), 7 deletions(-) | |
| 11 | ||
| 12 | diff --git a/src/filter/lenscorrection/lenscorrection.c b/src/filter/lenscorrection/lenscorrection.c | |
| 13 | index 3db5541..85a4a54 100644 | |
| 14 | --- a/src/filter/lenscorrection/lenscorrection.c | |
| 15 | +++ b/src/filter/lenscorrection/lenscorrection.c | |
| 16 | @@ -62,27 +62,27 @@ void f0r_get_param_info(f0r_param_info_t* info, int param_index) | |
| 17 | switch(param_index) | |
| 18 | { | |
| 19 | case 0: | |
| 20 | - info->name = "xcenter"; | |
| 21 | + info->name = "X center"; | |
| 22 | info->type = F0R_PARAM_DOUBLE; | |
| 23 | info->explanation = ""; | |
| 24 | break; | |
| 25 | case 1: | |
| 26 | - info->name = "ycenter"; | |
| 27 | + info->name = "Y center"; | |
| 28 | info->type = F0R_PARAM_DOUBLE; | |
| 29 | info->explanation = ""; | |
| 30 | break; | |
| 31 | case 2: | |
| 32 | - info->name = "correctionnearcenter"; | |
| 33 | + info->name = "Correction near center"; | |
| 34 | info->type = F0R_PARAM_DOUBLE; | |
| 35 | info->explanation = ""; | |
| 36 | break; | |
| 37 | case 3: | |
| 38 | - info->name = "correctionnearedges"; | |
| 39 | + info->name = "Correction near edges"; | |
| 40 | info->type = F0R_PARAM_DOUBLE; | |
| 41 | info->explanation = ""; | |
| 42 | break; | |
| 43 | case 4: | |
| 44 | - info->name = "brightness"; | |
| 45 | + info->name = "Brightness"; | |
| 46 | info->type = F0R_PARAM_DOUBLE; | |
| 47 | info->explanation = ""; | |
| 48 | break; | |
| 49 | diff --git a/src/filter/pixeliz0r/pixeliz0r.c b/src/filter/pixeliz0r/pixeliz0r.c | |
| 50 | index 6baf91b..e13805d 100644 | |
| 51 | --- a/src/filter/pixeliz0r/pixeliz0r.c | |
| 52 | +++ b/src/filter/pixeliz0r/pixeliz0r.c | |
| 53 | @@ -47,12 +47,12 @@ void f0r_get_param_info(f0r_param_info_t* info, int param_index) | |
| 54 | switch(param_index) | |
| 55 | { | |
| 56 | case 0: | |
| 57 | - info->name = "BlockSizeX"; | |
| 58 | + info->name = "Block width"; | |
| 59 | info->type = F0R_PARAM_DOUBLE; | |
| 60 | info->explanation = "Horizontal size of one \"pixel\""; | |
| 61 | break; | |
| 62 | case 1: | |
| 63 | - info->name = "BlockSizeY"; | |
| 64 | + info->name = "Block height"; | |
| 65 | info->type = F0R_PARAM_DOUBLE; | |
| 66 | info->explanation = "Vertical size of one \"pixel\""; | |
| 67 | break; | |
| 68 | -- | |
| 69 | 2.0.0.rc2 | |
| 70 |
| 0 | Author: Marko Cebokli <mc@mcpc14.site> | |
| 1 | Last-Update: 2013-04-15 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=b1faa09 | |
| 4 | Description: Medians: fix indexes in median13 | |
| 5 | ||
| 6 | --- | |
| 7 | src/filter/medians/small_medians.h | 68 +++++++++++++++++++------------------- | |
| 8 | 1 file changed, 34 insertions(+), 34 deletions(-) | |
| 9 | ||
| 10 | diff --git a/src/filter/medians/small_medians.h b/src/filter/medians/small_medians.h | |
| 11 | index bd26d0a..81a6705 100644 | |
| 12 | --- a/src/filter/medians/small_medians.h | |
| 13 | +++ b/src/filter/medians/small_medians.h | |
| 14 | @@ -137,40 +137,40 @@ static inline uint32_t median13(uint32_t *mm) | |
| 15 | { | |
| 16 | uint8_t *m=(uint8_t*)mm; | |
| 17 | // -R- -G- -B- | |
| 18 | - P_SO(m[10],m[3]); P_SO(m[11],m[4]); P_SO(m[12],m[5]); | |
| 19 | - P_SO(m[6],m[10]); P_SO(m[7],m[11]); P_SO(m[8],m[12]); | |
| 20 | - P_SO(m[11],m[1]); P_SO(m[12],m[2]); P_SO(m[13],m[3]); | |
| 21 | - P_SO(m[5],m[4]); P_SO(m[6],m[5]); P_SO(m[7],m[6]); | |
| 22 | - P_SO(m[0],m[8]); P_SO(m[1],m[9]); P_SO(m[2],m[10]); | |
| 23 | - P_SO(m[1],m[3]); P_SO(m[2],m[4]); P_SO(m[3],m[5]); | |
| 24 | - P_SO(m[5],m[0]); P_SO(m[6],m[1]); P_SO(m[7],m[2]); | |
| 25 | - P_SO(m[7],m[1]); P_SO(m[8],m[2]); P_SO(m[9],m[3]); | |
| 26 | - P_SO(m[8],m[10]); P_SO(m[9],m[11]); P_SO(m[10],m[12]); | |
| 27 | - P_SO(m[8],m[12]); P_SO(m[9],m[13]); P_SO(m[10],m[14]); | |
| 28 | - P_SO(m[4],m[12]); P_SO(m[5],m[13]); P_SO(m[6],m[14]); | |
| 29 | - P_SO(m[3],m[12]); P_SO(m[4],m[13]); P_SO(m[5],m[14]); | |
| 30 | - P_SO(m[7],m[11]); P_SO(m[8],m[12]); P_SO(m[9],m[13]); | |
| 31 | - P_SO(m[9],m[2]); P_SO(m[10],m[3]); P_SO(m[11],m[4]); | |
| 32 | - P_SO(m[0],m[2]); P_SO(m[1],m[3]); P_SO(m[2],m[4]); | |
| 33 | - P_SO(m[4],m[1]); P_SO(m[5],m[2]); P_SO(m[6],m[3]); | |
| 34 | - P_SO(m[11],m[0]); P_SO(m[12],m[1]); P_SO(m[13],m[2]); | |
| 35 | - P_SO(m[4],m[9]); P_SO(m[5],m[10]); P_SO(m[6],m[11]); | |
| 36 | - P_MA(m[7],m[5]); P_MA(m[8],m[6]); P_MA(m[9],m[7]); | |
| 37 | - P_MI(m[2],m[1]); P_MI(m[3],m[2]); P_MI(m[4],m[3]); | |
| 38 | - P_MA(m[4],m[6]); P_MA(m[5],m[7]); P_MA(m[6],m[8]); | |
| 39 | - P_SO(m[5],m[9]); P_SO(m[6],m[10]); P_SO(m[7],m[11]); | |
| 40 | - P_SO(m[9],m[0]); P_SO(m[10],m[1]); P_SO(m[11],m[2]); | |
| 41 | - P_MI(m[3],m[0]); P_MI(m[4],m[1]); P_MI(m[5],m[2]); | |
| 42 | - P_MA(m[5],m[6]); P_MA(m[6],m[7]); P_MA(m[7],m[8]); | |
| 43 | - P_SO(m[2],m[3]); P_SO(m[3],m[4]); P_SO(m[4],m[5]); | |
| 44 | - P_MA(m[11],m[6]); P_MA(m[12],m[7]); P_MA(m[13],m[8]); | |
| 45 | - P_SO(m[9],m[2]); P_SO(m[10],m[3]); P_SO(m[11],m[4]); | |
| 46 | - P_MA(m[8],m[9]); P_MA(m[9],m[10]); P_MA(m[10],m[11]); | |
| 47 | - P_MI(m[10],m[2]); P_MI(m[11],m[3]); P_MI(m[12],m[4]); | |
| 48 | - P_SO(m[9],m[10]); P_SO(m[10],m[11]);P_SO(m[11],m[12]); | |
| 49 | - P_MA(m[9],m[6]); P_MA(m[10],m[7]); P_MA(m[11],m[8]); | |
| 50 | - P_MI(m[10],m[3]); P_MI(m[11],m[4]); P_MI(m[12],m[5]); | |
| 51 | - P_MI(m[6],m[10]); P_MI(m[7],m[11]); P_MI(m[8],m[12]); | |
| 52 | + P_SO(m[40],m[12]); P_SO(m[41],m[13]); P_SO(m[42],m[14]); | |
| 53 | + P_SO(m[24],m[40]); P_SO(m[25],m[41]); P_SO(m[26],m[42]); | |
| 54 | + P_SO(m[44],m[4]); P_SO(m[45],m[5]); P_SO(m[46],m[6]); | |
| 55 | + P_SO(m[20],m[16]); P_SO(m[21],m[17]); P_SO(m[22],m[18]); | |
| 56 | + P_SO(m[0],m[32]); P_SO(m[1],m[33]); P_SO(m[2],m[34]); | |
| 57 | + P_SO(m[4],m[12]); P_SO(m[5],m[13]); P_SO(m[6],m[14]); | |
| 58 | + P_SO(m[20],m[0]); P_SO(m[21],m[1]); P_SO(m[22],m[2]); | |
| 59 | + P_SO(m[28],m[4]); P_SO(m[29],m[5]); P_SO(m[30],m[6]); | |
| 60 | + P_SO(m[32],m[40]); P_SO(m[33],m[41]); P_SO(m[34],m[42]); | |
| 61 | + P_SO(m[32],m[48]); P_SO(m[33],m[49]); P_SO(m[34],m[50]); | |
| 62 | + P_SO(m[16],m[48]); P_SO(m[17],m[49]); P_SO(m[18],m[50]); | |
| 63 | + P_SO(m[12],m[48]); P_SO(m[13],m[49]); P_SO(m[14],m[50]); | |
| 64 | + P_SO(m[28],m[44]); P_SO(m[29],m[45]); P_SO(m[30],m[46]); | |
| 65 | + P_SO(m[36],m[8]); P_SO(m[37],m[9]); P_SO(m[38],m[10]); | |
| 66 | + P_SO(m[0],m[8]); P_SO(m[1],m[9]); P_SO(m[2],m[10]); | |
| 67 | + P_SO(m[16],m[4]); P_SO(m[17],m[5]); P_SO(m[18],m[6]); | |
| 68 | + P_SO(m[44],m[0]); P_SO(m[45],m[1]); P_SO(m[46],m[2]); | |
| 69 | + P_SO(m[16],m[36]); P_SO(m[17],m[37]); P_SO(m[18],m[38]); | |
| 70 | + P_MA(m[28],m[20]); P_MA(m[29],m[21]); P_MA(m[30],m[22]); | |
| 71 | + P_MI(m[8],m[4]); P_MI(m[9],m[5]); P_MI(m[10],m[6]); | |
| 72 | + P_MA(m[16],m[24]); P_MA(m[17],m[25]); P_MA(m[18],m[26]); | |
| 73 | + P_SO(m[20],m[36]); P_SO(m[21],m[37]); P_SO(m[22],m[38]); | |
| 74 | + P_SO(m[36],m[0]); P_SO(m[37],m[1]); P_SO(m[38],m[2]); | |
| 75 | + P_MI(m[12],m[0]); P_MI(m[13],m[1]); P_MI(m[14],m[2]); | |
| 76 | + P_MA(m[20],m[24]); P_MA(m[21],m[25]); P_MA(m[22],m[26]); | |
| 77 | + P_SO(m[8],m[12]); P_SO(m[9],m[13]); P_SO(m[10],m[14]); | |
| 78 | + P_MA(m[44],m[24]); P_MA(m[45],m[25]); P_MA(m[46],m[26]); | |
| 79 | + P_SO(m[36],m[8]); P_SO(m[37],m[9]); P_SO(m[38],m[10]); | |
| 80 | + P_MA(m[32],m[36]); P_MA(m[33],m[37]); P_MA(m[34],m[38]); | |
| 81 | + P_MI(m[40],m[8]); P_MI(m[41],m[9]); P_MI(m[42],m[10]); | |
| 82 | + P_SO(m[36],m[40]); P_SO(m[37],m[41]); P_SO(m[38],m[42]); | |
| 83 | + P_MA(m[36],m[24]); P_MA(m[37],m[25]); P_MA(m[38],m[26]); | |
| 84 | + P_MI(m[40],m[12]); P_MI(m[41],m[13]); P_MI(m[42],m[14]); | |
| 85 | + P_MI(m[24],m[40]); P_MI(m[25],m[41]); P_MI(m[26],m[42]); | |
| 86 | return mm[6]; | |
| 87 | } | |
| 88 | ||
| 89 | -- | |
| 90 | 2.0.0.rc2 | |
| 91 |
| 0 | Author: Dan Dennedy <dan@dennedy.org> | |
| 1 | Last-Update: 2014-04-27 | |
| 2 | Forwarded: yes | |
| 3 | Origin: upstream, http://git.dyne.org/frei0r/commit/?id=fc84121 | |
| 4 | Description: Fix array out-of-bounds error in partik0l. | |
| 5 | ||
| 6 | When using rand(), it may make sense to use RAND_MAX. But in a build | |
| 7 | made on MinGW RAND_MAX is equivalent to a SHRT_MAX, which results in | |
| 8 | crashes in blossom_recal() due to accessing the prime array outside of | |
| 9 | its bounds. INT_MAX was chosen because on Linux, RAND_MAX is equivalent | |
| 10 | to INT_MAX, and UINT_MAX gives different results visually. | |
| 11 | --- | |
| 12 | src/generator/partik0l/partik0l.cpp | 15 ++++++++------- | |
| 13 | 1 file changed, 8 insertions(+), 7 deletions(-) | |
| 14 | ||
| 15 | diff --git a/src/generator/partik0l/partik0l.cpp b/src/generator/partik0l/partik0l.cpp | |
| 16 | index 6dd5a8a..87728c7 100644 | |
| 17 | --- a/src/generator/partik0l/partik0l.cpp | |
| 18 | +++ b/src/generator/partik0l/partik0l.cpp | |
| 19 | @@ -38,6 +38,7 @@ | |
| 20 | ||
| 21 | #include <time.h> | |
| 22 | #include <inttypes.h> | |
| 23 | +#include <limits.h> | |
| 24 | ||
| 25 | /* defines for blob size and roundness */ | |
| 26 | #define LIM 8 // 25 | |
| 27 | @@ -185,13 +186,13 @@ void Partik0l::update() { | |
| 28 | ||
| 29 | void Partik0l::blossom_recal(bool r) { | |
| 30 | ||
| 31 | - float z = ((PRIMES-2)*fastrand()/RAND_MAX)+1; | |
| 32 | - blossom_m = 1.0+(30.0)*fastrand()/RAND_MAX; | |
| 33 | - blossom_n = 1.0+(30.0)*fastrand()/RAND_MAX; | |
| 34 | - blossom_i = prime[ (int) (z*fastrand()/RAND_MAX) ]; | |
| 35 | - blossom_j = prime[ (int) (z*fastrand()/RAND_MAX) ]; | |
| 36 | - blossom_k = prime[ (int) (z*fastrand()/RAND_MAX) ]; | |
| 37 | - blossom_l = prime[ (int) (z*fastrand()/RAND_MAX) ]; | |
| 38 | + float z = ((PRIMES-2)*fastrand()/INT_MAX)+1; | |
| 39 | + blossom_m = 1.0+(30.0)*fastrand()/INT_MAX; | |
| 40 | + blossom_n = 1.0+(30.0)*fastrand()/INT_MAX; | |
| 41 | + blossom_i = prime[ (int) (z*fastrand()/INT_MAX) ]; | |
| 42 | + blossom_j = prime[ (int) (z*fastrand()/INT_MAX) ]; | |
| 43 | + blossom_k = prime[ (int) (z*fastrand()/INT_MAX) ]; | |
| 44 | + blossom_l = prime[ (int) (z*fastrand()/INT_MAX) ]; | |
| 45 | wd = (double)w; | |
| 46 | hd = (double)h; | |
| 47 | if(r) | |
| 48 | -- | |
| 49 | 2.0.0.rc2 | |
| 50 |
| 1 | 1 | arguments to AM_INIT_AUTOMAKE have been deprecated. |
| 2 | 2 | see http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation |
| 3 | 3 | Author: IOhannes m zmölnig |
| 4 | Forwarded: https://github.com/dyne/frei0r/pull/5 | |
| 4 | 5 | Last-Update: 2014-05-20 |
| 5 | 6 | --- |
| 6 | 7 | This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ |
| 7 | 8 | --- frei0r.orig/configure.ac |
| 8 | 9 | +++ frei0r/configure.ac |
| 9 | 10 | @@ -5,7 +5,7 @@ |
| 10 | AC_INIT(frei0r-plugins, [1.4.0], [frei0r-devel@piksel.no]) | |
| 11 | AC_INIT(frei0r-plugins, [1.5.0], [frei0r-devel@dyne.org]) | |
| 11 | 12 | AC_CONFIG_MACRO_DIR([m4]) |
| 12 | 13 | |
| 13 | 14 | -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) |
| 0 | 0 | Description: fix install target for doc |
| 1 | 1 | Author: IOhannes m zmölnig <umlaeute@debian.org> |
| 2 | Forwarded: https://github.com/dyne/frei0r/pull/5 | |
| 2 | 3 | Last-Update: 2014-05-20 |
| 3 | 4 | --- |
| 4 | 5 | This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ |