summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2022-01-15 23:22:11 +0100
committerGitHub <noreply@github.com>2022-01-15 23:22:11 +0100
commit8d501b30e8dcc30b0818d82f27cab191919c7f77 (patch)
treef93d995cd0f92301ef8757bc04ca654a5edca492
parentf76fe15607909b727ac40bc5067f35e13456b40f (diff)
parent481663c185b000f1121d35aaa40a359660dd6cfd (diff)
Merge pull request #4622 from Holzhaus/serato-markers-forward-compat
Serato markers size serialization fixes
-rw-r--r--src/track/serato/markers.cpp4
-rw-r--r--src/track/serato/markers2.cpp8
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');