summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-01-13 21:18:24 +0000
committerCarl Hetherington <cth@carlh.net>2018-01-13 21:18:24 +0000
commit0a47e4c639c5dbdbec5172ef0366e6f02428f74f (patch)
treefd17510a09f82e947f73632451b1b04d80a3018e /src
parent9d1be2c7044259c1701859cd54850cf553288a51 (diff)
Fix missing HAlign/VAlign attributes in subtitles when their value is negative.
Diffstat (limited to 'src')
-rw-r--r--src/object.h2
-rw-r--r--src/subtitle_asset_internal.cc7
2 files changed, 6 insertions, 3 deletions
diff --git a/src/object.h b/src/object.h
index 0804f4cf..8364efff 100644
--- a/src/object.h
+++ b/src/object.h
@@ -42,6 +42,7 @@
#include <string>
class write_interop_subtitle_test;
+class write_interop_subtitle_test2;
class write_smpte_subtitle_test;
class write_smpte_subtitle_test2;
@@ -64,6 +65,7 @@ public:
protected:
friend class ::write_interop_subtitle_test;
+ friend class ::write_interop_subtitle_test2;
friend class ::write_smpte_subtitle_test;
friend class ::write_smpte_subtitle_test2;
diff --git a/src/subtitle_asset_internal.cc b/src/subtitle_asset_internal.cc
index bd28cdcb..4ae90461 100644
--- a/src/subtitle_asset_internal.cc
+++ b/src/subtitle_asset_internal.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
This file is part of libdcp.
@@ -33,6 +33,7 @@
#include "subtitle_asset_internal.h"
#include "subtitle_string.h"
+#include <cmath>
using std::string;
using std::map;
@@ -156,7 +157,7 @@ order::Text::as_xml (xmlpp::Element* parent, Context& context) const
}
}
- if (_h_position > ALIGN_EPSILON) {
+ if (fabs(_h_position) > ALIGN_EPSILON) {
if (context.standard == SMPTE) {
e->set_attribute ("Hposition", raw_convert<string> (_h_position * 100, 6));
} else {
@@ -170,7 +171,7 @@ order::Text::as_xml (xmlpp::Element* parent, Context& context) const
e->set_attribute ("VAlign", valign_to_string (_v_align));
}
- if (_v_position > ALIGN_EPSILON) {
+ if (fabs(_v_position) > ALIGN_EPSILON) {
if (context.standard == SMPTE) {
e->set_attribute ("Vposition", raw_convert<string> (_v_position * 100, 6));
} else {