Add checksum validation
Open, HighPublic

BAndiT1983 updated the task description. (Show Details)
BAndiT1983 raised the priority of this task from to Needs Triage.
BAndiT1983 added a project: Open Cine.
BAndiT1983 moved this task to Core on the Open Cine board.
BAndiT1983 added a subscriber: BAndiT1983.

MD5 is also widely used to fingerprint / error check files.

It would be great if there was some visual representation that a file is validated to be the exactly same in two locations (green icon?)

For example when making backups from camera media you often leave the original files on the recording media and when you do another backup later on you need to know which files you already backed up and which ones are new.

Current work on data trasfer is progressing rather well, so i think that i would implement the hash check in the next days. Qt is really nice for such tasks: Reference:

I've also already thought about sync feature, e.g. if something goes wrong resume copying from last file, without starting all over again. There will be an option to force overwrite, if it's off then OC would do simple one-way syncing.

Would be nice if the user can select a checksum method and the checksums are then written to a file for manual checking (for example a md5sum-file that can be checked with md5sum -c $file. Checksum algorithms I'd really like to see are md5sum an xxHash (, which seems to be much fast so could be helpful when transfering huge amounts of 4K raw sequences.

And of course it would be cool if there is a method to recopy only failed files if the checksum turns out wrong.

Thanks for the input. For the "recopy" feature there were already plans to make something like one-way synchronization (see my last comment). I will evaluate it and other things you mentioned as soon as I've finished with decoupling OC modules (as Troy suggested).

For personal notes:

BAndiT1983 moved this task from Core to Current tasks on the Open Cine board.Dec 30 2016, 10:51 PM
BAndiT1983 triaged this task as High priority.

First tests with xxHash done, now the code will be split into useful chunks. After that bigger clenaup is on the list. If more algorithms are required later, then we need some extended interface and wrappers for xxHash and others.