summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-05-25 15:08:21 +0100
committerCarl Hetherington <cth@carlh.net>2016-05-25 15:08:21 +0100
commite4ed001fff70bd10b94e61bf36cdffd1a679286d (patch)
tree9147de6473246ed175814d4c2cfc3176fe2ba436 /test
parent216555fd5145ce4668d1a02337ed87edef64367b (diff)
Basic writing of DCPs containing Atmos MXFs; untested.
Diffstat (limited to 'test')
-rw-r--r--test/atmos_test.cc3
-rw-r--r--test/dcp_test.cc84
-rw-r--r--test/ref/DCP/dcp_test5/ASSETMAP.xml2
-rw-r--r--test/ref/DCP/dcp_test5/VOLINDEX.xml2
-rw-r--r--test/ref/DCP/dcp_test5/audio.mxfbin0 -> 161326 bytes
-rw-r--r--test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml2
-rw-r--r--test/ref/DCP/dcp_test5/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml2
-rw-r--r--test/ref/DCP/dcp_test5/video.mxfbin0 -> 26080 bytes
8 files changed, 88 insertions, 7 deletions
diff --git a/test/atmos_test.cc b/test/atmos_test.cc
index 42fc3082..b4c27626 100644
--- a/test/atmos_test.cc
+++ b/test/atmos_test.cc
@@ -22,7 +22,8 @@
#include <boost/test/unit_test.hpp>
#include <iostream>
-BOOST_AUTO_TEST_CASE (atmos_test)
+/** Check basic read of an Atmos asset */
+BOOST_AUTO_TEST_CASE (atmos_read_test)
{
dcp::AtmosAsset a (private_test / "20160218_NameOfFilm_FTR_OV_EN_A_dcs_r01.mxf");
BOOST_CHECK_EQUAL (a.first_frame(), 192);
diff --git a/test/dcp_test.cc b/test/dcp_test.cc
index 7b5f6f05..6769c496 100644
--- a/test/dcp_test.cc
+++ b/test/dcp_test.cc
@@ -25,12 +25,14 @@
#include "picture_asset_writer.h"
#include "sound_asset_writer.h"
#include "sound_asset.h"
+#include "atmos_asset.h"
#include "reel.h"
#include "test.h"
#include "file.h"
#include "reel_mono_picture_asset.h"
#include "reel_stereo_picture_asset.h"
#include "reel_sound_asset.h"
+#include "reel_atmos_asset.h"
#include "KM_util.h"
#include <sndfile.h>
#include <boost/test/unit_test.hpp>
@@ -95,8 +97,7 @@ BOOST_AUTO_TEST_CASE (dcp_test1)
cpl->add (shared_ptr<dcp::Reel> (
new dcp::Reel (
shared_ptr<dcp::ReelMonoPictureAsset> (new dcp::ReelMonoPictureAsset (mp, 0)),
- shared_ptr<dcp::ReelSoundAsset> (new dcp::ReelSoundAsset (ms, 0)),
- shared_ptr<dcp::ReelSubtitleAsset> ()
+ shared_ptr<dcp::ReelSoundAsset> (new dcp::ReelSoundAsset (ms, 0))
)
));
@@ -104,7 +105,7 @@ BOOST_AUTO_TEST_CASE (dcp_test1)
d.write_xml (dcp::SMPTE, xml_meta);
- /* build/test/DCP/dcp_test1 is checked against test/ref/DCP/dcp_test1 by run-tests.sh */
+ /* build/test/DCP/dcp_test1 is checked against test/ref/DCP/dcp_test1 by run/tests */
}
/** Test creation of a 3D DCP from very simple inputs */
@@ -167,8 +168,7 @@ BOOST_AUTO_TEST_CASE (dcp_test2)
cpl->add (shared_ptr<dcp::Reel> (
new dcp::Reel (
shared_ptr<dcp::ReelStereoPictureAsset> (new dcp::ReelStereoPictureAsset (mp, 0)),
- shared_ptr<dcp::ReelSoundAsset> (new dcp::ReelSoundAsset (ms, 0)),
- shared_ptr<dcp::ReelSubtitleAsset> ()
+ shared_ptr<dcp::ReelSoundAsset> (new dcp::ReelSoundAsset (ms, 0))
)
));
@@ -176,7 +176,7 @@ BOOST_AUTO_TEST_CASE (dcp_test2)
d.write_xml (dcp::SMPTE, xml_meta);
- /* build/test/DCP/dcp_test2 is checked against test/ref/DCP/dcp_test2 by run-tests.sh */
+ /* build/test/DCP/dcp_test2 is checked against test/ref/DCP/dcp_test2 by run/tests */
}
static void
@@ -206,3 +206,75 @@ BOOST_AUTO_TEST_CASE (dcp_test4)
BOOST_CHECK (!A.equals (B, dcp::EqualityOptions(), boost::bind (&note, _1, _2)));
}
+
+/** Test creation of a 2D DCP with an Atmos track */
+BOOST_AUTO_TEST_CASE (dcp_test5)
+{
+ Kumu::cth_test = true;
+
+ /* Some known metadata */
+ dcp::XMLMetadata xml_meta;
+ xml_meta.issuer = "OpenDCP 0.0.25";
+ xml_meta.creator = "OpenDCP 0.0.25";
+ xml_meta.issue_date = "2012-07-17T04:45:18+00:00";
+ dcp::MXFMetadata mxf_meta;
+ mxf_meta.company_name = "OpenDCP";
+ mxf_meta.product_name = "OpenDCP";
+ mxf_meta.product_version = "0.0.25";
+
+ /* We're making build/test/DCP/dcp_test5 */
+ boost::filesystem::remove_all ("build/test/DCP/dcp_test5");
+ boost::filesystem::create_directories ("build/test/DCP/dcp_test5");
+ dcp::DCP d ("build/test/DCP/dcp_test5");
+ shared_ptr<dcp::CPL> cpl (new dcp::CPL ("A Test DCP", dcp::FEATURE));
+ cpl->set_content_version_id ("urn:uri:81fb54df-e1bf-4647-8788-ea7ba154375b_2012-07-17T04:45:18+00:00");
+ cpl->set_content_version_label_text ("81fb54df-e1bf-4647-8788-ea7ba154375b_2012-07-17T04:45:18+00:00");
+ cpl->set_metadata (xml_meta);
+
+ shared_ptr<dcp::MonoPictureAsset> mp (new dcp::MonoPictureAsset (dcp::Fraction (24, 1)));
+ mp->set_metadata (mxf_meta);
+ shared_ptr<dcp::PictureAssetWriter> picture_writer = mp->start_write ("build/test/DCP/dcp_test5/video.mxf", dcp::SMPTE, false);
+ dcp::File j2c ("test/data/32x32_red_square.j2c");
+ for (int i = 0; i < 24; ++i) {
+ picture_writer->write (j2c.data (), j2c.size ());
+ }
+ picture_writer->finalize ();
+
+ shared_ptr<dcp::SoundAsset> ms (new dcp::SoundAsset (dcp::Fraction (24, 1), 48000, 1));
+ ms->set_metadata (mxf_meta);
+ shared_ptr<dcp::SoundAssetWriter> sound_writer = ms->start_write ("build/test/DCP/dcp_test5/audio.mxf", dcp::SMPTE);
+
+ SF_INFO info;
+ info.format = 0;
+ SNDFILE* sndfile = sf_open ("test/data/1s_24-bit_48k_silence.wav", SFM_READ, &info);
+ BOOST_CHECK (sndfile);
+ float buffer[4096*6];
+ float* channels[1];
+ channels[0] = buffer;
+ while (1) {
+ sf_count_t N = sf_readf_float (sndfile, buffer, 4096);
+ sound_writer->write (channels, N);
+ if (N < 4096) {
+ break;
+ }
+ }
+
+ sound_writer->finalize ();
+
+ shared_ptr<dcp::AtmosAsset> am (new dcp::AtmosAsset (private_test / "20160218_NameOfFilm_FTR_OV_EN_A_dcs_r01.mxf"));
+
+ cpl->add (shared_ptr<dcp::Reel> (
+ new dcp::Reel (
+ shared_ptr<dcp::ReelMonoPictureAsset> (new dcp::ReelMonoPictureAsset (mp, 0)),
+ shared_ptr<dcp::ReelSoundAsset> (new dcp::ReelSoundAsset (ms, 0)),
+ shared_ptr<dcp::ReelSubtitleAsset> (),
+ shared_ptr<dcp::ReelAtmosAsset> (new dcp::ReelAtmosAsset (am, 0))
+ )
+ ));
+
+ d.add (cpl);
+
+ d.write_xml (dcp::SMPTE, xml_meta);
+
+ /* build/test/DCP/dcp_test5 is checked against test/ref/DCP/dcp_test5 by run/tests */
+}
diff --git a/test/ref/DCP/dcp_test5/ASSETMAP.xml b/test/ref/DCP/dcp_test5/ASSETMAP.xml
new file mode 100644
index 00000000..3eedfb31
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/ASSETMAP.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<AssetMap xmlns="http://www.smpte-ra.org/schemas/429-9/2007/AM"><Id>urn:uuid:74e205d0-d145-42d2-8c49-7b55d058ca55</Id><AnnotationText>Created by OpenDCP 0.0.25</AnnotationText><Creator>OpenDCP 0.0.25</Creator><VolumeCount>1</VolumeCount><IssueDate>2012-07-17T04:45:18+00:00</IssueDate><Issuer>OpenDCP 0.0.25</Issuer><AssetList><Asset><Id>urn:uuid:ae8a9818-872a-4f86-8493-11dfdea03e09</Id><PackingList>true</PackingList><ChunkList><Chunk><Path>pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>1022</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b</Id><ChunkList><Chunk><Path>cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>1768</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:46c3eb45-15e5-47d6-8684-d8641e4dc516</Id><ChunkList><Chunk><Path>video.mxf</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>26080</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9</Id><ChunkList><Chunk><Path>audio.mxf</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>161326</Length></Chunk></ChunkList></Asset></AssetList></AssetMap>
diff --git a/test/ref/DCP/dcp_test5/VOLINDEX.xml b/test/ref/DCP/dcp_test5/VOLINDEX.xml
new file mode 100644
index 00000000..021685e9
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/VOLINDEX.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VolumeIndex xmlns="http://www.smpte-ra.org/schemas/429-9/2007/AM"><Index>1</Index></VolumeIndex>
diff --git a/test/ref/DCP/dcp_test5/audio.mxf b/test/ref/DCP/dcp_test5/audio.mxf
new file mode 100644
index 00000000..9b3fa1d3
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/audio.mxf
Binary files differ
diff --git a/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
new file mode 100644
index 00000000..0a50412d
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CompositionPlaylist xmlns="http://www.smpte-ra.org/schemas/429-7/2006/CPL"><Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b</Id><AnnotationText>A Test DCP</AnnotationText><IssueDate>2012-07-17T04:45:18+00:00</IssueDate><Issuer>OpenDCP 0.0.25</Issuer><Creator>OpenDCP 0.0.25</Creator><ContentTitleText>A Test DCP</ContentTitleText><ContentKind>feature</ContentKind><ContentVersion><Id>urn:uri:81fb54df-e1bf-4647-8788-ea7ba154375b_2012-07-17T04:45:18+00:00</Id><LabelText>81fb54df-e1bf-4647-8788-ea7ba154375b_2012-07-17T04:45:18+00:00</LabelText></ContentVersion><RatingList/><ReelList><Reel><Id>urn:uuid:18be072e-5a0f-44e1-b2eb-c8a52ae12789</Id><AssetList><MainPicture><Id>urn:uuid:46c3eb45-15e5-47d6-8684-d8641e4dc516</Id><AnnotationText>video.mxf</AnnotationText><EditRate>24 1</EditRate><IntrinsicDuration>24</IntrinsicDuration><EntryPoint>0</EntryPoint><Duration>24</Duration><Hash>KdrrbczelKFhmvqbhvzFX7Mxiro=</Hash><FrameRate>24 1</FrameRate><ScreenAspectRatio>32 32</ScreenAspectRatio></MainPicture><MainSound><Id>urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9</Id><AnnotationText>audio.mxf</AnnotationText><EditRate>24 1</EditRate><IntrinsicDuration>24</IntrinsicDuration><EntryPoint>0</EntryPoint><Duration>24</Duration><Hash>+dJynGEtjP7cApJ17SNz171iI4A=</Hash></MainSound><axd:AuxData><Id>urn:uuid:b135d5cf-d180-43d8-b0b3-7373737b73bf</Id><AnnotationText>20160218_NameOfFilm_FTR_OV_EN_A_dcs_r01.mxf</AnnotationText><EditRate>24 1</EditRate><IntrinsicDuration>1489</IntrinsicDuration><EntryPoint>0</EntryPoint><Duration>1489</Duration><Hash>jo8pQSebhScPN4EVvvpIUWRrDeM=</Hash><axd:DataType>urn:smpte:ul:060e2b34.04010105.0e090604.00000000</axd:DataType></axd:AuxData></AssetList></Reel></ReelList></CompositionPlaylist>
diff --git a/test/ref/DCP/dcp_test5/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml b/test/ref/DCP/dcp_test5/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml
new file mode 100644
index 00000000..94983c4a
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PackingList xmlns="http://www.smpte-ra.org/schemas/429-8/2007/PKL"><Id>urn:uuid:ae8a9818-872a-4f86-8493-11dfdea03e09</Id><AnnotationText>A Test DCP</AnnotationText><IssueDate>2012-07-17T04:45:18+00:00</IssueDate><Issuer>OpenDCP 0.0.25</Issuer><Creator>OpenDCP 0.0.25</Creator><AssetList><Asset><Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b</Id><AnnotationText>81fb54df-e1bf-4647-8788-ea7ba154375b</AnnotationText><Hash>dVhGU/gRwjhAp0yGxCqaHuGy2tI=</Hash><Size>1768</Size><Type>text/xml</Type></Asset><Asset><Id>urn:uuid:46c3eb45-15e5-47d6-8684-d8641e4dc516</Id><AnnotationText>46c3eb45-15e5-47d6-8684-d8641e4dc516</AnnotationText><Hash>KdrrbczelKFhmvqbhvzFX7Mxiro=</Hash><Size>26080</Size><Type>application/mxf</Type></Asset><Asset><Id>urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9</Id><AnnotationText>9482e87d-292d-4e0e-a98d-c61822b60fe9</AnnotationText><Hash>+dJynGEtjP7cApJ17SNz171iI4A=</Hash><Size>161326</Size><Type>application/mxf</Type></Asset></AssetList></PackingList>
diff --git a/test/ref/DCP/dcp_test5/video.mxf b/test/ref/DCP/dcp_test5/video.mxf
new file mode 100644
index 00000000..89af834e
--- /dev/null
+++ b/test/ref/DCP/dcp_test5/video.mxf
Binary files differ