]> git.sesse.net Git - ffmpeg/blobdiff - tests/audiomatch.c
avutil/pixdesc: deprecate AV_PIX_FMT_FLAG_PSEUDOPAL
[ffmpeg] / tests / audiomatch.c
index ca56df09b302eb49cf8c9b81064b45cc116bee8d..d44c4070e072fa5357ab6462034748a9deffddd7 100644 (file)
 #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
 #define FFMAX(a,b) ((a) > (b) ? (a) : (b))
 
-static int64_t fsize(FILE *f){
-    int64_t end, pos= ftell(f);
+static int64_t fsize(FILE *f) {
+    int64_t end, pos = ftell(f);
     fseek(f, 0, SEEK_END);
     end = ftell(f);
     fseek(f, pos, SEEK_SET);
     return end;
 }
 
-int main(int argc, char **argv){
+int main(int argc, char **argv) {
     FILE *f[2];
     int i, pos;
     int siglen, datlen;
     int bestpos = 0;
-    double bestc=0;
-    double sigamp= 0;
+    double bestc = 0;
+    double sigamp = 0;
     int16_t *signal, *data;
-    int maxshift= 16384;
+    int maxshift = 16384;
 
     if (argc < 3) {
         printf("audiomatch <testfile> <reffile>\n");
@@ -80,31 +80,35 @@ int main(int argc, char **argv){
     data   = malloc(datlen * sizeof(*data));
     signal = malloc(siglen * sizeof(*signal));
 
-    fread(data  , 1, datlen, f[0]);
-    fread(signal, 1, siglen, f[1]);
+    if (fread(data  , 1, datlen, f[0]) != datlen)
+        return 1;
+    if (fread(signal, 1, siglen, f[1]) != siglen)
+        return 1;
     datlen /= 2;
     siglen /= 2;
 
-    for(i=0; i<siglen; i++){
+    for (i = 0; i < siglen; i++) {
         signal[i] = ((uint8_t*)(signal + i))[0] + 256*((uint8_t*)(signal + i))[1];
         sigamp += signal[i] * signal[i];
     }
-    for(i=0; i<datlen; i++)
+    for (i = 0; i < datlen; i++)
         data[i] = ((uint8_t*)(data + i))[0] + 256*((uint8_t*)(data + i))[1];
 
-    for(pos = 0; pos<maxshift; pos = pos < 0 ? -pos: -pos-1){
-        int64_t c= 0;
+    for (pos = 0; pos < maxshift; pos = pos < 0 ? -pos: -pos-1) {
+        int64_t c = 0;
         int testlen = FFMIN(siglen, datlen-pos);
-        for(i=FFMAX(0, -pos); i<testlen; i++){
-            int j= pos+i;
+        for (i = FFMAX(0, -pos); i < testlen; i++) {
+            int j = pos + i;
             c += signal[i] * data[j];
         }
-        if(fabs(c) > sigamp * 0.94)
+        if (fabs(c) > sigamp * 0.94)
             maxshift = FFMIN(maxshift, fabs(pos)+32);
-        if(fabs(c)>fabs(bestc)){
-            bestc= c;
+        if (fabs(c) > fabs(bestc)) {
+            bestc = c;
             bestpos = pos;
         }
     }
     printf("presig: %d postsig:%d c:%7.4f lenerr:%d\n", bestpos, datlen - siglen - bestpos, bestc / sigamp, datlen - siglen);
+
+    return 0;
 }