Hi Tom, On 22/09/2020 07:43, amin...@mailbox.org wrote: > Apologies if this is answered in the docs - a quick search didn't uncover the > answers.
Generally speaking, the documentation of the file format could be improved :-( > I'm wondering about the "kdenlive:file_hash" property in the file XML: > > - Which hashing algorithm is used? From what I understand, it's seems to be md5, but, for performance reasons, it's calculated only on the first and last Mo of the file if the file is bigger than 2Mo In ./src/bin/projectclip.cpp, starting line 820: > QFile file(clipUrl()); > if (file.open(QIODevice::ReadOnly)) { // write size and hash > only if resource points to a file > /* > * 1 MB = 1 second per 450 files (or faster) > * 10 MB = 9 seconds per 450 files (or faster) > */ > if (file.size() > 2000000) { > fileData = file.read(1000000); > if (file.seek(file.size() - 1000000)) { > fileData.append(file.readAll()); > } > } else { > fileData = file.readAll(); > } > file.close(); > > ClipController::setProducerProperty(QStringLiteral("kdenlive:file_size"), > QString::number(file.size())); > fileHash = QCryptographicHash::hash(fileData, > QCryptographicHash::Md5); > } > - When are the hashes checked? E.g. if I save a kdenlive file, quit, then > reopen it, will the hashes of the files on disk be checked? Yes, I think so > Are there other points at which it's checked? Can the user manually start a > check? I guess that if you reload the clip, it will check it and update it if modified. HTH, Camille