do not overwrite user blur setting on mode change

This commit is contained in:
Ahmet Inan 2015-02-13 17:43:47 +01:00
parent 14a5c7b185
commit ae35d841d3
5 changed files with 12 additions and 10 deletions

View file

@ -23,12 +23,12 @@ limitations under the License.
void incr_blur() void incr_blur()
{ {
blur_power = blur_power < 6 ? blur_power + 1 : blur_power; user_blur = user_blur < 6 ? user_blur + 1 : user_blur;
} }
void decr_blur() void decr_blur()
{ {
blur_power = blur_power >= 0 ? blur_power - 1 : blur_power; user_blur = user_blur >= 0 ? user_blur - 1 : user_blur;
} }
#endif #endif

View file

@ -5,7 +5,7 @@ static uchar value_blur(int pixel, int begin, int end)
int i = p & buffer_mask; int i = p & buffer_mask;
int weight_sum = 0; int weight_sum = 0;
int value_sum = 0; int value_sum = 0;
switch (blur_power) { switch (blur_power + user_blur) {
case 0: case 0:
if ((p-1) < begin || end <= (p+1) || (i-1) < 0 || buffer_length <= (i+1)) { if ((p-1) < begin || end <= (p+1) || (i-1) < 0 || buffer_length <= (i+1)) {
if (begin <= (p-1)) { if (begin <= (p-1)) {
@ -741,6 +741,7 @@ static uchar value_blur(int pixel, int begin, int end)
8 * value_buffer[i+32] + 8 * value_buffer[i+32] +
6 * value_buffer[i+33]) >> 14; 6 * value_buffer[i+33]) >> 14;
case 6: case 6:
default:
if ((p-65) < begin || end <= (p+65) || (i-65) < 0 || buffer_length <= (i+65)) { if ((p-65) < begin || end <= (p+65) || (i-65) < 0 || buffer_length <= (i+65)) {
if (begin <= (p-65)) { if (begin <= (p-65)) {
weight_sum += 3; weight_sum += 3;
@ -1399,8 +1400,6 @@ static uchar value_blur(int pixel, int begin, int end)
4 * value_buffer[i+63] + 4 * value_buffer[i+63] +
3 * value_buffer[i+64] + 3 * value_buffer[i+64] +
3 * value_buffer[i+65]) >> 14; 3 * value_buffer[i+65]) >> 14;
default:
return value_buffer[i];
} }
return 0; return 0;
} }

View file

@ -27,7 +27,7 @@ void toggle_debug() { debug_mode ^= 1; }
void raw_mode() void raw_mode()
{ {
blur_power = -1; blur_power = 0;
*current_mode = mode_raw; *current_mode = mode_raw;
current_decoder = decoder_raw; current_decoder = decoder_raw;
freerun_height = maximum_height; freerun_height = maximum_height;

View file

@ -24,7 +24,7 @@ static int disable_analyzer;
static int automatic_mode_detection; static int automatic_mode_detection;
static int debug_mode; static int debug_mode;
static int current_decoder; static int current_decoder;
static int blur_power, free_running; static int user_blur, blur_power, free_running;
static int sample_rate, sync_pos, prev_sync_pos; static int sample_rate, sync_pos, prev_sync_pos;
static int maximum_variance, maximum_absolute_deviaton; static int maximum_variance, maximum_absolute_deviaton;
static int minimum_sync_length; static int minimum_sync_length;

View file

@ -63,11 +63,14 @@ int main()
printf("\tint i = p & buffer_mask;\n"); printf("\tint i = p & buffer_mask;\n");
printf("\tint weight_sum = 0;\n"); printf("\tint weight_sum = 0;\n");
printf("\tint value_sum = 0;\n"); printf("\tint value_sum = 0;\n");
printf("\tswitch (blur_power) {\n"); printf("\tswitch (blur_power + user_blur) {\n");
for (int i = 0; i < 7; ++i) { int max_power = 6;
for (int i = 0; i <= max_power; ++i) {
printf("\tcase %d:\n", i); printf("\tcase %d:\n", i);
if (i == max_power)
printf("\tdefault:\n");
emit((1 << i) | 1); emit((1 << i) | 1);
} }
printf("\tdefault:\n\t\treturn value_buffer[i];\n\t}\n\treturn 0;\n}\n"); printf("\t}\n\treturn 0;\n}\n");
return 0; return 0;
} }