Mercurial > hg > audiodb
comparison audioDB.cpp @ 224:3a81da6fb1d7
Fixes from refactoring branch:
* make O2_MAXFILES twice as big (for KSA_CHARM 1s features);
* read data even when track shorter than sequence.
author | mas01cr |
---|---|
date | Wed, 05 Dec 2007 13:52:51 +0000 |
parents | 7562a833a951 |
children | 2cc06e5b05a5 |
comparison
equal
deleted
inserted
replaced
210:7562a833a951 | 224:3a81da6fb1d7 |
---|---|
2004 } | 2004 } |
2005 } | 2005 } |
2006 | 2006 |
2007 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset | 2007 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset |
2008 | 2008 |
2009 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { | |
2010 if(data_buffer) { | |
2011 free(data_buffer); | |
2012 } | |
2013 { | |
2014 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim; | |
2015 void *tmp = malloc(data_buffer_size); | |
2016 if (tmp == NULL) { | |
2017 error("error allocating data buffer"); | |
2018 } | |
2019 data_buffer = (double *) tmp; | |
2020 } | |
2021 } | |
2022 | |
2023 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); | |
2024 | |
2009 if(sequenceLength<=trackTable[track]){ // test for short sequences | 2025 if(sequenceLength<=trackTable[track]){ // test for short sequences |
2010 | 2026 |
2011 if(verbosity>7) { | 2027 if(verbosity>7) { |
2012 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); | 2028 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); |
2013 } | 2029 } |
2022 // Matched filter matrix | 2038 // Matched filter matrix |
2023 for(j=0; j<numVectors;j++){ | 2039 for(j=0; j<numVectors;j++){ |
2024 DD[j]=new double[trackTable[track]]; | 2040 DD[j]=new double[trackTable[track]]; |
2025 assert(DD[j]); | 2041 assert(DD[j]); |
2026 } | 2042 } |
2027 | |
2028 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { | |
2029 if(data_buffer) { | |
2030 free(data_buffer); | |
2031 } | |
2032 { | |
2033 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim; | |
2034 void *tmp = malloc(data_buffer_size); | |
2035 if (tmp == NULL) { | |
2036 error("error allocating data buffer"); | |
2037 } | |
2038 data_buffer = (double *) tmp; | |
2039 } | |
2040 } | |
2041 | |
2042 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); | |
2043 | 2043 |
2044 // Dot product | 2044 // Dot product |
2045 for(j=0; j<numVectors; j++) | 2045 for(j=0; j<numVectors; j++) |
2046 for(k=0; k<trackTable[track]; k++){ | 2046 for(k=0; k<trackTable[track]; k++){ |
2047 qp=query+j*dbH->dim; | 2047 qp=query+j*dbH->dim; |
2498 } | 2498 } |
2499 } | 2499 } |
2500 | 2500 |
2501 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset | 2501 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset |
2502 | 2502 |
2503 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { | |
2504 if(data_buffer) { | |
2505 free(data_buffer); | |
2506 } | |
2507 { | |
2508 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim; | |
2509 void *tmp = malloc(data_buffer_size); | |
2510 if (tmp == NULL) { | |
2511 error("error allocating data buffer"); | |
2512 } | |
2513 data_buffer = (double *) tmp; | |
2514 } | |
2515 } | |
2516 | |
2517 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); | |
2518 | |
2503 if(sequenceLength<=trackTable[track]){ // test for short sequences | 2519 if(sequenceLength<=trackTable[track]){ // test for short sequences |
2504 | 2520 |
2505 if(verbosity>7) { | 2521 if(verbosity>7) { |
2506 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); | 2522 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); |
2507 } | 2523 } |
2516 // Matched filter matrix | 2532 // Matched filter matrix |
2517 for(j=0; j<numVectors;j++){ | 2533 for(j=0; j<numVectors;j++){ |
2518 DD[j]=new double[trackTable[track]]; | 2534 DD[j]=new double[trackTable[track]]; |
2519 assert(DD[j]); | 2535 assert(DD[j]); |
2520 } | 2536 } |
2521 | |
2522 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { | |
2523 if(data_buffer) { | |
2524 free(data_buffer); | |
2525 } | |
2526 { | |
2527 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim; | |
2528 void *tmp = malloc(data_buffer_size); | |
2529 if (tmp == NULL) { | |
2530 error("error allocating data buffer"); | |
2531 } | |
2532 data_buffer = (double *) tmp; | |
2533 } | |
2534 } | |
2535 | |
2536 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); | |
2537 | 2537 |
2538 // Dot product | 2538 // Dot product |
2539 for(j=0; j<numVectors; j++) | 2539 for(j=0; j<numVectors; j++) |
2540 for(k=0; k<trackTable[track]; k++){ | 2540 for(k=0; k<trackTable[track]; k++){ |
2541 qp=query+j*dbH->dim; | 2541 qp=query+j*dbH->dim; |