/*
Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
- This program is free software; you can redistribute it and/or modify
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
- This program is distributed in the hope that it will be useful,
+ DCP-o-matic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
*/
_first_nonexistant_frame = n;
}
- while (!existing_picture_frame_ok(asset_file, info_file, _first_nonexistant_frame) && _first_nonexistant_frame > 0) {
+ while (!existing_picture_frame_ok(asset_file, info_file) && _first_nonexistant_frame > 0) {
--_first_nonexistant_frame;
}
++_first_nonexistant_frame;
}
- for (int i = 0; i < _first_nonexistant_frame; ++i) {
- if (!existing_picture_frame_ok(asset_file, info_file, i)) {
- LOG_GENERAL ("Although %1 is not ok", i);
- }
- }
-
LOG_GENERAL ("Proceeding with first nonexistant frame %1", _first_nonexistant_frame);
fclose (asset_file);
}
bool
-ReelWriter::existing_picture_frame_ok (FILE* asset_file, FILE* info_file, int frame) const
+ReelWriter::existing_picture_frame_ok (FILE* asset_file, FILE* info_file) const
{
- LOG_GENERAL ("Checking existing picture frame %1", frame);
+ LOG_GENERAL ("Checking existing picture frame %1", _first_nonexistant_frame);
/* Read the data from the info file; for 3D we just check the left
frames until we find a good one.
*/
- dcp::FrameInfo const info = read_frame_info (info_file, frame, _film->three_d () ? EYES_LEFT : EYES_BOTH);
+ dcp::FrameInfo const info = read_frame_info (info_file, _first_nonexistant_frame, _film->three_d () ? EYES_LEFT : EYES_BOTH);
bool ok = true;
size_t const read = fread (data.data().get(), 1, data.size(), asset_file);
LOG_GENERAL ("Read %1 bytes of asset data; wanted %2", read, info.size);
if (read != static_cast<size_t> (data.size ())) {
- LOG_GENERAL ("Existing frame %1 is incomplete", frame);
+ LOG_GENERAL ("Existing frame %1 is incomplete", _first_nonexistant_frame);
ok = false;
} else {
MD5Digester digester;
digester.add (data.data().get(), data.size());
LOG_GENERAL ("Hash %1 vs %2", digester.get(), info.hash);
if (digester.get() != info.hash) {
- LOG_GENERAL ("Existing frame %1 failed hash check", frame);
+ LOG_GENERAL ("Existing frame %1 failed hash check", _first_nonexistant_frame);
ok = false;
}
}