+ DCP (DCP &&);
+ DCP& operator= (DCP &&);
+
+ /** Read a DCP. This method does not do any deep checking of the DCP's validity, but
+ * if it comes across any bad things it will do one of two things.
+ *
+ * Errors that are so serious that they prevent the method from working will result
+ * in an exception being thrown. For example, a missing ASSETMAP means that the DCP
+ * can't be read without a lot of guesswork, so this will throw.
+ *
+ * Errors that are not fatal will be added to notes, if it's non-null. For example,
+ * if the DCP contains a mixture of Interop and SMPTE elements this will result
+ * in a note being added to the vector.
+ *
+ * For more thorough checking of a DCP's contents, see dcp::verify().
+ *
+ * @param notes List of notes that will be added to if non-0.
+ * @param ignore_incorrect_picture_mxf_type true to try loading MXF files marked as monoscopic
+ * as stereoscopic if the monoscopic load fails; fixes problems some 3D DCPs that (I think)
+ * have an incorrect descriptor in their MXF.
+ */
+ void read (std::vector<VerificationNote>* notes = nullptr, bool ignore_incorrect_picture_mxf_type = false);