/* Copyright (C) 2012-2014 Carl Hetherington This program 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, 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. */ #include "dcp.h" #include "dcp_cpl.h" #include "reel.h" #include "subtitle_asset.h" #include "reel_subtitle_asset.h" #include "exceptions.h" #include #include 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); BOOST_FOREACH (shared_ptr i, dcp->cpls()) { BOOST_FOREACH (shared_ptr j, i->reels()) { if (j->main_subtitle()) { j->main_subtitle()->asset()->write (j->main_subtitle()->asset()->file ()); } } } } catch (FileError& e) { cerr << e.what() << " (" << e.filename() << ") when reading " << argv[1] << "\n"; exit (EXIT_FAILURE); } catch (PackageReadError& e) { cerr << e.what() << " when reading " << argv[1] << "\n"; exit (EXIT_FAILURE); } return 0; }