diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-12-01 22:44:38 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-12-01 23:19:07 +0100 |
| commit | 3da3168c383b9dfa675f972f0802e180920d63c0 (patch) | |
| tree | 7d196ce81955dbd70e6324f2b09744c557defb33 /src | |
| parent | 8ff50a18013d3c57d1058368146c979354016663 (diff) | |
Remove DCP subtitle support.libsub-bye-bye-dcp
This was only a thin wrapper around libdcp, used by videocon but
not by DCP-o-matic. It seems very unlikely that anybody else will
want it, and the dependency of libsub on libdcp causes hassle that
will be gladly avoided.
Diffstat (limited to 'src')
| -rw-r--r-- | src/collect.h | 1 | ||||
| -rw-r--r-- | src/colour.h | 5 | ||||
| -rw-r--r-- | src/dcp_reader.cc | 137 | ||||
| -rw-r--r-- | src/dcp_reader.h | 39 | ||||
| -rw-r--r-- | src/exceptions.h | 8 | ||||
| -rw-r--r-- | src/reader_factory.cc | 11 | ||||
| -rw-r--r-- | src/stl_binary_reader.h | 1 | ||||
| -rw-r--r-- | src/util.cc | 1 | ||||
| -rw-r--r-- | src/web_vtt_reader.h | 1 | ||||
| -rw-r--r-- | src/wscript | 5 |
10 files changed, 4 insertions, 205 deletions
diff --git a/src/collect.h b/src/collect.h index 5fcf694..374386c 100644 --- a/src/collect.h +++ b/src/collect.h @@ -22,6 +22,7 @@ #include "subtitle.h" #include "raw_subtitle.h" +#include <algorithm> namespace sub { diff --git a/src/colour.h b/src/colour.h index f3a4964..65660a5 100644 --- a/src/colour.h +++ b/src/colour.h @@ -24,7 +24,6 @@ #ifndef LIBSUB_COLOUR_H #define LIBSUB_COLOUR_H -#include <dcp/types.h> #include <string> #include <cmath> @@ -57,10 +56,6 @@ public: float g; /** blue component (from 0 to 1) */ float b; - - dcp::Colour dcp() const { - return dcp::Colour(lrintf(r * 255), lrintf(g * 255), lrintf(b * 255)); - } }; bool diff --git a/src/dcp_reader.cc b/src/dcp_reader.cc deleted file mode 100644 index 0c7a29a..0000000 --- a/src/dcp_reader.cc +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net> - - 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_reader.h" -#include "compose.hpp" -#include "exceptions.h" -#include <dcp/subtitle_string.h> -#include <dcp/interop_subtitle_asset.h> -#include <dcp/smpte_subtitle_asset.h> -#include <boost/filesystem.hpp> - -using std::dynamic_pointer_cast; -using std::exception; -using std::make_shared; -using std::shared_ptr; -using std::string; -using boost::optional; -using namespace sub; - -static Time -dcp_to_sub_time (dcp::Time t) -{ - return Time::from_hms (t.h, t.m, t.s, t.e * 1000.0 / t.tcr); -} - -static Colour -dcp_to_sub_colour (dcp::Colour c) -{ - return Colour (c.r / 255.0, c.g / 255.0, c.b / 255.0); -} - -DCPReader::DCPReader (boost::filesystem::path file) -{ - shared_ptr<dcp::SubtitleAsset> sc; - string interop_error; - string smpte_error; - - try { - sc = make_shared<dcp::InteropSubtitleAsset>(file); - } catch (exception& e) { - interop_error = e.what (); - } - - if (!sc) { - try { - sc = make_shared<dcp::SMPTESubtitleAsset>(file); - } catch (exception& e) { - smpte_error = e.what(); - } - } - - if (!sc) { - throw DCPError(String::compose("Could not read subtitles (%1 / %2)", interop_error, smpte_error)); - } - - - for (auto i: sc->subtitles()) { - - /* We don't deal with image subs */ - auto is = dynamic_pointer_cast<const dcp::SubtitleString>(i); - if (!is) { - continue; - } - - RawSubtitle rs; - rs.text = is->text (); - rs.font = is->font (); - rs.font_size = FontSize::from_proportional (is->size() / (72.0 * 11.0)); - - switch (is->effect ()) { - case dcp::Effect::BORDER: - rs.effect = BORDER; - break; - case dcp::Effect::SHADOW: - rs.effect = SHADOW; - break; - default: - break; - } - - rs.effect_colour = dcp_to_sub_colour (is->effect_colour()); - - rs.colour = dcp_to_sub_colour (is->colour()); - rs.bold = is->bold (); - rs.italic = is->italic (); - rs.underline = is->underline (); - - switch (is->h_align()) { - case dcp::HAlign::LEFT: - rs.horizontal_position.reference = LEFT_OF_SCREEN; - break; - case dcp::HAlign::CENTER: - rs.horizontal_position.reference = HORIZONTAL_CENTRE_OF_SCREEN; - break; - case dcp::HAlign::RIGHT: - rs.horizontal_position.reference = RIGHT_OF_SCREEN; - break; - } - - rs.vertical_position.proportional = is->v_position(); - switch (is->v_align()) { - case dcp::VAlign::TOP: - rs.vertical_position.reference = TOP_OF_SCREEN; - break; - case dcp::VAlign::CENTER: - rs.vertical_position.reference = VERTICAL_CENTRE_OF_SCREEN; - break; - case dcp::VAlign::BOTTOM: - rs.vertical_position.reference = BOTTOM_OF_SCREEN; - break; - } - - rs.from = dcp_to_sub_time (is->in ()); - rs.to = dcp_to_sub_time (is->out ()); - - rs.fade_up = dcp_to_sub_time (is->fade_up_time ()); - rs.fade_down = dcp_to_sub_time (is->fade_down_time ()); - - _subs.push_back (rs); - } -} diff --git a/src/dcp_reader.h b/src/dcp_reader.h deleted file mode 100644 index 8f49dfd..0000000 --- a/src/dcp_reader.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2014-2017 Carl Hetherington <cth@carlh.net> - - 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. - -*/ - -#ifndef LIBSUB_DCP_READER_H -#define LIBSUB_DCP_READER_H - -#include "reader.h" -#include <boost/filesystem.hpp> - -namespace sub { - -/** @class DCPReader - * @brief A class which reads DCP subtitles. - */ -class DCPReader : public Reader -{ -public: - DCPReader (boost::filesystem::path file); -}; - -} - -#endif diff --git a/src/exceptions.h b/src/exceptions.h index 2b2b09c..1895f11 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -114,14 +114,6 @@ public: {} }; -class DCPError : public std::runtime_error -{ -public: - DCPError (std::string const & message) - : std::runtime_error (message) - {} -}; - class ProgrammingError : public std::runtime_error { public: diff --git a/src/reader_factory.cc b/src/reader_factory.cc index fb717ea..282f14b 100644 --- a/src/reader_factory.cc +++ b/src/reader_factory.cc @@ -20,10 +20,8 @@ #include "reader_factory.h" #include "stl_binary_reader.h" #include "stl_text_reader.h" -#include "dcp_reader.h" #include "subrip_reader.h" #include "sub_assert.h" -#include <libxml++/libxml++.h> #include <boost/algorithm/string.hpp> #include <fstream> @@ -39,15 +37,6 @@ sub::reader_factory (boost::filesystem::path file_name) string ext = file_name.extension().string(); transform (ext.begin(), ext.end(), ext.begin(), ::tolower); - if (ext == ".xml") { - return shared_ptr<Reader> (new DCPReader (file_name)); - } - - if (ext == ".mxf") { - /* Assume this is some MXF-wrapped SMPTE subtitles */ - return shared_ptr<Reader> (new DCPReader (file_name)); - } - if (ext == ".stl") { /* Check the start of the DFC */ ifstream f (file_name.string().c_str ()); diff --git a/src/stl_binary_reader.h b/src/stl_binary_reader.h index beb9de2..75e328a 100644 --- a/src/stl_binary_reader.h +++ b/src/stl_binary_reader.h @@ -23,6 +23,7 @@ #include "reader.h" #include "stl_binary_tables.h" #include <map> +#include <memory> namespace sub { diff --git a/src/util.cc b/src/util.cc index eb68752..244630d 100644 --- a/src/util.cc +++ b/src/util.cc @@ -31,7 +31,6 @@ using std::string; using std::getline; using std::ostream; using std::map; -using std::list; using std::shared_ptr; using std::vector; using boost::optional; diff --git a/src/web_vtt_reader.h b/src/web_vtt_reader.h index 495e2bc..42e83f1 100644 --- a/src/web_vtt_reader.h +++ b/src/web_vtt_reader.h @@ -24,6 +24,7 @@ #include "reader.h" #include <cstdio> +#include <list> #include <string> diff --git a/src/wscript b/src/wscript index ff029a0..563b331 100644 --- a/src/wscript +++ b/src/wscript @@ -8,12 +8,10 @@ def build(bld): obj.name = 'libsub%s' % bld.env.API_VERSION obj.target = 'sub%s' % bld.env.API_VERSION - obj.uselib = 'CXML DCP BOOST_FILESYSTEM BOOST_LOCALE BOOST_REGEX ASDCPLIB_CTH' - obj.use = 'libkumu-libsub%s libasdcp-libsub%s' % (bld.env.API_VERSION, bld.env.API_VERSION) + obj.uselib = 'CXML BOOST_FILESYSTEM BOOST_LOCALE BOOST_REGEX' obj.export_includes = ['.'] obj.source = """ colour.cc - dcp_reader.cc effect.cc exceptions.cc font_size.cc @@ -44,7 +42,6 @@ def build(bld): headers = """ collect.h colour.h - dcp_reader.h effect.h exceptions.h font_size.h |
