Commit fac3f583 authored by ramiro's avatar ramiro

Reuse sws_getConstVec() where possible.

git-svn-id: file:///var/local/repositories/mplayer/trunk/libswscale@29535 b3059339-0415-0410-9bf9-f77b7e298cf2
parent bb5f6604
...@@ -3309,18 +3309,12 @@ void sws_normalizeVec(SwsVector *a, double height) ...@@ -3309,18 +3309,12 @@ void sws_normalizeVec(SwsVector *a, double height)
static SwsVector *sws_getConvVec(SwsVector *a, SwsVector *b) static SwsVector *sws_getConvVec(SwsVector *a, SwsVector *b)
{ {
int length= a->length + b->length - 1; int length= a->length + b->length - 1;
double *coeff= av_malloc(length*sizeof(double));
int i, j; int i, j;
SwsVector *vec= av_malloc(sizeof(SwsVector)); SwsVector *vec= sws_getConstVec(0.0, length);
vec->coeff= coeff;
vec->length= length;
for (i=0; i<length; i++) coeff[i]= 0.0;
for (i=0; i<a->length; i++) { for (i=0; i<a->length; i++) {
for (j=0; j<b->length; j++) { for (j=0; j<b->length; j++) {
coeff[i+j]+= a->coeff[i]*b->coeff[j]; vec->coeff[i+j]+= a->coeff[i]*b->coeff[j];
} }
} }
...@@ -3330,17 +3324,11 @@ static SwsVector *sws_getConvVec(SwsVector *a, SwsVector *b) ...@@ -3330,17 +3324,11 @@ static SwsVector *sws_getConvVec(SwsVector *a, SwsVector *b)
static SwsVector *sws_sumVec(SwsVector *a, SwsVector *b) static SwsVector *sws_sumVec(SwsVector *a, SwsVector *b)
{ {
int length= FFMAX(a->length, b->length); int length= FFMAX(a->length, b->length);
double *coeff= av_malloc(length*sizeof(double));
int i; int i;
SwsVector *vec= av_malloc(sizeof(SwsVector)); SwsVector *vec= sws_getConstVec(0.0, length);
vec->coeff= coeff;
vec->length= length;
for (i=0; i<length; i++) coeff[i]= 0.0;
for (i=0; i<a->length; i++) coeff[i + (length-1)/2 - (a->length-1)/2]+= a->coeff[i]; for (i=0; i<a->length; i++) vec->coeff[i + (length-1)/2 - (a->length-1)/2]+= a->coeff[i];
for (i=0; i<b->length; i++) coeff[i + (length-1)/2 - (b->length-1)/2]+= b->coeff[i]; for (i=0; i<b->length; i++) vec->coeff[i + (length-1)/2 - (b->length-1)/2]+= b->coeff[i];
return vec; return vec;
} }
...@@ -3348,17 +3336,11 @@ static SwsVector *sws_sumVec(SwsVector *a, SwsVector *b) ...@@ -3348,17 +3336,11 @@ static SwsVector *sws_sumVec(SwsVector *a, SwsVector *b)
static SwsVector *sws_diffVec(SwsVector *a, SwsVector *b) static SwsVector *sws_diffVec(SwsVector *a, SwsVector *b)
{ {
int length= FFMAX(a->length, b->length); int length= FFMAX(a->length, b->length);
double *coeff= av_malloc(length*sizeof(double));
int i; int i;
SwsVector *vec= av_malloc(sizeof(SwsVector)); SwsVector *vec= sws_getConstVec(0.0, length);
vec->coeff= coeff;
vec->length= length;
for (i=0; i<length; i++) coeff[i]= 0.0;
for (i=0; i<a->length; i++) coeff[i + (length-1)/2 - (a->length-1)/2]+= a->coeff[i]; for (i=0; i<a->length; i++) vec->coeff[i + (length-1)/2 - (a->length-1)/2]+= a->coeff[i];
for (i=0; i<b->length; i++) coeff[i + (length-1)/2 - (b->length-1)/2]-= b->coeff[i]; for (i=0; i<b->length; i++) vec->coeff[i + (length-1)/2 - (b->length-1)/2]-= b->coeff[i];
return vec; return vec;
} }
...@@ -3367,17 +3349,11 @@ static SwsVector *sws_diffVec(SwsVector *a, SwsVector *b) ...@@ -3367,17 +3349,11 @@ static SwsVector *sws_diffVec(SwsVector *a, SwsVector *b)
static SwsVector *sws_getShiftedVec(SwsVector *a, int shift) static SwsVector *sws_getShiftedVec(SwsVector *a, int shift)
{ {
int length= a->length + FFABS(shift)*2; int length= a->length + FFABS(shift)*2;
double *coeff= av_malloc(length*sizeof(double));
int i; int i;
SwsVector *vec= av_malloc(sizeof(SwsVector)); SwsVector *vec= sws_getConstVec(0.0, length);
vec->coeff= coeff;
vec->length= length;
for (i=0; i<length; i++) coeff[i]= 0.0;
for (i=0; i<a->length; i++) { for (i=0; i<a->length; i++) {
coeff[i + (length-1)/2 - (a->length-1)/2 - shift]= a->coeff[i]; vec->coeff[i + (length-1)/2 - (a->length-1)/2 - shift]= a->coeff[i];
} }
return vec; return vec;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment