/* Copyright (C) 2012-2014 Carl Hetherington This file is part of libdcp. libdcp 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. libdcp 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 libdcp. If not, see . */ #include #include "dcp.h" #include "cpl.h" #include "reel.h" #include "subtitle_asset.h" #include "reel_subtitle_asset.h" #include "exceptions.h" using std::cout; using std::cerr; using std::list; using std::string; using boost::shared_ptr; using namespace dcp; /** Load a DCP then re-write its subtitle XML or MXF in-place */ int main (int argc, char* argv[]) { try { if (argc < 2) { cerr << "Syntax: " << argv[0] << " \n"; exit (EXIT_FAILURE); } DCP* dcp = new DCP (argv[1]); dcp->read (true); list > cpls = dcp->cpls (); for (list >::iterator i = cpls.begin(); i != cpls.end(); ++i) { list > reels = (*i)->reels (); for (list >::iterator j = reels.begin(); j != reels.end(); ++j) { if ((*j)->main_subtitle()) { (*j)->main_subtitle()->asset()->write ((*j)->main_subtitle()->asset()->file().get()); } } } } catch (FileError& e) { cerr << e.what() << " (" << e.filename() << ") when reading " << argv[1] << "\n"; exit (EXIT_FAILURE); } catch (DCPReadError& e) { cerr << e.what() << " when reading " << argv[1] << "\n"; exit (EXIT_FAILURE); } return 0; }