X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=tests%2Faudiomatch.c;h=56a60bdecf85c6540b35e527d942cd752ee0c045;hb=ea2d9b7a2e02861ea680f91404414955f55a294c;hp=d44c4070e072fa5357ab6462034748a9deffddd7;hpb=4339c94364f8ff143d051fcace3e5801625db607;p=ffmpeg diff --git a/tests/audiomatch.c b/tests/audiomatch.c index d44c4070e07..56a60bdecf8 100644 --- a/tests/audiomatch.c +++ b/tests/audiomatch.c @@ -24,6 +24,7 @@ #define FFMIN(a,b) ((a) > (b) ? (b) : (a)) #define FFMAX(a,b) ((a) > (b) ? (a) : (b)) +#define FFABS(a) ((a) >= 0 ? (a) : (-(a))) static int64_t fsize(FILE *f) { int64_t end, pos = ftell(f); @@ -81,9 +82,9 @@ int main(int argc, char **argv) { signal = malloc(siglen * sizeof(*signal)); if (fread(data , 1, datlen, f[0]) != datlen) - return 1; + goto read_fail; if (fread(signal, 1, siglen, f[1]) != siglen) - return 1; + goto read_fail; datlen /= 2; siglen /= 2; @@ -101,14 +102,21 @@ int main(int argc, char **argv) { int j = pos + i; c += signal[i] * data[j]; } - if (fabs(c) > sigamp * 0.94) - maxshift = FFMIN(maxshift, fabs(pos)+32); - if (fabs(c) > fabs(bestc)) { + if (FFABS(c) > sigamp * 0.94) + maxshift = FFMIN(maxshift, FFABS(pos)+32); + if (FFABS(c) > FFABS(bestc)) { bestc = c; bestpos = pos; } } printf("presig: %d postsig:%d c:%7.4f lenerr:%d\n", bestpos, datlen - siglen - bestpos, bestc / sigamp, datlen - siglen); + free(data); + free(signal); return 0; + +read_fail: + free(data); + free(signal); + return 1; }