Make read_writer_info do more stuff, and return id.
authorCarl Hetherington <cth@carlh.net>
Thu, 4 Jun 2015 21:32:52 +0000 (22:32 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 5 Jun 2015 13:35:31 +0000 (14:35 +0100)
src/metadata.cc
src/metadata.h
src/mono_picture_mxf.cc
src/mxf.cc
src/mxf.h
src/sound_mxf.cc
src/stereo_picture_mxf.cc

index e2e19f3c014b05955a2014107fdf75c566dbacf2..a77878bb2fb6d2d4035e80625ff36a1615e13362 100644 (file)
@@ -24,6 +24,7 @@
 #include "metadata.h"
 #include "util.h"
 #include "local_time.h"
+#include "AS_DCP.h"
 #include <sstream>
 #include <iomanip>
 #include <time.h>
@@ -39,6 +40,13 @@ MXFMetadata::MXFMetadata ()
 
 }
 
+void
+MXFMetadata::read (ASDCP::WriterInfo const & info)
+{
+       company_name = info.CompanyName;
+       product_name = info.ProductName;
+       product_version = info.ProductVersion;
+}
 
 XMLMetadata::XMLMetadata ()
        : issuer ("libdcp" LIBDCP_VERSION)
index b1fcdd8e9936ea89836fdedb37772bf1b7dc3efa..734e58b9862f87f12f3581caa14f43e669840725 100644 (file)
 
 class utc_offset_to_string_test;
 
+namespace ASDCP {
+       class WriterInfo;
+}
+
 namespace dcp
 {
 
@@ -39,6 +43,8 @@ class MXFMetadata
 public:
        MXFMetadata ();
 
+       void read (ASDCP::WriterInfo const & info);
+
        std::string company_name;
        std::string product_name;
        std::string product_version;
index 09311a01fb0a9cf39e131ee4a051e646879c91b4..2a1e0066fb83ed33d593773dd5078fa7573781bf 100644 (file)
@@ -53,7 +53,7 @@ MonoPictureMXF::MonoPictureMXF (boost::filesystem::path file)
                boost::throw_exception (DCPReadError ("could not read video MXF information"));
        }
 
-       read_writer_info (info);
+       _id = read_writer_info (info);
 }
 
 MonoPictureMXF::MonoPictureMXF (Fraction edit_rate)
index d259bd97eea44511e5b66a4cc8139f58728de267..bc5c0bd17d4c4fb76cafe47fab691a461f027bd2 100644 (file)
@@ -131,10 +131,16 @@ MXF::set_key (Key key)
        }
 }
 
-void
+string
 MXF::read_writer_info (ASDCP::WriterInfo const & info)
 {
        char buffer[64];
+
+       Kumu::bin2UUIDhex (info.CryptographicKeyID, ASDCP::UUIDlen, buffer, sizeof (buffer));
+       _key_id = buffer;
+
+       _metadata.read (info);
+       
        Kumu::bin2UUIDhex (info.AssetUUID, ASDCP::UUIDlen, buffer, sizeof (buffer));
-       _id = buffer;
+       return buffer;
 }
index be94b293f73897a8286de7a77c18b0e65507eca1..b5200b08ed3eb615287f0bd657ffef05df721d46 100644 (file)
--- a/src/mxf.h
+++ b/src/mxf.h
@@ -98,7 +98,7 @@ protected:
        template <class P, class Q>
        friend void start (PictureMXFWriter* writer, boost::shared_ptr<P> state, Standard standard, Q* mxf, uint8_t* data, int size);
 
-       void read_writer_info (ASDCP::WriterInfo const &);
+       std::string read_writer_info (ASDCP::WriterInfo const &);
        /** Fill in a ADSCP::WriteInfo struct.
         *  @param w struct to fill in.
         *  @param standard INTEROP or SMPTE.
index 5008da4687072a207bac96e80087daccc1104b98..adeeddcf7783dd9aac84206cadda75ff5ea9b353 100644 (file)
@@ -71,8 +71,7 @@ SoundMXF::SoundMXF (boost::filesystem::path file)
                boost::throw_exception (DCPReadError ("could not read audio MXF information"));
        }
 
-       read_writer_info (info);
-
+       _id = read_writer_info (info);
 }
 
 SoundMXF::SoundMXF (Fraction edit_rate, int sampling_rate, int channels)
index 2ca007620b37335196e905c5a6823e7f80daf67a..ce30d0be7b44cd43b16b2bf3a5135ef9d719d17f 100644 (file)
@@ -52,7 +52,7 @@ StereoPictureMXF::StereoPictureMXF (boost::filesystem::path file)
                boost::throw_exception (DCPReadError ("could not read video MXF information"));
        }
 
-       read_writer_info (info);
+       _id = read_writer_info (info);
 }
 
 StereoPictureMXF::StereoPictureMXF (Fraction edit_rate)