diff options
author | haslersn <sebastian.hasler@gmx.net> | 2020-06-07 17:22:59 +0200 |
---|---|---|
committer | Adam Szmigin <smidge@xsco.net> | 2020-10-25 22:18:02 +0000 |
commit | 03ef26faf63cf4072017317696e161f62dd4eeeb (patch) | |
tree | bc1e77f58585bd3d13ed48750af37462c3aff23b | |
parent | 03aa22a1b62d39ea945ece037f317837afecc5ba (diff) |
Fix a bug where "Beat data grid has unsorted indices"
(cherry picked from commit 3864e1ec0cb61b81b20ebe4f41939b41ddbe8598)
-rw-r--r-- | src/library/export/engineprimeexportjob.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/library/export/engineprimeexportjob.cpp b/src/library/export/engineprimeexportjob.cpp index d7dbd329f0..f6a69766e9 100644 --- a/src/library/export/engineprimeexportjob.cpp +++ b/src/library/export/engineprimeexportjob.cpp @@ -175,11 +175,16 @@ void exportMetadata(djinterop::database& db, // correctly assign an index for the last beat. double lastBeatPlayPos = beats->findPrevBeat(sampleCount * 2); int numBeats = beats->numBeatsInRange(firstBarAlignedBeatPlayPos, lastBeatPlayPos); - std::vector<djinterop::beatgrid_marker> beatgrid{ - {0, firstBarAlignedBeatPlayPos / 2}, {numBeats, lastBeatPlayPos / 2}}; - beatgrid = el::normalize_beatgrid(std::move(beatgrid), sampleCount); - externalTrack.set_default_beatgrid(beatgrid); - externalTrack.set_adjusted_beatgrid(beatgrid); + if (numBeats > 0) { + std::vector<djinterop::beatgrid_marker> beatgrid{ + {0, firstBarAlignedBeatPlayPos / 2}, {numBeats, lastBeatPlayPos / 2}}; + beatgrid = el::normalize_beatgrid(std::move(beatgrid), sampleCount); + externalTrack.set_default_beatgrid(beatgrid); + externalTrack.set_adjusted_beatgrid(beatgrid); + } else { + qWarning() << "Non-positive number of beats in beat data of track" << pTrack->getId() + << "(" << pTrack->getFileInfo().fileName() << ")"; + } } else { qInfo() << "No beats data found for track" << pTrack->getId() << "(" << pTrack->getFileInfo().fileName() << ")"; |