diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2022-01-15 23:22:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-15 23:22:11 +0100 |
commit | 8d501b30e8dcc30b0818d82f27cab191919c7f77 (patch) | |
tree | f93d995cd0f92301ef8757bc04ca654a5edca492 | |
parent | f76fe15607909b727ac40bc5067f35e13456b40f (diff) | |
parent | 481663c185b000f1121d35aaa40a359660dd6cfd (diff) |
Merge pull request #4622 from Holzhaus/serato-markers-forward-compat
Serato markers size serialization fixes
-rw-r--r-- | src/track/serato/markers.cpp | 4 | ||||
-rw-r--r-- | src/track/serato/markers2.cpp | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/track/serato/markers.cpp b/src/track/serato/markers.cpp index eda52ff80a..7cf933b5cb 100644 --- a/src/track/serato/markers.cpp +++ b/src/track/serato/markers.cpp @@ -569,7 +569,7 @@ QByteArray SeratoMarkers::dumpID3() const { QDataStream stream(&data, QIODevice::WriteOnly); stream.setByteOrder(QDataStream::BigEndian); - stream << kVersion << m_entries.size(); + stream << kVersion << static_cast<quint32>(m_entries.size()); for (int i = 0; i < m_entries.size(); i++) { SeratoMarkersEntryPointer pEntry = m_entries.at(i); stream.writeRawData(pEntry->dumpID3(), kEntrySizeID3); @@ -593,7 +593,7 @@ QByteArray SeratoMarkers::dumpMP4() const { stream.setByteOrder(QDataStream::BigEndian); stream.writeRawData(kSeratoMarkersBase64EncodedPrefix.constData(), kSeratoMarkersBase64EncodedPrefix.length()); - stream << kVersion << m_entries.size(); + stream << kVersion << static_cast<quint32>(m_entries.size()); for (int i = 0; i < m_entries.size(); i++) { SeratoMarkersEntryPointer pEntry = m_entries.at(i); stream.writeRawData(pEntry->dumpMP4(), kEntrySizeMP4); diff --git a/src/track/serato/markers2.cpp b/src/track/serato/markers2.cpp index 550c1bc906..0f746a6574 100644 --- a/src/track/serato/markers2.cpp +++ b/src/track/serato/markers2.cpp @@ -26,7 +26,9 @@ QString zeroTerminatedUtf8StringtoQString(QDataStream* stream) { quint8 byte = '\xFF'; while (byte != '\x00') { *stream >> byte; - data.append(byte); + if (byte != '\x00') { + data.append(byte); + } if (stream->status() != QDataStream::Status::Ok) { return QString(); } @@ -537,7 +539,7 @@ QByteArray SeratoMarkers2::dumpCommon() const { QByteArray entryData = entry->dump(); stream.writeRawData(entryName.constData(), entryName.length()); stream << static_cast<quint8>('\x00') // terminating null-byte - << entryData.length(); + << static_cast<quint32>(entryData.length()); stream.writeRawData(entryData.constData(), entryData.length()); } data.append('\0'); @@ -767,7 +769,7 @@ QByteArray SeratoMarkers2::dumpBase64Encoded() const { QByteArray entryData = entry->dump(); stream.writeRawData(entryName.constData(), entryName.length()); stream << static_cast<quint8>(0x00) // terminating null-byte - << entryData.length(); + << static_cast<quint32>(entryData.length()); stream.writeRawData(entryData.constData(), entryData.length()); } innerData.append('\0'); |