mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-20 23:00:02 +01:00
Libvje / fix according review
This commit is contained in:
@@ -493,103 +493,70 @@ pix_func_Y get_pix_func_Y(const int pix_type)
|
|||||||
{
|
{
|
||||||
case VJ_EFFECT_BLEND_SWAP:
|
case VJ_EFFECT_BLEND_SWAP:
|
||||||
return &bl_pix_swap_Y;
|
return &bl_pix_swap_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDDISTORT:
|
case VJ_EFFECT_BLEND_ADDDISTORT:
|
||||||
return &bl_pix_add_distorted_Y;
|
return &bl_pix_add_distorted_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_SUBDISTORT:
|
case VJ_EFFECT_BLEND_SUBDISTORT:
|
||||||
return &bl_pix_sub_distorted_Y;
|
return &bl_pix_sub_distorted_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MULTIPLY:
|
case VJ_EFFECT_BLEND_MULTIPLY:
|
||||||
return &bl_pix_multiply_Y;
|
return &bl_pix_multiply_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_DIVIDE:
|
case VJ_EFFECT_BLEND_DIVIDE:
|
||||||
return &bl_pix_divide_Y;
|
return &bl_pix_divide_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDITIVE:
|
case VJ_EFFECT_BLEND_ADDITIVE:
|
||||||
return &bl_pix_additive_Y;
|
return &bl_pix_additive_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_SUBSTRACTIVE:
|
case VJ_EFFECT_BLEND_SUBSTRACTIVE:
|
||||||
return &bl_pix_substract_Y;
|
return &bl_pix_substract_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_SOFTBURN:
|
case VJ_EFFECT_BLEND_SOFTBURN:
|
||||||
return &bl_pix_softburn_Y;
|
return &bl_pix_softburn_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_INVERSEBURN:
|
case VJ_EFFECT_BLEND_INVERSEBURN:
|
||||||
return &bl_pix_inverseburn_Y;
|
return &bl_pix_inverseburn_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_COLORDODGE:
|
case VJ_EFFECT_BLEND_COLORDODGE:
|
||||||
return &bl_pix_colordodge_Y;
|
return &bl_pix_colordodge_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MULSUB:
|
case VJ_EFFECT_BLEND_MULSUB:
|
||||||
return &bl_pix_mulsub_Y;
|
return &bl_pix_mulsub_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_LIGHTEN:
|
case VJ_EFFECT_BLEND_LIGHTEN:
|
||||||
return &bl_pix_lighten_Y;
|
return &bl_pix_lighten_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_DIFFERENCE:
|
case VJ_EFFECT_BLEND_DIFFERENCE:
|
||||||
return &bl_pix_difference_Y;
|
return &bl_pix_difference_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_DIFFNEGATE:
|
case VJ_EFFECT_BLEND_DIFFNEGATE:
|
||||||
return &bl_pix_diffnegate_Y;
|
return &bl_pix_diffnegate_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_EXCLUSIVE:
|
case VJ_EFFECT_BLEND_EXCLUSIVE:
|
||||||
return &bl_pix_exclusive_Y;
|
return &bl_pix_exclusive_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_BASECOLOR:
|
case VJ_EFFECT_BLEND_BASECOLOR:
|
||||||
return &bl_pix_basecolor_Y;
|
return &bl_pix_basecolor_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_FREEZE:
|
case VJ_EFFECT_BLEND_FREEZE:
|
||||||
return &bl_pix_freeze_Y;
|
return &bl_pix_freeze_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_UNFREEZE:
|
case VJ_EFFECT_BLEND_UNFREEZE:
|
||||||
return &bl_pix_unfreeze_Y;
|
return &bl_pix_unfreeze_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_HARDLIGHT:
|
case VJ_EFFECT_BLEND_HARDLIGHT:
|
||||||
return &bl_pix_hardlight_Y;
|
return &bl_pix_hardlight_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_RELADD:
|
case VJ_EFFECT_BLEND_RELADD:
|
||||||
return &bl_pix_relativeadd_Y;
|
return &bl_pix_relativeadd_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_RELSUB:
|
case VJ_EFFECT_BLEND_RELSUB:
|
||||||
return &bl_pix_relativesub_Y;
|
return &bl_pix_relativesub_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MAXSEL:
|
case VJ_EFFECT_BLEND_MAXSEL:
|
||||||
return &bl_pix_maxsel_Y;
|
return &bl_pix_maxsel_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MINSEL:
|
case VJ_EFFECT_BLEND_MINSEL:
|
||||||
return &bl_pix_minsel_Y;
|
return &bl_pix_minsel_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_RELADDLUM:
|
case VJ_EFFECT_BLEND_RELADDLUM:
|
||||||
return &bl_pix_relativeadd_Y;
|
return &bl_pix_relativeadd_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_RELSUBLUM:
|
case VJ_EFFECT_BLEND_RELSUBLUM:
|
||||||
return &bl_pix_relativesub_Y;
|
return &bl_pix_relativesub_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MINSUBSEL:
|
case VJ_EFFECT_BLEND_MINSUBSEL:
|
||||||
return &bl_pix_minsubsel_Y;
|
return &bl_pix_minsubsel_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_MAXSUBSEL:
|
case VJ_EFFECT_BLEND_MAXSUBSEL:
|
||||||
return &bl_pix_maxsubsel_Y;
|
return &bl_pix_maxsubsel_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDSUBSEL:
|
case VJ_EFFECT_BLEND_ADDSUBSEL:
|
||||||
return &bl_pix_addsubsel_Y;
|
return &bl_pix_addsubsel_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDAVG:
|
case VJ_EFFECT_BLEND_ADDAVG:
|
||||||
return &bl_pix_dblbneg_Y;
|
return &bl_pix_dblbneg_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDTEST2:
|
case VJ_EFFECT_BLEND_ADDTEST2:
|
||||||
return &bl_pix_dblbneg_Y;
|
return &bl_pix_dblbneg_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDTEST3:
|
case VJ_EFFECT_BLEND_ADDTEST3:
|
||||||
return &bl_pix_relneg_Y;
|
return &bl_pix_relneg_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_ADDTEST4:
|
case VJ_EFFECT_BLEND_ADDTEST4:
|
||||||
return &bl_pix_test3_Y;
|
return &bl_pix_test3_Y;
|
||||||
break;
|
|
||||||
case VJ_EFFECT_BLEND_SUBSTRACTIVE2:
|
case VJ_EFFECT_BLEND_SUBSTRACTIVE2:
|
||||||
return &bl_pix_subtract_Y; //Clamped
|
return &bl_pix_subtract_Y; //Clamped
|
||||||
break;
|
|
||||||
/*
|
/*
|
||||||
if(pix_type == VJ_EFFECT_BLEND_SELECTMIN) return &bl_pix_minsel_Y;
|
if(pix_type == VJ_EFFECT_BLEND_SELECTMIN) return &bl_pix_minsel_Y;
|
||||||
if(pix_type == VJ_EFFECT_BLEND_SELECTMAX) return &bl_pix_maxsel_Y;
|
if(pix_type == VJ_EFFECT_BLEND_SELECTMAX) return &bl_pix_maxsel_Y;
|
||||||
@@ -599,9 +566,10 @@ pix_func_Y get_pix_func_Y(const int pix_type)
|
|||||||
if(pix_type == VJ_EFFECT_BLEND_SELECTFREEZE) return &bl_pix_selfreeze_Y;
|
if(pix_type == VJ_EFFECT_BLEND_SELECTFREEZE) return &bl_pix_selfreeze_Y;
|
||||||
if(pix_type == VJ_EFFECT_BLEND_SELECTUNFREEZE) return &bl_pix_selunfreeze_Y;
|
if(pix_type == VJ_EFFECT_BLEND_SELECTUNFREEZE) return &bl_pix_selunfreeze_Y;
|
||||||
*/
|
*/
|
||||||
default:
|
|
||||||
return &bl_pix_noswap_Y;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return &bl_pix_noswap_Y;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* function to blend chrominance pixel */
|
/* function to blend chrominance pixel */
|
||||||
@@ -677,7 +645,7 @@ uint8_t bl_pix_softburn_Y(uint8_t y1, uint8_t y2)
|
|||||||
} else {
|
} else {
|
||||||
if (b <= pixel_Y_lo_)
|
if (b <= pixel_Y_lo_)
|
||||||
{
|
{
|
||||||
b = 255;
|
b = pixel_Y_hi_;
|
||||||
}
|
}
|
||||||
new_Y = 0xff - (((0xff - a) >> 7) / b);
|
new_Y = 0xff - (((0xff - a) >> 7) / b);
|
||||||
}
|
}
|
||||||
@@ -689,7 +657,7 @@ uint8_t bl_pix_inverseburn_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (a < 16) {
|
if (a < pixel_Y_lo_) {
|
||||||
new_Y = pixel_Y_lo_;
|
new_Y = pixel_Y_lo_;
|
||||||
} else {
|
} else {
|
||||||
new_Y = 0xff - (((0xff - b) >> 8) / a);
|
new_Y = 0xff - (((0xff - b) >> 8) / a);
|
||||||
@@ -710,10 +678,10 @@ uint8_t bl_pix_mulsub_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b;
|
uint8_t a, b;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = (0xff - y2);
|
b = (0xff - y2);
|
||||||
if( a < 16 )
|
if( a < pixel_Y_lo_ )
|
||||||
a = 16;
|
a = pixel_Y_lo_;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = 16;
|
b = pixel_Y_lo_;
|
||||||
return ( a / b );
|
return ( a / b );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -752,10 +720,10 @@ uint8_t bl_pix_basecolor_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, c, new_Y;
|
uint8_t a, b, c, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (a < 16)
|
if (a < pixel_Y_lo_)
|
||||||
a = 16;
|
a = pixel_Y_lo_;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = 16;
|
b = pixel_Y_lo_;
|
||||||
c = a * b >> 7;
|
c = a * b >> 7;
|
||||||
new_Y = c + a * ((0xff - (((0xff - a) * (0xff - b)) >> 7) - c) >> 7);
|
new_Y = c + a * ((0xff - (((0xff - a) * (0xff - b)) >> 7) - c) >> 7);
|
||||||
return new_Y;
|
return new_Y;
|
||||||
@@ -766,8 +734,8 @@ uint8_t bl_pix_freeze_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (b < 16) {
|
if (b < pixel_Y_lo_) {
|
||||||
new_Y = 16;
|
new_Y = pixel_Y_lo_;
|
||||||
} else {
|
} else {
|
||||||
new_Y = 0xff - ((0xff - a) * (0xff - a)) / b;
|
new_Y = 0xff - ((0xff - a) * (0xff - a)) / b;
|
||||||
}
|
}
|
||||||
@@ -779,7 +747,7 @@ uint8_t bl_pix_unfreeze_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (a < 16) {
|
if (a < pixel_Y_lo_) {
|
||||||
new_Y = pixel_Y_lo_;
|
new_Y = pixel_Y_lo_;
|
||||||
} else {
|
} else {
|
||||||
if(b > pixel_Y_hi_) b = pixel_Y_hi_;
|
if(b > pixel_Y_hi_) b = pixel_Y_hi_;
|
||||||
@@ -892,10 +860,10 @@ uint8_t bl_pix_add_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = 16;
|
b = pixel_Y_lo_;
|
||||||
if (a < 16)
|
if (a < pixel_Y_lo_)
|
||||||
a = 16;
|
a = pixel_Y_lo_;
|
||||||
if ((0xff - b) <= 0) {
|
if ((0xff - b) <= 0) {
|
||||||
new_Y = (a * a) >> 8;
|
new_Y = (a * a) >> 8;
|
||||||
} else {
|
} else {
|
||||||
@@ -911,12 +879,12 @@ uint8_t bl_pix_relneg_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = 0xff - y2;
|
b = 0xff - y2;
|
||||||
if (a < 16)
|
if (a < pixel_Y_lo_)
|
||||||
a = 16;
|
a = pixel_Y_lo_;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = y1;
|
b = y1;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = 16;
|
b = pixel_Y_lo_;
|
||||||
new_Y = (a * a) / b;
|
new_Y = (a * a) / b;
|
||||||
return new_Y;
|
return new_Y;
|
||||||
}
|
}
|
||||||
@@ -945,8 +913,8 @@ uint8_t bl_pix_selfreeze_Y(uint8_t y1, uint8_t y2)
|
|||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (a > b) {
|
if (a > b) {
|
||||||
if (a < 16) {
|
if (a < pixel_Y_lo_) {
|
||||||
new_Y = 16;
|
new_Y = pixel_Y_lo_;
|
||||||
} else {
|
} else {
|
||||||
new_Y = 0xff - ((0xff - b) * (0xff - b)) / a;
|
new_Y = 0xff - ((0xff - b) * (0xff - b)) / a;
|
||||||
}
|
}
|
||||||
@@ -962,7 +930,7 @@ uint8_t bl_pix_selunfreeze_Y(uint8_t y1, uint8_t y2)
|
|||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (a > b) {
|
if (a > b) {
|
||||||
if (b < 16) {
|
if (b < pixel_Y_lo_) {
|
||||||
new_Y = pixel_Y_lo_;
|
new_Y = pixel_Y_lo_;
|
||||||
} else {
|
} else {
|
||||||
if( a > pixel_Y_hi_ ) a = pixel_Y_hi_;
|
if( a > pixel_Y_hi_ ) a = pixel_Y_hi_;
|
||||||
@@ -1055,10 +1023,10 @@ uint8_t bl_pix_test3_Y(uint8_t y1, uint8_t y2)
|
|||||||
uint8_t a, b, new_Y;
|
uint8_t a, b, new_Y;
|
||||||
a = y1;
|
a = y1;
|
||||||
b = y2;
|
b = y2;
|
||||||
if (b < 16)
|
if (b < pixel_Y_lo_)
|
||||||
b = 16;
|
b = pixel_Y_lo_;
|
||||||
if (a < 16)
|
if (a < pixel_Y_lo_)
|
||||||
a = 16;
|
a = pixel_Y_lo_;
|
||||||
new_Y = (a >> 1) + (b >> 1);
|
new_Y = (a >> 1) + (b >> 1);
|
||||||
return new_Y;
|
return new_Y;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ void constantblend_apply( VJFrame *frame, int type, int scale, int valY )
|
|||||||
|
|
||||||
uint8_t *Y = frame->data[0];
|
uint8_t *Y = frame->data[0];
|
||||||
|
|
||||||
for (i = 0; i < len; i++) // TODO Unroll for loop ?
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
int tmp_val =(int)( ((float) *(Y)) * s);
|
int tmp_val =(int)( ((float) *(Y)) * s);
|
||||||
*(Y)++ = blend_y( (uint8_t) ( (uint8_t) tmp_val ) , y );
|
*(Y)++ = blend_y( (uint8_t) ( (uint8_t) tmp_val ) , y );
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ void magicscratcher_apply(VJFrame *frame, int mode, int n, int no_reverse, int g
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (x = 0; x < len; x++) {
|
for (x = 0; x < len; x++) {
|
||||||
Y[x] = func_y( mframe[offset + x], Y[x]); // TODO Unrol loop len+=4 ...Duff's_device ?
|
Y[x] = func_y( mframe[offset + x], Y[x]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grayscale)
|
if (grayscale)
|
||||||
|
|||||||
Reference in New Issue
Block a user