summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-12-21 00:12:41 +0100
committerCarl Hetherington <cth@carlh.net>2022-12-22 23:16:45 +0100
commitf657337815c5f21e2edd99fdaa501f0ff8acc6b1 (patch)
treef14f69f5befa0862c7fa1614c59992e1cd4e6534
parent6518f7e4e8b02a1d78b6121c2032fa27c50ddc78 (diff)
Set plaintext offset to 0 when writing J2K frames (DoM #2391)
Without this the EasyDCP verifier gives errors like "sum of individual components is larger than the file size" This change results in there being no plaintext metadata in each encoded frame. It looks like the DCP-2000 was fixed in around 2010 to not crash with plaintext metadata, and the asdcplib tools at some point started defaulting to this behaviour also.
-rw-r--r--src/mono_picture_asset_writer.cc2
-rw-r--r--src/stereo_picture_asset_writer.cc2
-rw-r--r--test/ref/DCP/encryption_test/ASSETMAP.xml2
-rw-r--r--test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml16
-rw-r--r--test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml20
-rw-r--r--test/ref/DCP/encryption_test/video.mxfbin44032 -> 44008 bytes
6 files changed, 23 insertions, 19 deletions
diff --git a/src/mono_picture_asset_writer.cc b/src/mono_picture_asset_writer.cc
index dd29c19a..7fd58114 100644
--- a/src/mono_picture_asset_writer.cc
+++ b/src/mono_picture_asset_writer.cc
@@ -106,6 +106,8 @@ MonoPictureAssetWriter::write (uint8_t const * data, int size)
boost::throw_exception (MiscError ("could not parse J2K frame"));
}
+ _state->frame_buffer.PlaintextOffset(0);
+
uint64_t const before_offset = _state->mxf_writer.Tell ();
string hash;
diff --git a/src/stereo_picture_asset_writer.cc b/src/stereo_picture_asset_writer.cc
index b9120cd9..6ee271bc 100644
--- a/src/stereo_picture_asset_writer.cc
+++ b/src/stereo_picture_asset_writer.cc
@@ -100,6 +100,8 @@ StereoPictureAssetWriter::write (uint8_t const * data, int size)
boost::throw_exception (MiscError ("could not parse J2K frame"));
}
+ _state->frame_buffer.PlaintextOffset(0);
+
uint64_t const before_offset = _state->mxf_writer.Tell ();
string hash;
diff --git a/test/ref/DCP/encryption_test/ASSETMAP.xml b/test/ref/DCP/encryption_test/ASSETMAP.xml
index 2b762d37..cf6c74f5 100644
--- a/test/ref/DCP/encryption_test/ASSETMAP.xml
+++ b/test/ref/DCP/encryption_test/ASSETMAP.xml
@@ -37,7 +37,7 @@
<Path>video.mxf</Path>
<VolumeIndex>1</VolumeIndex>
<Offset>0</Offset>
- <Length>44032</Length>
+ <Length>44008</Length>
</Chunk>
</ChunkList>
</Asset>
diff --git a/test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml b/test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml
index 2043a079..73fad88f 100644
--- a/test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml
+++ b/test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml
@@ -23,7 +23,7 @@
<EntryPoint>0</EntryPoint>
<Duration>24</Duration>
<KeyId>urn:uuid:ac8d301c-e5d9-4343-b6f3-ba2668adbe56</KeyId>
- <Hash>8r+Gnfyg5fxetQxyddD7fjzH3Qo=</Hash>
+ <Hash>AVtX8wz76uG2Uw0Qbc9+DKnHUfw=</Hash>
<FrameRate>24 1</FrameRate>
<ScreenAspectRatio>1998 1080</ScreenAspectRatio>
</MainPicture>
@@ -57,15 +57,15 @@
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
- <dsig:DigestValue>0FHIG9HMW/Sp8GfYHLV0p86GCWY=</dsig:DigestValue>
+ <dsig:DigestValue>i2q8BhQwGZp0cROMkuiI4sE0e9w=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
- <dsig:SignatureValue>tk/wncwRngGXR2towgLMj+3Odk6pbPQtvcYTnILFu2M15IN6Iau3SiNW+2TBYRMK
-zuNVKBxYX2Q0Hk5znioC8q/GHpN1NWV+oglEaAJmqkmTX/KL2gIrfZCQsL7wQ5DE
-7wHq4URRO24Q+K1DnnyXBe70WugikvkJI7iFqWN+qjEPebP8lBbOUKVcCpqcUgIC
-7Omb2/W9Nx/7NZv3F1vTctna20rZnVHp86bccHrlUvGVbGs9svEPuPKEjBQlym3z
-SU5nyTIZ7NMM27QE9lQ8O/LUMoP2pLtc7eNnEnNzLkIZGXoDOBu2KELtDQjojqIk
-8QnEQSXk9FpUVNaGl3gruw==</dsig:SignatureValue>
+ <dsig:SignatureValue>xGQzQKVoTFElGV0kBwORWtYhTLCJKXDBV39XgZ1J/HRBcFiO4e58MSc+5Gi8mJ0W
+c+m8eB5Y6ti6ATFnPQTt9l/FdoqUgzHtPXMPMPU9sS7HSjY4Qew6iqpzX2Sb5A76
+k30dn4nHSXZ25WwU09gKg4pzCIv25loY2mwgqXiDXeLv2FTyexmM2jKP6og49Yc9
+skpg90alEYWXef99bErVVrXMzBc6QHh+cvWx+X2TRGjnerjxr5aCal8+BvdG6VMK
+9p4kOsMiQ8xBblquizC6rXXT96iV+Ov1wPuLNFCO3M60pApUamefCqzQ7wCEfsGg
+ZhNxhu99RxfV9l4HXNvV9g==</dsig:SignatureValue>
<dsig:KeyInfo>
<dsig:X509Data>
<dsig:X509IssuerSerial>
diff --git a/test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml b/test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml
index c4bdfb7e..57421adc 100644
--- a/test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml
+++ b/test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml
@@ -9,15 +9,15 @@
<Asset>
<Id>urn:uuid:6affb8ee-0020-4dff-a53c-17652f6358ab</Id>
<AnnotationText>6affb8ee-0020-4dff-a53c-17652f6358ab</AnnotationText>
- <Hash>wktgMUem87F6zSpc33A4w1pW00Q=</Hash>
+ <Hash>ocIgRDFtEn7QPxwcqXYVpSrTPpI=</Hash>
<Size>9226</Size>
<Type>text/xml</Type>
</Asset>
<Asset>
<Id>urn:uuid:9a7fbb03-4078-4944-90b1-0d8a21c9d793</Id>
<AnnotationText>9a7fbb03-4078-4944-90b1-0d8a21c9d793</AnnotationText>
- <Hash>8r+Gnfyg5fxetQxyddD7fjzH3Qo=</Hash>
- <Size>44032</Size>
+ <Hash>AVtX8wz76uG2Uw0Qbc9+DKnHUfw=</Hash>
+ <Size>44008</Size>
<Type>application/mxf</Type>
</Asset>
<Asset>
@@ -46,15 +46,15 @@
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
- <dsig:DigestValue>zxq+xgZYL/vhqtTzyFMZzWP0JDQ=</dsig:DigestValue>
+ <dsig:DigestValue>Gxo6VfxF8Guiq1+IFU2ePslEu00=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
- <dsig:SignatureValue>HifYYYkxSunbBcUYtUcIQDZf8kHcXhO7TnQWdnqQ4HxHKK3Man8jnNXXl0i5t8cO
-B9pHrBUQy1C50R/h2dW0B7cpeQLowX8UwJyl1yYoH62m/CIgDT/Zx4ji9M+Ogve9
-RS/SoXnMEeQotCQit3li9br5dW0hjptUn5ZDoyi+i4mpsjtuBQvPYymeFoey5oIV
-9DJXOS1uM/wSEbsDX6zyHOUW1l2jKVPyshulWoufc39QqcpuGDmnAY/zEHqMVBAm
-+ycVhMI/Q8MlXggHNL1VYqWkplNAfElpbys1a/tMCFqpqk+BJ9IwMej5ypTASTKH
-sQH4u5vjsTvq8+X5SdD0qg==</dsig:SignatureValue>
+ <dsig:SignatureValue>bzUioGIym79+2SaZ+V3zHOnZzoYR2L3NcW0yrre+FclIO2BB6XjdPnJJJPEHml9R
+ATXtAOUIjYUZT5x+2B64dpclvIdikr4P72J6PQzHB+lvnrptoisOhFMa0Pnk1vCi
+0o/WBHUCSDePU8Hl8OGK9GL+n/iXEZKfbpuAIRBIGayD1WE1CmTxGxVx28VTk+2H
+klIbYhojVoj0AaaVN9xVvaq126Tmk4y1dILyPlNyYYVxzam7T1hlEHSj3E4i3StZ
+r1vsK8I8EMWLrBio3ih44GwkJeM6N7PPI5kDeen7Mk7S4Btq+HtildekSmKRNkOc
+odAqTC/SVvYtWvri7PldJQ==</dsig:SignatureValue>
<dsig:KeyInfo>
<dsig:X509Data>
<dsig:X509IssuerSerial>
diff --git a/test/ref/DCP/encryption_test/video.mxf b/test/ref/DCP/encryption_test/video.mxf
index 7bad39eb..2fbfacdd 100644
--- a/test/ref/DCP/encryption_test/video.mxf
+++ b/test/ref/DCP/encryption_test/video.mxf
Binary files differ