X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=inline;f=test%2Fsubs_in_out.cc;h=7ca45f3563f0fc27f796acd240bc488baee7aa0f;hb=ad03415009155f8771ca48200f3c4a469c85277e;hp=f3f4baf979be5ac33c8ceb8feaee75a26cf064b8;hpb=2f0e6ee9d883abbbc31aca0d1cc80e89eb9b0af2;p=libdcp.git diff --git a/test/subs_in_out.cc b/test/subs_in_out.cc index f3f4baf9..7ca45f35 100644 --- a/test/subs_in_out.cc +++ b/test/subs_in_out.cc @@ -1,16 +1,61 @@ +/* + Copyright (C) 2012-2015 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 . + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the + OpenSSL library under certain conditions as described in each + individual source file, and distribute linked combinations + including the two. + + You must obey the GNU General Public License in all respects + for all of the code used other than OpenSSL. If you modify + file(s) with this exception, you may extend this exception to your + version of the file(s), but you are not obligated to do so. If you + do not wish to do so, delete this exception statement from your + version. If you delete this exception statement from all source + files in the program, then also delete it here. +*/ + +#include "interop_subtitle_asset.h" +#include "smpte_subtitle_asset.h" #include -#include "subtitle_content.h" using namespace std; -int main (int argc, char* argv[]) +int +main (int argc, char* argv[]) { - if (argc < 2) { + if (argc != 2) { cerr << "Syntax: " << argv[0] << " \n"; exit (EXIT_FAILURE); } - - dcp::SubtitleContent s (argv[1], false); - cout << s.xml_as_string (); + + try { + dcp::InteropSubtitleAsset sc (argv[1]); + cout << sc.xml_as_string (); + } catch (exception& e) { + cerr << "Could not load as interop: " << e.what() << "\n"; + try { + dcp::SMPTESubtitleAsset sc (argv[1]); + cout << sc.xml_as_string(); + } catch (exception& e) { + cerr << "Could not load as SMPTE (" << e.what() << ")\n"; + } + } return 0; }