Put some get/sets in FFmpegAudioStream.
authorCarl Hetherington <cth@carlh.net>
Fri, 25 Jul 2014 08:25:09 +0000 (09:25 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 25 Jul 2014 08:25:09 +0000 (09:25 +0100)
src/lib/ffmpeg_audio_stream.cc
src/lib/ffmpeg_audio_stream.h
src/lib/ffmpeg_content.cc
test/stream_test.cc

index 255952b8fd02b366535c472823031f95f1ad97d1..d8666e89e44416e611e693a273b2ce9884c2b296 100644 (file)
@@ -27,10 +27,10 @@ using dcp::raw_convert;
 
 FFmpegAudioStream::FFmpegAudioStream (cxml::ConstNodePtr node, int version)
        : FFmpegStream (node)
-       , mapping (node->node_child ("Mapping"), version)
+       , _frame_rate (node->number_child<int> ("FrameRate"))
+       , _channels (node->number_child<int64_t> ("Channels"))
+       , _mapping (node->node_child ("Mapping"), version)
 {
-       frame_rate = node->number_child<int> ("FrameRate");
-       channels = node->number_child<int64_t> ("Channels");
        first_audio = node->optional_number_child<double> ("FirstAudio");
 }
 
@@ -38,10 +38,10 @@ void
 FFmpegAudioStream::as_xml (xmlpp::Node* root) const
 {
        FFmpegStream::as_xml (root);
-       root->add_child("FrameRate")->add_child_text (raw_convert<string> (frame_rate));
-       root->add_child("Channels")->add_child_text (raw_convert<string> (channels));
+       root->add_child("FrameRate")->add_child_text (raw_convert<string> (_frame_rate));
+       root->add_child("Channels")->add_child_text (raw_convert<string> (_channels));
        if (first_audio) {
                root->add_child("FirstAudio")->add_child_text (raw_convert<string> (first_audio.get().get()));
        }
-       mapping.as_xml (root->add_child("Mapping"));
+       _mapping.as_xml (root->add_child("Mapping"));
 }
index 8a95254227a854ceff99e5ce8d2e79fececb7398..1587afcae4528a8f979e92aeaedd111b7aa4c08e 100644 (file)
@@ -28,20 +28,33 @@ class FFmpegAudioStream : public FFmpegStream
 public:
        FFmpegAudioStream (std::string n, int i, int f, int c)
                : FFmpegStream (n, i)
-               , frame_rate (f)
-               , channels (c)
-               , mapping (c)
+               , _frame_rate (f)
+               , _channels (c)
+               , _mapping (c)
        {
-               mapping.make_default ();
+               _mapping.make_default ();
        }
 
        FFmpegAudioStream (cxml::ConstNodePtr, int);
 
        void as_xml (xmlpp::Node *) const;
 
-       int frame_rate;
-       int channels;
-       AudioMapping mapping;
+       int frame_rate () const {
+               return _frame_rate;
+       }
+       
+       int channels () const {
+               return _channels;
+       }
+       
+       AudioMapping mapping () const {
+               return _mapping;
+       }
+
+       void set_mapping (AudioMapping m) {
+               _mapping = m;
+       }
+       
        boost::optional<ContentTime> first_audio;
 
 private:
@@ -50,8 +63,12 @@ private:
        /* Constructor for tests */
        FFmpegAudioStream ()
                : FFmpegStream ("", 0)
-               , frame_rate (0)
-               , channels (0)
-               , mapping (1)
+               , _frame_rate (0)
+               , _channels (0)
+               , _mapping (1)
        {}
+
+       int _frame_rate;
+       int _channels;
+       AudioMapping _mapping;
 };
index e14d1bd6bf784454639d1e73408c5bf5a7208a68..0af53d8830a52ab8ca8518b0bae5591be12c6127 100644 (file)
@@ -284,7 +284,7 @@ FFmpegContent::audio_channels () const
                return 0;
        }
 
-       return _audio_stream->channels;
+       return _audio_stream->channels ();
 }
 
 int
@@ -296,7 +296,7 @@ FFmpegContent::audio_frame_rate () const
                return 0;
        }
 
-       return _audio_stream->frame_rate;
+       return _audio_stream->frame_rate ();
 }
 
 bool
@@ -328,7 +328,7 @@ FFmpegContent::audio_mapping () const
                return AudioMapping ();
        }
 
-       return _audio_stream->mapping;
+       return _audio_stream->mapping ();
 }
 
 void
@@ -345,7 +345,7 @@ FFmpegContent::set_filters (vector<Filter const *> const & filters)
 void
 FFmpegContent::set_audio_mapping (AudioMapping m)
 {
-       audio_stream()->mapping = m;
+       audio_stream()->set_mapping (m);
        AudioContent::set_audio_mapping (m);
 }
 
index 16ab83baf7747ea933ac1c59d7d115e04e22c591..de2108066bbc5c3147903bacdb17cbe759dafc61 100644 (file)
@@ -73,16 +73,16 @@ BOOST_AUTO_TEST_CASE (stream_test)
        FFmpegAudioStream a (cxml::NodePtr (new cxml::Node (root)), 5);
 
        BOOST_CHECK_EQUAL (a.identifier(), "4");
-       BOOST_CHECK_EQUAL (a.frame_rate, 44100);
-       BOOST_CHECK_EQUAL (a.channels, 2);
+       BOOST_CHECK_EQUAL (a.frame_rate(), 44100);
+       BOOST_CHECK_EQUAL (a.channels(), 2);
        BOOST_CHECK_EQUAL (a.name, "hello there world");
-       BOOST_CHECK_EQUAL (a.mapping.content_channels(), 2);
+       BOOST_CHECK_EQUAL (a.mapping().content_channels(), 2);
 
-       BOOST_CHECK_EQUAL (a.mapping.get (0, dcp::LEFT), 1);
-       BOOST_CHECK_EQUAL (a.mapping.get (0, dcp::RIGHT), 0);
-       BOOST_CHECK_EQUAL (a.mapping.get (0, dcp::CENTRE), 1);
-       BOOST_CHECK_EQUAL (a.mapping.get (1, dcp::LEFT), 0);
-       BOOST_CHECK_EQUAL (a.mapping.get (1, dcp::RIGHT), 1);
-       BOOST_CHECK_EQUAL (a.mapping.get (1, dcp::CENTRE), 1);
+       BOOST_CHECK_EQUAL (a.mapping().get (0, dcp::LEFT), 1);
+       BOOST_CHECK_EQUAL (a.mapping().get (0, dcp::RIGHT), 0);
+       BOOST_CHECK_EQUAL (a.mapping().get (0, dcp::CENTRE), 1);
+       BOOST_CHECK_EQUAL (a.mapping().get (1, dcp::LEFT), 0);
+       BOOST_CHECK_EQUAL (a.mapping().get (1, dcp::RIGHT), 1);
+       BOOST_CHECK_EQUAL (a.mapping().get (1, dcp::CENTRE), 1);
 }