Use dcp::file_to_string().
[dcpomatic.git] / src / lib / reel_writer.cc
index cd6a1a4b9d54c51d8d360dc3eae3c0823c15bc4e..521ba55df891f226393fdb7a6d12e5b139ebe6de 100644 (file)
@@ -168,12 +168,12 @@ ReelWriter::ReelWriter (
        }
 
        if (film()->audio_channels()) {
-               auto langs = film()->audio_languages();
+               auto lang = film()->audio_language();
                _sound_asset = make_shared<dcp::SoundAsset> (
                        dcp::Fraction(film()->video_frame_rate(), 1),
                        film()->audio_frame_rate(),
                        film()->audio_channels(),
-                       langs.empty() ? dcp::LanguageTag("en-US") : langs.front(),
+                       lang ? *lang : dcp::LanguageTag("en-US"),
                        standard
                        );
 
@@ -744,7 +744,8 @@ ReelWriter::create_reel (
 }
 
 void
-ReelWriter::calculate_digests (boost::function<void (float)> set_progress)
+ReelWriter::calculate_digests (std::function<void (float)> set_progress)
+try
 {
        if (_picture_asset) {
                _picture_asset->hash (set_progress);
@@ -757,6 +758,10 @@ ReelWriter::calculate_digests (boost::function<void (float)> set_progress)
        if (_atmos_asset) {
                _atmos_asset->hash (set_progress);
        }
+} catch (boost::thread_interrupted) {
+       /* set_progress contains an interruption_point, so any of these methods
+        * may throw thread_interrupted, at which point we just give up.
+        */
 }
 
 Frame