Fix subtitle vertical position (#2367).
[dcpomatic.git] / src / lib / reel_writer.h
index 6e92e89230937bb2f8555b5e6c0695d6c6120462..d5b531f410ed9b6793237305296fbf43c83e66d9 100644 (file)
 #include "atmos_metadata.h"
 #include "dcp_text_track.h"
 #include "dcpomatic_time.h"
+#include "enum_indexed_vector.h"
 #include "font_id_map.h"
 #include "player_text.h"
 #include "referenced_reel_asset.h"
+#include "render_text.h"
 #include "types.h"
 #include "weak_film.h"
 #include <dcp/atmos_asset_writer.h>
@@ -120,12 +122,13 @@ private:
                std::set<DCPTextTrack> ensure_closed_captions
                ) const;
        void create_reel_markers (std::shared_ptr<dcp::Reel> reel) const;
+       float convert_vertical_position(StringText const& subtitle, dcp::Standard to) const;
 
        dcpomatic::DCPTimePeriod _period;
        /** the first picture frame index that does not already exist in our MXF */
        int _first_nonexistent_frame;
        /** the data of the last written frame, if there is one */
-       std::shared_ptr<const dcp::Data> _last_written[static_cast<int>(Eyes::COUNT)];
+       EnumIndexedVector<std::shared_ptr<const dcp::Data>, Eyes> _last_written;
        /** index of this reel within the DCP (starting from 0) */
        int _reel_index;
        /** number of reels in the DCP */
@@ -146,5 +149,7 @@ private:
        std::shared_ptr<dcp::AtmosAsset> _atmos_asset;
        std::shared_ptr<dcp::AtmosAssetWriter> _atmos_asset_writer;
 
+       mutable FontMetrics _font_metrics;
+
        static int const _info_size;
 };