Untested use of Frame for video/audio content lengths.
[dcpomatic.git] / src / lib / single_stream_audio_content.cc
index ac4da25ee720aa2253bd62262d703e28fd09cad6..b470d1a995427d492e5062e33a191e78cb8694b1 100644 (file)
 
 */
 
-#include <dcp/raw_convert.h>
 #include "single_stream_audio_content.h"
 #include "audio_examiner.h"
 #include "film.h"
+#include "raw_convert.h"
 
 using std::string;
+using std::cout;
 using boost::shared_ptr;
-using dcp::raw_convert;
 
 SingleStreamAudioContent::SingleStreamAudioContent (shared_ptr<const Film> f)
        : Content (f)
@@ -52,7 +52,7 @@ SingleStreamAudioContent::SingleStreamAudioContent (shared_ptr<const Film> f, cx
        , _audio_mapping (node->node_child ("AudioMapping"), version)
 {
        _audio_channels = node->number_child<int> ("AudioChannels");
-       _audio_length = ContentTime (node->number_child<ContentTime::Type> ("AudioLength"));
+       _audio_length = node->number_child<Frame> ("AudioLength");
        _audio_frame_rate = node->number_child<int> ("AudioFrameRate");
 }
 
@@ -73,7 +73,7 @@ SingleStreamAudioContent::as_xml (xmlpp::Node* node) const
 {
        AudioContent::as_xml (node);
        node->add_child("AudioChannels")->add_child_text (raw_convert<string> (audio_channels ()));
-       node->add_child("AudioLength")->add_child_text (raw_convert<string> (audio_length().get ()));
+       node->add_child("AudioLength")->add_child_text (raw_convert<string> (audio_length ()));
        node->add_child("AudioFrameRate")->add_child_text (raw_convert<string> (audio_frame_rate ()));
        _audio_mapping.as_xml (node->add_child("AudioMapping"));
 }
@@ -92,10 +92,12 @@ SingleStreamAudioContent::take_from_audio_examiner (shared_ptr<AudioExaminer> ex
        signal_changed (AudioContentProperty::AUDIO_LENGTH);
        signal_changed (AudioContentProperty::AUDIO_FRAME_RATE);
 
+       int const p = processed_audio_channels ();
+
        {
                boost::mutex::scoped_lock lm (_mutex);
                /* XXX: do this in signal_changed...? */
-               _audio_mapping = AudioMapping (_audio_channels);
+               _audio_mapping = AudioMapping (p);
                _audio_mapping.make_default ();
        }