Cleanup: use vector instead of list.
[dcpomatic.git] / src / lib / dcp_subtitle_decoder.cc
index 4743ecf42c228fb1dcb2b65ee021ecb7289ce96f..617f7ec536530b71e83558f0f871b216cfe84312 100644 (file)
@@ -23,6 +23,7 @@
 #include "dcp_subtitle_decoder.h"
 #include "font.h"
 #include "text_content.h"
+#include "util.h"
 #include <dcp/interop_subtitle_asset.h>
 #include <dcp/load_font_node.h>
 
@@ -41,11 +42,17 @@ DCPSubtitleDecoder::DCPSubtitleDecoder (shared_ptr<const Film> film, shared_ptr<
        : Decoder (film)
 {
        /* Load the XML or MXF file */
-       auto const c = load (content->path(0));
-       c->fix_empty_font_ids ();
-       _subtitles = c->subtitles ();
+       auto const asset = load (content->path(0));
+       asset->fix_empty_font_ids ();
+       _subtitles = asset->subtitles ();
        _next = _subtitles.begin ();
 
+       if (dynamic_pointer_cast<dcp::InteropSubtitleAsset>(asset)) {
+               _standard = dcp::Standard::INTEROP;
+       } else {
+               _standard = dcp::Standard::SMPTE;
+       }
+
        text.push_back (make_shared<TextDecoder>(this, content->only_text()));
        update_position();
 }
@@ -102,7 +109,7 @@ DCPSubtitleDecoder::pass ()
                }
        }
 
-       only_text()->emit_plain (p, s);
+       only_text()->emit_plain(p, s, _standard);
 
        update_position();