diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-01-13 21:18:24 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-01-13 21:18:24 +0000 |
| commit | 0a47e4c639c5dbdbec5172ef0366e6f02428f74f (patch) | |
| tree | fd17510a09f82e947f73632451b1b04d80a3018e /src | |
| parent | 9d1be2c7044259c1701859cd54850cf553288a51 (diff) | |
Fix missing HAlign/VAlign attributes in subtitles when their value is negative.
Diffstat (limited to 'src')
| -rw-r--r-- | src/object.h | 2 | ||||
| -rw-r--r-- | src/subtitle_asset_internal.cc | 7 |
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 { |
