From: Carl Hetherington Date: Sun, 24 May 2015 23:13:36 +0000 (+0100) Subject: 3cb5a4c2064d4cf4d8cbdca75a84615a6c56fb7c from master; use j2c_uuid and pcm_uuid for... X-Git-Tag: v2.0.48~68 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=5ae794047e5ceee4502e59211f0083a60224f4bd 3cb5a4c2064d4cf4d8cbdca75a84615a6c56fb7c from master; use j2c_uuid and pcm_uuid for picture/sound MXF filenames. --- diff --git a/TO_PORT b/TO_PORT index ee4121bcb..b49b094d9 100644 --- a/TO_PORT +++ b/TO_PORT @@ -1,4 +1,3 @@ -21f33acd3580c6e5c4ec1e7449b419c3178aa8ab Multi-stream audio stuff. 681d95c83868310330984ae65589a1021bbe07d6 21cb435ed5eb250a7f94887ddd75f6b367ea231f @@ -15,3 +14,5 @@ dd843f32f8f915a2fe984126ac338b26fa83546d c13575f0483d6e92956fa7fb2e424572702236dc 33a2bece96b7875134c99a2053a2fc59e828ae33 b41b6528fbe0d270415a8500a612da19469e49e4 +c040b70eb777630ef0fdbb80cd419f6b3da4b46e +ea2becf3a859bc38c783d15f165d71f2ccb8c1d6 diff --git a/cscript b/cscript index aa5605a11..2fe91132b 100644 --- a/cscript +++ b/cscript @@ -206,7 +206,7 @@ def make_spec(filename, version, target): def dependencies(target): return (('ffmpeg-cdist', '0492ad2'), - ('libdcp', '757b54a'), + ('libdcp', '6d5c9b4'), ('libsub', 'f66b11f')) def configure_options(target): diff --git a/src/lib/film.cc b/src/lib/film.cc index 35773c797..0af4c5611 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -228,24 +228,6 @@ Film::internal_video_mxf_filename () const return video_identifier() + ".mxf"; } -boost::filesystem::path -Film::video_mxf_filename () const -{ - return filename_safe_name() + "_video.mxf"; -} - -boost::filesystem::path -Film::audio_mxf_filename () const -{ - return filename_safe_name() + "_audio.mxf"; -} - -boost::filesystem::path -Film::subtitle_xml_filename () const -{ - return filename_safe_name() + "_subtitle.xml"; -} - string Film::filename_safe_name () const { diff --git a/src/lib/film.h b/src/lib/film.h index f61062be0..f55d8182f 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -68,10 +68,6 @@ public: boost::filesystem::path internal_video_mxf_filename () const; boost::filesystem::path audio_analysis_dir () const; - boost::filesystem::path video_mxf_filename () const; - boost::filesystem::path audio_mxf_filename () const; - boost::filesystem::path subtitle_xml_filename () const; - void send_dcp_to_tms (); void make_dcp (); diff --git a/src/lib/util.cc b/src/lib/util.cc index 99d9ba2c4..0b35ad539 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -37,6 +37,9 @@ #include "safe_stringstream.h" #include #include +#include +#include +#include #include #include #include @@ -671,3 +674,20 @@ write_frame_info (FILE* file, int frame, Eyes eyes, dcp::FrameInfo info) fwrite (info.hash.c_str(), 1, info.hash.size(), file); } +string +video_mxf_filename (shared_ptr mxf) +{ + return "j2c_" + mxf->id() + ".mxf"; +} + +string +audio_mxf_filename (shared_ptr mxf) +{ + return "pcm_" + mxf->id() + ".mxf"; +} + +string +subtitle_content_filename (shared_ptr content) +{ + return "sub_" + content->id() + ".xml"; +} diff --git a/src/lib/util.h b/src/lib/util.h index 44bd7dced..5413e4814 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -42,6 +42,12 @@ extern "C" { #undef check +namespace dcp { + class PictureMXF; + class SoundMXF; + class SubtitleContent; +} + /** The maximum number of audio channels that we can have in a DCP */ #define MAX_DCP_AUDIO_CHANNELS 12 /** Message broadcast to find possible encoding servers */ @@ -97,6 +103,9 @@ extern dcp::FrameInfo read_frame_info (FILE* file, int frame, Eyes eyes); extern void write_frame_info (FILE* file, int frame, Eyes eyes, dcp::FrameInfo info); extern int64_t video_frames_to_audio_frames (VideoFrame v, float audio_sample_rate, float frames_per_second); extern std::map split_get_request (std::string url); +extern std::string video_mxf_filename (boost::shared_ptr mxf); +extern std::string audio_mxf_filename (boost::shared_ptr mxf); +extern std::string subtitle_content_filename (boost::shared_ptr content); #endif diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 802877188..b71ff2891 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -33,6 +33,7 @@ #include "encoded_data.h" #include "version.h" #include "font.h" +#include "util.h" #include #include #include @@ -125,7 +126,7 @@ Writer::Writer (shared_ptr f, weak_ptr j) /* Write the sound MXF into the film directory so that we leave the creation of the DCP directory until the last minute. */ - _sound_mxf_writer = _sound_mxf->start_write (_film->directory() / _film->audio_mxf_filename(), _film->interop() ? dcp::INTEROP : dcp::SMPTE); + _sound_mxf_writer = _sound_mxf->start_write (_film->directory() / audio_mxf_filename (_sound_mxf), _film->interop() ? dcp::INTEROP : dcp::SMPTE); } /* Check that the signer is OK if we need one */ @@ -445,7 +446,7 @@ Writer::finish () boost::filesystem::path video_to; video_to /= _film->dir (_film->dcp_name()); - video_to /= _film->video_mxf_filename (); + video_to /= video_mxf_filename (_picture_mxf); boost::system::error_code ec; boost::filesystem::create_hard_link (video_from, video_to, ec); @@ -465,12 +466,12 @@ Writer::finish () if (_sound_mxf) { boost::filesystem::path audio_to; audio_to /= _film->dir (_film->dcp_name ()); - audio_to /= _film->audio_mxf_filename (); + audio_to /= audio_mxf_filename (_sound_mxf); - boost::filesystem::rename (_film->file (_film->audio_mxf_filename ()), audio_to, ec); + boost::filesystem::rename (_film->file (audio_mxf_filename (_sound_mxf)), audio_to, ec); if (ec) { throw FileError ( - String::compose (_("could not move audio MXF into the DCP (%1)"), ec.value ()), _film->file (_film->audio_mxf_filename ()) + String::compose (_("could not move audio MXF into the DCP (%1)"), ec.value ()), audio_mxf_filename (_sound_mxf) ); } @@ -532,7 +533,7 @@ Writer::finish () dcp.add (shared_ptr (new dcp::Font (to))); } - _subtitle_content->write_xml (_film->dir (_film->dcp_name ()) / _subtitle_content->id () / _film->subtitle_xml_filename ()); + _subtitle_content->write_xml (_film->dir (_film->dcp_name ()) / _subtitle_content->id () / subtitle_content_filename (_subtitle_content)); reel->add (shared_ptr ( new dcp::ReelSubtitleAsset ( _subtitle_content, diff --git a/test/ffmpeg_dcp_test.cc b/test/ffmpeg_dcp_test.cc index 559277e51..add1cb425 100644 --- a/test/ffmpeg_dcp_test.cc +++ b/test/ffmpeg_dcp_test.cc @@ -25,6 +25,7 @@ #include #include +#include #include "lib/film.h" #include "lib/ffmpeg_content.h" #include "lib/ratio.h" @@ -61,7 +62,11 @@ BOOST_AUTO_TEST_CASE (ffmpeg_have_dcp_test) BOOST_CHECK (!f->cpls().empty()); p /= f->dcp_name(); - p /= f->video_mxf_filename(); - boost::filesystem::remove (p); + for (boost::filesystem::directory_iterator i = boost::filesystem::directory_iterator (p); i != boost::filesystem::directory_iterator(); ++i) { + if (boost::algorithm::starts_with (i->path().string(), "j2c")) { + p /= i->path (); + boost::filesystem::remove (p); + } + } BOOST_CHECK (f->cpls().empty()); }