reduced stack req for logging data on fdmdv_demod, thanks Peter
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 13 May 2012 22:16:40 +0000 (22:16 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 13 May 2012 22:16:40 +0000 (22:16 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@454 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/fdmdv_demod.c

index 36ca926d7cc4db5ebb2358352cf5b49dc0d30a67..91cd7ccbc4c1c9b56427e322ca59bf45d9370a1f 100644 (file)
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
     int           f;
     FILE         *foct = NULL;
     struct FDMDV_STATS stats;
-    float         rx_fdm_log[FDMDV_MAX_SAMPLES_PER_FRAME*MAX_FRAMES];
+    float         *rx_fdm_log;
     int           rx_fdm_log_col_index;
     COMP          rx_symbols_log[FDMDV_NSYM][MAX_FRAMES];
     int           coarse_fine_log[MAX_FRAMES];
@@ -96,6 +96,12 @@ int main(int argc, char *argv[])
        exit(1);
     }
 
+    /* this cause out of stack probs on windows as a regular variable
+       so let malloc it */
+
+    rx_fdm_log = (float*)malloc(sizeof(float)*FDMDV_MAX_SAMPLES_PER_FRAME*MAX_FRAMES);
+    assert(rx_fdm_log != NULL);
+
     fdmdv = fdmdv_create();
     f = 0;
     state = 0;
@@ -130,7 +136,7 @@ int main(int argc, char *argv[])
            f++;
        }
        else
-           printf("MAX_FRAMES exceed in Octave log, log truncated\n");
+           fprintf(stderr,"MAX_FRAMES exceed in Octave log, log truncated\n");
 
        /* state machine to output codec bits only if we have a 0,1
           sync bit sequence */
@@ -202,6 +208,7 @@ int main(int argc, char *argv[])
 
     fclose(fin);
     fclose(fout);
+    free(rx_fdm_log);
     fdmdv_destroy(fdmdv);
 
     return 0;