Mercurial > hg > audiodb
changeset 450:0c1c8726a79b api-inversion
No more trackOffsetTable
(except in sample.cpp, but that one was always a local variable. We'll
get round to removing that one when we APIze sampling.)
Also deconfuse things slightly by having the trackOffset variable be
exactly the relevant entry from track_offsets.
author | mas01cr |
---|---|
date | Wed, 24 Dec 2008 10:57:01 +0000 |
parents | bc5a69e81036 |
children | ef9ef130e27b |
files | audioDB.cpp audioDB.h common.cpp query.cpp sample.cpp |
diffstat | 5 files changed, 9 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/audioDB.cpp Wed Dec 24 10:56:56 2008 +0000 +++ b/audioDB.cpp Wed Dec 24 10:57:01 2008 +0000 @@ -217,8 +217,6 @@ munmap(timesFileNameTable, fileTableLength); if(powerFileNameTable) munmap(powerFileNameTable, fileTableLength); - if(trackOffsetTable) - delete [] trackOffsetTable; if(reporter) delete reporter; if(accumulator)
--- a/audioDB.h Wed Dec 24 10:56:56 2008 +0000 +++ b/audioDB.h Wed Dec 24 10:57:01 2008 +0000 @@ -262,7 +262,6 @@ char* fileTable; unsigned* trackTable; - off_t* trackOffsetTable; double* l2normTable; double* timesTable; double* powerTable; @@ -440,7 +439,6 @@ rng(0), \ fileTable(0), \ trackTable(0), \ - trackOffsetTable(0), \ l2normTable(0), \ timesTable(0), \ powerTable(0), \
--- a/common.cpp Wed Dec 24 10:56:56 2008 +0000 +++ b/common.cpp Wed Dec 24 10:57:01 2008 +0000 @@ -146,14 +146,6 @@ } } - // build track offset table - trackOffsetTable = new off_t[dbH->numFiles]; - Uns32T cumTrack=0; - for(Uns32T k = 0; k < dbH->numFiles; k++){ - trackOffsetTable[k] = cumTrack; - cumTrack += trackTable[k] * dbH->dim; - } - // Assign correct number of point bits per track in LSH indexing / retrieval lsh_n_point_bits = dbH->flags >> 28; if( !lsh_n_point_bits )
--- a/query.cpp Wed Dec 24 10:56:56 2008 +0000 +++ b/query.cpp Wed Dec 24 10:57:01 2008 +0000 @@ -645,8 +645,8 @@ } else{ // These offsets are w.r.t. the entire database of feature vectors and auxillary variables - trackOffset=trackOffsetTable[pp.trackID]; // num data elements offset - trackIndexOffset=trackOffset/dbH->dim; // num vectors offset + trackOffset = (*adb->track_offsets)[pp.trackID]; + trackIndexOffset = trackOffset/(dbH->dim * sizeof(double)); // num vectors offset } Uns32T qPos = usingQueryPoint?0:pp.qpos;// index for query point Uns32T sPos = trackIndexOffset+pp.spos; // index into l2norm table @@ -657,7 +657,7 @@ if( !(dbH->flags & O2_FLAG_LARGE_ADB) && (currentTrack!=pp.trackID) ){ // On currentTrack change, allocate and load track data currentTrack=pp.trackID; - lseek(dbfid, dbH->dataOffset + trackOffset * sizeof(double), SEEK_SET); + lseek(dbfid, dbH->dataOffset + trackOffset, SEEK_SET); if(audiodb_read_data(adb, dbfid, currentTrack, &data_buffer, &data_buffer_size)) error("failed to read data"); } @@ -727,7 +727,7 @@ for(processedTracks=0, track=0 ; processedTracks < dbH->numFiles ; track++, processedTracks++) { - trackOffset = trackOffsetTable[track]; // numDoubles offset + trackOffset = (*adb->track_offsets)[track]; // get trackID from file if using a control file if(trackFile) { @@ -737,8 +737,8 @@ if(track == (uint32_t) -1) { error("key not found", nextKey); } - trackOffset = trackOffsetTable[track]; - lseek(dbfid, dbH->dataOffset + trackOffset * sizeof(double), SEEK_SET); + trackOffset = (*adb->track_offsets)[track]; + lseek(dbfid, dbH->dataOffset + trackOffset, SEEK_SET); } else { break; } @@ -748,15 +748,15 @@ if( query_from_key && (track == queryIndex) ) { if(queryIndex!=dbH->numFiles-1){ track++; - trackOffset = trackOffsetTable[track]; - lseek(dbfid, dbH->dataOffset + trackOffset * sizeof(double), SEEK_SET); + trackOffset = (*adb->track_offsets)[track]; + lseek(dbfid, dbH->dataOffset + trackOffset, SEEK_SET); } else{ break; } } - trackIndexOffset=trackOffset/dbH->dim; // qpointers.nvectors offset + trackIndexOffset = trackOffset / (dbH->dim * sizeof(double)); // dbpointers.nvectors offset if(audiodb_read_data(adb, dbfid, track, &data_buffer, &data_buffer_size)) error("failed to read data");
--- a/sample.cpp Wed Dec 24 10:56:56 2008 +0000 +++ b/sample.cpp Wed Dec 24 10:57:01 2008 +0000 @@ -60,7 +60,6 @@ error("error: sample not yet supported for LARGE_ADB"); } - // build track offset table (FIXME: cut'n'pasted from query.cpp) off_t *trackOffsetTable = new off_t[dbH->numFiles]; unsigned cumTrack=0; for(unsigned int k = 0; k < dbH->numFiles; k++){