Make sure SMPTE subtitle MXFs get the right intrinsic duration.
[dcpomatic.git] / src / lib / writer.cc
index bace6602dfb6331fa74a643244757fc4f9caeb81..3f856737b2e00b7fbc13ce342a068e8b66bfc485 100644 (file)
@@ -617,6 +617,13 @@ Writer::finish ()
                        boost::filesystem::create_directories (directory);
                        _subtitle_asset->write (directory / ("sub_" + _subtitle_asset->id() + ".xml"));
                } else {
+                       /* All our assets should be the same length; use the picture asset length here
+                          as a reference to set the subtitle one.
+                       */
+                       dynamic_pointer_cast<dcp::SMPTESubtitleAsset>(_subtitle_asset)->set_intrinsic_duration (
+                               reel_picture_asset->intrinsic_duration ()
+                               );
+
                        _subtitle_asset->write (
                                _film->dir (_film->dcp_name ()) / ("sub_" + _subtitle_asset->id() + ".mxf")
                                );