# Use distro-provided FFmpeg on Arch
deps = []
- deps.append(('libdcp', 'v1.8.37'))
+ deps.append(('libdcp', 'v1.8.38'))
deps.append(('libsub', 'v1.6.42'))
deps.append(('leqm-nrt', '93ae9e6'))
deps.append(('rtaudio', 'f619b76'))
#include "job.h"
-#include "types.h"
#include "player_text.h"
+#include "text_type.h"
class Film;
#include "content_part.h"
+#include "types.h"
class Content;
* @brief AudioExaminer class.
*/
-#include "types.h"
-
/** @class AudioExaminer
* @brief Parent for classes which examine AudioContent for their pertinent details.
*/
#include "audio_buffers.h"
-#include "types.h"
#include "dcpomatic_time.h"
+#include "types.h"
#include <boost/thread.hpp>
#include <list>
#include "change_signaller.h"
#include "exception_store.h"
#include "text_ring_buffers.h"
+#include "text_type.h"
#include "video_ring_buffers.h"
#include <boost/asio.hpp>
#include <boost/signals2.hpp>
#include "filter.h"
#include "log.h"
#include "ratio.h"
-#include "types.h"
#include "zipper.h"
#include <dcp/certificate_chain.h>
#include <dcp/name_format.h>
#include "export_config.h"
#include "rough_duration.h"
#include "state.h"
-#include "types.h"
#include <dcp/name_format.h>
#include <dcp/certificate_chain.h>
#include <dcp/encrypted_kdm.h>
#include "change_signaller.h"
#include "dcpomatic_time.h"
#include "signaller.h"
-#include "types.h"
#include "user_property.h"
+#include "text_type.h"
#include <libcxml/cxml.h>
#include <boost/filesystem.hpp>
#include <boost/signals2.hpp>
*/
+
#ifndef DCPOMATIC_CONTENT_ATMOS_H
#define DCPOMATIC_CONTENT_ATMOS_H
+
#include "atmos_metadata.h"
#include "types.h"
#include <dcp/atmos_asset_reader.h>
+
/** @class ContentAtmos
* @brief Some Atmos data that has come out of a decoder.
*/
*/
+
#ifndef DCPOMATIC_CONTENT_AUDIO_H
#define DCPOMATIC_CONTENT_AUDIO_H
+
/** @file src/lib/content_audio.h
* @brief ContentAudio class.
*/
+
#include "audio_buffers.h"
#include "types.h"
+
/** @class ContentAudio
* @brief A block of audio from a piece of content, with a timestamp as a frame within that content.
*/
Frame frame;
};
+
#endif
#include "dcpomatic_time.h"
#include "rect.h"
#include "string_text.h"
-#include "types.h"
#include <dcp/subtitle_string.h>
#include <vector>
*/
+
#ifndef DCPOMATIC_CONTENT_VIDEO_H
#define DCPOMATIC_CONTENT_VIDEO_H
+
#include "types.h"
+
class ImageProxy;
+
/** @class ContentVideo
* @brief A frame of video straight out of some content.
*/
*/
+
+#include "audio_content.h"
#include "copy_dcp_details_to_film.h"
#include "dcp_content.h"
+#include "dcp_content_type.h"
#include "film.h"
-#include "types.h"
-#include "video_content.h"
-#include "audio_content.h"
#include "ratio.h"
-#include "dcp_content_type.h"
+#include "video_content.h"
#include <map>
using std::map;
+using std::shared_ptr;
using std::string;
using std::vector;
-using std::shared_ptr;
void
#include "encoder.h"
#include "player_text.h"
#include "j2k_encoder.h"
-#include "types.h"
#include "writer.h"
#include <dcp/atmos_frame.h>
#include "resolution.h"
#include <libcxml/cxml.h>
#include <dcp/array_data.h>
+#include <dcp/openjpeg_image.h>
/** @file src/dcp_video_frame.h
*/
+
#ifndef DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H
#define DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H
+
#include "types.h"
#include <boost/date_time/posix_time/posix_time.hpp>
+
/** @class EncodeServerDescription
* @brief Class to describe a server to which we can send encoding work.
*/
#include "player.h"
#include "player_text.h"
-#include "types.h"
#include <boost/signals2.hpp>
*/
#include "image_proxy.h"
-#include "types.h"
#include <dcp/array_data.h>
#include <boost/thread/mutex.hpp>
#include <boost/filesystem.hpp>
#include "resolution.h"
#include "signaller.h"
#include "transcode_job.h"
+#include "types.h"
#include "util.h"
#include <dcp/encrypted_kdm.h>
#include <dcp/file.h>
#include "content.h"
#include "film.h"
#include "frame_rate_change.h"
-#include "types.h"
#include <cmath>
#include "i18n.h"
#include "audio_analyser.h"
#include "signaller.h"
#include "player_text.h"
-#include "types.h"
#include "dcp_text_track.h"
#include "dcpomatic_time.h"
#include "weak_film.h"
*/
-#include "types.h"
#include "dcpomatic_time.h"
+#include "types.h"
class ContentPart;
*/
-#include "types.h"
#include <samplerate.h>
+#include <memory>
class AudioBuffers;
#include "content_video.h"
-#include "types.h"
#include <boost/signals2.hpp>
*/
-#include "types.h"
-#include "player_text.h"
#include "dcp_text_track.h"
-#include "encoder.h"
#include "dcpomatic_time.h"
+#include "encoder.h"
+#include "player_text.h"
namespace dcp {
--- /dev/null
+/*
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
+
+ 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.
+
+ 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "compose.hpp"
+#include "dcpomatic_assert.h"
+#include "exceptions.h"
+#include "text_type.h"
+#include "types.h"
+
+#include "i18n.h"
+
+
+using std::string;
+
+
+TextType
+string_to_text_type(string s)
+{
+ if (s == "unknown") {
+ return TextType::UNKNOWN;
+ } else if (s == "open-subtitle") {
+ return TextType::OPEN_SUBTITLE;
+ } else if (s == "closed-caption") {
+ return TextType::CLOSED_CAPTION;
+ } else {
+ throw MetadataError(String::compose("Unknown text type %1", s));
+ }
+}
+
+string
+text_type_to_string(TextType t)
+{
+ switch (t) {
+ case TextType::UNKNOWN:
+ return "unknown";
+ case TextType::OPEN_SUBTITLE:
+ return "open-subtitle";
+ case TextType::CLOSED_CAPTION:
+ return "closed-caption";
+ default:
+ DCPOMATIC_ASSERT(false);
+ }
+}
+
+string
+text_type_to_name(TextType t)
+{
+ switch (t) {
+ case TextType::UNKNOWN:
+ return _("Timed text");
+ case TextType::OPEN_SUBTITLE:
+ return _("Open subtitles");
+ case TextType::CLOSED_CAPTION:
+ return _("Closed captions");
+ default:
+ DCPOMATIC_ASSERT(false);
+ }
+}
+
+
--- /dev/null
+/*
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
+
+ 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.
+
+ 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#ifndef DCPOMATIC_TEXT_TYPE_H
+#define DCPOMATIC_TEXT_TYPE_H
+
+
+#include <string>
+
+
+/** Type of captions.
+ *
+ * The generally accepted definitions seem to be:
+ * - subtitles: text for an audience who doesn't speak the film's language
+ * - captions: text for a hearing-impaired audience
+ * - open: on-screen
+ * - closed: only visible by some audience members
+ *
+ * At the moment DoM supports open subtitles and closed captions.
+ *
+ * There is some use of the word `subtitle' in the code which may mean
+ * caption in some contexts.
+ */
+enum class TextType
+{
+ UNKNOWN,
+ OPEN_SUBTITLE,
+ CLOSED_CAPTION,
+ COUNT
+};
+
+extern std::string text_type_to_string(TextType t);
+extern std::string text_type_to_name(TextType t);
+extern TextType string_to_text_type(std::string s);
+
+
+#endif
+
using dcp::raw_convert;
-TextType
-string_to_text_type (string s)
-{
- if (s == "unknown") {
- return TextType::UNKNOWN;
- } else if (s == "open-subtitle") {
- return TextType::OPEN_SUBTITLE;
- } else if (s == "closed-caption") {
- return TextType::CLOSED_CAPTION;
- } else {
- throw MetadataError (String::compose ("Unknown text type %1", s));
- }
-}
-
-string
-text_type_to_string (TextType t)
-{
- switch (t) {
- case TextType::UNKNOWN:
- return "unknown";
- case TextType::OPEN_SUBTITLE:
- return "open-subtitle";
- case TextType::CLOSED_CAPTION:
- return "closed-caption";
- default:
- DCPOMATIC_ASSERT (false);
- }
-}
-
-string
-text_type_to_name (TextType t)
-{
- switch (t) {
- case TextType::UNKNOWN:
- return _("Timed text");
- case TextType::OPEN_SUBTITLE:
- return _("Open subtitles");
- case TextType::CLOSED_CAPTION:
- return _("Closed captions");
- default:
- DCPOMATIC_ASSERT (false);
- }
-}
-
CPLSummary::CPLSummary (boost::filesystem::path p)
: dcp_directory (p.leaf().string())
{
};
-/** Type of captions.
- *
- * The generally accepted definitions seem to be:
- * - subtitles: text for an audience who doesn't speak the film's language
- * - captions: text for a hearing-impaired audience
- * - open: on-screen
- * - closed: only visible by some audience members
- *
- * At the moment DoM supports open subtitles and closed captions.
- *
- * There is some use of the word `subtitle' in the code which may mean
- * caption in some contexts.
- */
-enum class TextType
-{
- UNKNOWN,
- OPEN_SUBTITLE,
- CLOSED_CAPTION,
- COUNT
-};
-
-extern std::string text_type_to_string (TextType t);
-extern std::string text_type_to_name (TextType t);
-extern TextType string_to_text_type (std::string s);
-
-
struct CPLSummary
{
CPLSummary (boost::filesystem::path p);
#include "user_property.h"
#include "video_frame_type.h"
#include "video_range.h"
+#include "types.h"
#include <dcp/language_tag.h>
#include <boost/thread/mutex.hpp>
#include "pixel_quanta.h"
-#include "types.h"
#include "video_content.h"
#include <dcp/types.h>
#include "dcpomatic_time.h"
#include "player_video.h"
-#include "types.h"
#include <boost/thread/mutex.hpp>
#include <utility>
#include "exception_store.h"
#include "font_id_map.h"
#include "player_text.h"
-#include "types.h"
#include "weak_film.h"
#include <dcp/atmos_frame.h>
#include <boost/thread.hpp>
subtitle_analysis.cc
subtitle_encoder.cc
text_ring_buffers.cc
+ text_type.cc
timer.cc
transcode_job.cc
trusted_device.cc
#include "lib/audio_mapping.h"
#include "lib/named_channel.h"
-#include "lib/types.h"
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
#include <wx/wx.h>
#include "content_menu.h"
#include "lib/enum_indexed_vector.h"
#include "lib/film.h"
+#include "lib/text_type.h"
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
#include <wx/splitter.h>
#include "wx_util.h"
#include "lib/dcpomatic_time.h"
-#include "lib/types.h"
#include <dcp/raw_convert.h>
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
from waflib import Logs, Context
APPNAME = 'dcpomatic'
-libdcp_version = '1.8.13'
+libdcp_version = '1.8.38'
libsub_version = '1.6.13'
this_version = subprocess.Popen(shlex.split('git tag -l --points-at HEAD'), stdout=subprocess.PIPE).communicate()[0]