Configurable default format and content type (#133).
[dcpomatic.git] / src / lib / film.cc
index a42b874e856d3470e9d7526bc8d5b6b53a9cd771..0ca3746044291ff62de38ba8d130873a86b5001c 100644 (file)
@@ -88,8 +88,8 @@ int const Film::state_version = 4;
 Film::Film (string d, bool must_exist)
        : _use_dci_name (true)
        , _trust_content_header (true)
-       , _dcp_content_type (0)
-       , _format (0)
+       , _dcp_content_type (Config::instance()->default_dcp_content_type ())
+       , _format (Config::instance()->default_format ())
        , _scaler (Scaler::from_id ("bicubic"))
        , _trim_start (0)
        , _trim_end (0)
@@ -143,6 +143,8 @@ Film::Film (string d, bool must_exist)
        
        if (must_exist) {
                read_metadata ();
+       } else {
+               write_metadata ();
        }
 
        _log.reset (new FileLog (file ("log")));
@@ -202,6 +204,7 @@ string
 Film::video_state_identifier () const
 {
        assert (format ());
+       LocaleGuard lg;
 
        pair<string, string> f = Filter::ffmpeg_strings (filters());
 
@@ -426,6 +429,7 @@ void
 Film::write_metadata () const
 {
        boost::mutex::scoped_lock lm (_state_mutex);
+       LocaleGuard lg;
 
        boost::filesystem::create_directories (directory());
 
@@ -513,6 +517,7 @@ void
 Film::read_metadata ()
 {
        boost::mutex::scoped_lock lm (_state_mutex);
+       LocaleGuard lg;
 
        _external_audio.clear ();
        _content_audio_streams.clear ();