FIXME: Remove all use of add_child() from xmlpp.
[dcpomatic.git] / src / lib / ffmpeg_audio_stream.cc
index 91020e288a4fa113856b77733304c73ddb20342d..24f96b889217edf6581bcbbcfd42778dc0e8b7fb 100644 (file)
 
 #include "ffmpeg_audio_stream.h"
 #include <dcp/raw_convert.h>
-#include "warnings.h"
-DCPOMATIC_DISABLE_WARNINGS
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <libxml++/libxml++.h>
-DCPOMATIC_ENABLE_WARNINGS
+LIBDCP_ENABLE_WARNINGS
 #include <libcxml/cxml.h>
 
 
@@ -39,7 +39,8 @@ FFmpegAudioStream::FFmpegAudioStream (cxml::ConstNodePtr node, int version)
        , AudioStream (
                node->number_child<int>("FrameRate"),
                node->optional_number_child<Frame>("Length").get_value_or(0),
-               AudioMapping (node->node_child("Mapping"), version)
+               AudioMapping(node->node_child("Mapping"), version),
+               node->optional_number_child<int>("BitDepth")
                )
 {
        optional<ContentTime::Type> const f = node->optional_number_child<ContentTime::Type>("FirstAudio");
@@ -51,16 +52,19 @@ FFmpegAudioStream::FFmpegAudioStream (cxml::ConstNodePtr node, int version)
 
 
 void
-FFmpegAudioStream::as_xml (xmlpp::Node* root) const
+FFmpegAudioStream::as_xml(xmlpp::Element* root) const
 {
        FFmpegStream::as_xml (root);
-       root->add_child("FrameRate")->add_child_text(raw_convert<string>(frame_rate()));
-       root->add_child("Length")->add_child_text(raw_convert<string>(length()));
-       mapping().as_xml (root->add_child("Mapping"));
+       cxml::add_text_child(root, "FrameRate", raw_convert<string>(frame_rate()));
+       cxml::add_text_child(root, "Length", raw_convert<string>(length()));
+       mapping().as_xml(cxml::add_child(root, "Mapping"));
        if (first_audio) {
-               root->add_child("FirstAudio")->add_child_text(raw_convert<string>(first_audio.get().get()));
+               cxml::add_text_child(root, "FirstAudio", raw_convert<string>(first_audio.get().get()));
        }
        if (codec_name) {
-               root->add_child("CodecName")->add_child_text(codec_name.get());
+               cxml::add_text_child(root, "CodecName", codec_name.get());
+       }
+       if (bit_depth()) {
+               cxml::add_text_child(root, "BitDepth", raw_convert<string>(bit_depth().get()));
        }
 }