# HG changeset patch # User Chris Cannam # Date 1413388968 -3600 # Node ID d954e03274e84ecfa1d1e6a4600e96497d5ad53d # Parent 6b2a8b34e9d3d9a573af2ae303f33362e4c17784 TransformId is not sufficient -- it could be ambiguous (same transform id, different parameters etc). Use the whole transform diff -r 6b2a8b34e9d3 -r d954e03274e8 transform/CSVFeatureWriter.cpp --- a/transform/CSVFeatureWriter.cpp Wed Oct 15 16:05:15 2014 +0100 +++ b/transform/CSVFeatureWriter.cpp Wed Oct 15 17:02:48 2014 +0100 @@ -134,11 +134,7 @@ if (n == 0) return; - TrackTransformPair tt(trackId, transformId); - - if (m_rates.find(transformId) == m_rates.end()) { - m_rates[transformId] = transform.getSampleRate(); - } + DataId tt(trackId, transform); if (m_pending.find(tt) != m_pending.end()) { writeFeature(tt, @@ -171,11 +167,11 @@ { for (PendingFeatures::const_iterator i = m_pending.begin(); i != m_pending.end(); ++i) { - TrackTransformPair tt = i->first; + DataId tt = i->first; Plugin::Feature f = i->second; - QTextStream *sptr = getOutputStream(tt.first, tt.second); + QTextStream *sptr = getOutputStream(tt.first, tt.second.getIdentifier()); if (!sptr) { - throw FailedToOpenOutputStream(tt.first, tt.second); + throw FailedToOpenOutputStream(tt.first, tt.second.getIdentifier()); } QTextStream &stream = *sptr; // final feature has its own time as end time (we can't @@ -189,14 +185,14 @@ } void -CSVFeatureWriter::writeFeature(TrackTransformPair tt, +CSVFeatureWriter::writeFeature(DataId tt, QTextStream &stream, const Plugin::Feature &f, const Plugin::Feature *optionalNextFeature, std::string summaryType) { QString trackId = tt.first; - TransformId transformId = tt.second; + Transform transform = tt.second; if (!m_omitFilename) { if (m_stdout || m_singleFileName != "") { @@ -222,7 +218,7 @@ if (m_sampleTiming) { - float rate = m_rates[transformId]; + float rate = transform.getSampleRate(); stream << Vamp::RealTime::realTime2Frame(f.timestamp, rate); diff -r 6b2a8b34e9d3 -r d954e03274e8 transform/CSVFeatureWriter.h --- a/transform/CSVFeatureWriter.h Wed Oct 15 16:05:15 2014 +0100 +++ b/transform/CSVFeatureWriter.h Wed Oct 15 17:02:48 2014 +0100 @@ -63,15 +63,13 @@ bool m_omitFilename; QString m_prevPrintedTrackId; - typedef map PendingFeatures; - typedef map PendingSummaryTypes; + typedef pair DataId; // track id, transform + typedef map PendingFeatures; + typedef map PendingSummaryTypes; PendingFeatures m_pending; PendingSummaryTypes m_pendingSummaryTypes; - typedef map SampleRateMap; - SampleRateMap m_rates; - - void writeFeature(TrackTransformPair trackId, + void writeFeature(DataId, QTextStream &, const Vamp::Plugin::Feature &f, const Vamp::Plugin::Feature *optionalNextFeature,