Subtitle naming fixes.
authorCarl Hetherington <cth@carlh.net>
Tue, 9 Jun 2015 13:46:50 +0000 (14:46 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 9 Jun 2015 13:46:50 +0000 (14:46 +0100)
src/lib/util.cc
src/lib/util.h
src/lib/writer.cc

index b662f8679f42b1921c97f02dfe894ade2c334a3e..656cf9f4d16613ce7547634f7a15e177cef39059 100644 (file)
@@ -686,9 +686,3 @@ audio_asset_filename (shared_ptr<dcp::SoundAsset> asset)
 {
        return "pcm_" + asset->id() + ".mxf";
 }
-
-string
-subtitle_content_filename (shared_ptr<dcp::SubtitleAsset> asset)
-{
-       return "sub_" + asset->id() + ".xml";
-}
index 957453fb728e73e4d03c30ad67eac5ec24168074..f908d4fedf3332dc84d8f6e4c3e2b35086022690 100644 (file)
@@ -104,7 +104,6 @@ extern void write_frame_info (FILE* file, int frame, Eyes eyes, dcp::FrameInfo i
 extern std::map<std::string, std::string> split_get_request (std::string url);
 extern std::string video_asset_filename (boost::shared_ptr<dcp::PictureAsset> asset);
 extern std::string audio_asset_filename (boost::shared_ptr<dcp::SoundAsset> asset);
-extern std::string subtitle_content_filename (boost::shared_ptr<dcp::SubtitleAsset> content);
 
 #endif
 
index 9e2cf4bd4fbef9624d78f3d8ca8dc0034d01f113..7e47c317ee7ff09f8226b26f04e558168de84f73 100644 (file)
@@ -524,9 +524,15 @@ Writer::finish ()
                        _subtitle_asset->add_font (i->id, i->file.get_value_or (liberation));
                }
 
-               _subtitle_asset->write (
-                       _film->dir (_film->dcp_name ()) / _subtitle_asset->id () / subtitle_content_filename (_subtitle_asset)
-                       );
+               if (dynamic_pointer_cast<dcp::InteropSubtitleAsset> (_subtitle_asset)) {
+                       boost::filesystem::path directory = _film->dir (_film->dcp_name ()) / _subtitle_asset->id ();
+                       boost::filesystem::create_directories (directory);
+                       _subtitle_asset->write (directory / ("sub_" + _subtitle_asset->id() + ".xml"));
+               } else {
+                       _subtitle_asset->write (
+                               _film->dir (_film->dcp_name ()) / ("sub_" + _subtitle_asset->id() + ".mxf")
+                               );
+               }
                
                reel->add (shared_ptr<dcp::ReelSubtitleAsset> (
                                   new dcp::ReelSubtitleAsset (