From 72481999dfa0cd8889db45e60fb1612931acaaf3 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 16 Sep 2014 12:46:42 -0700 Subject: [PATCH] Compute actual checksum --- libraries/avatars/src/Recorder.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/libraries/avatars/src/Recorder.cpp b/libraries/avatars/src/Recorder.cpp index 60bcaf8dee..51b2938290 100644 --- a/libraries/avatars/src/Recorder.cpp +++ b/libraries/avatars/src/Recorder.cpp @@ -470,8 +470,8 @@ void writeRecordingToFile(RecordingPointer recording, QString filename) { fileStream << (quint16)0; // Save two empty bytes for the data offset const qint64 dataLengthPos = file.pos(); fileStream << (quint32)0; // Save four empty bytes for the data offset - const quint64 crc32Pos = file.pos(); - fileStream << (quint32)0; // Save four empty bytes for the CRC-32 + const quint64 crc16Pos = file.pos(); + fileStream << (quint32)0; // Save four empty bytes for the CRC-16 // METADATA @@ -637,13 +637,19 @@ void writeRecordingToFile(RecordingPointer recording, QString filename) { fileStream << recording->_audio->getByteArray(); - // Write data length + qint64 writtingTime = timer.restart(); + // Write data length and CRC-16 quint16 dataLength = file.pos() - dataOffset; + quint16 crc16= qChecksum(file.readAll().constData() + dataOffset, + dataLength); file.seek(dataLengthPos); fileStream << dataLength; + file.seek(crc16Pos); + fileStream << crc16; file.seek(dataOffset + dataLength); - qDebug() << "Wrote " << file.size() << " bytes in " << timer.elapsed() << " ms."; + qint64 checksumTime = timer.elapsed(); + qDebug() << "Wrote" << file.size() << "bytes in" << writtingTime + checksumTime << "ms. (" << checksumTime << "ms for checksum)"; } RecordingPointer readRecordingFromFile(RecordingPointer recording, QString filename) { @@ -709,8 +715,8 @@ RecordingPointer readRecordingFromFile(RecordingPointer recording, QString filen fileStream >> dataLength; quint32 dataOffset = 0; fileStream >> dataOffset; - quint32 crc32 = 0; - fileStream >> crc32; + quint32 crc16 = 0; + fileStream >> crc16; // METADATA // TODO @@ -782,7 +788,7 @@ RecordingPointer readRecordingFromFile(RecordingPointer recording, QString filen qDebug() << "File Format version:" << VERSION; qDebug() << "Data length:" << dataLength; qDebug() << "Data offset:" << dataOffset; - qDebug() << "CRC-32:" << crc32; + qDebug() << "CRC-16:" << crc16; qDebug() << "Context block:"; qDebug() << "Domain:" << context.domain; @@ -872,7 +878,6 @@ RecordingPointer readRecordingFromFile(RecordingPointer recording, QString filen fileStream >> audioArray; recording->addAudioPacket(audioArray); - qDebug() << "Read " << byteArray.size() << " bytes in " << timer.elapsed() << " ms."; return recording; }