- if (filesystem::file_size (mxf_path()) != filesystem::file_size (other->mxf_path())) {
- notes.push_back (mxf_path().string() + " and " + other->mxf_path().string() + " sizes differ");
- return notes;
- }
-
- ifstream a (mxf_path().string().c_str(), ios::binary);
- ifstream b (other->mxf_path().string().c_str(), ios::binary);
-
- int buffer_size = 65536;
- char abuffer[buffer_size];
- char bbuffer[buffer_size];
-
- int n = filesystem::file_size (mxf_path ());
-
- while (n) {
- int const t = min (n, buffer_size);
- a.read (abuffer, t);
- b.read (bbuffer, t);
-
- if (memcmp (abuffer, bbuffer, t) != 0) {
- notes.push_back (mxf_path().string() + " and " + other->mxf_path().string() + " content differs");
- return notes;
- }
-
- n -= t;
- }