Set plaintext offset to 0 when writing J2K frames (DoM #2391)
authorCarl Hetherington <cth@carlh.net>
Tue, 20 Dec 2022 23:12:41 +0000 (00:12 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 22 Dec 2022 22:16:45 +0000 (23:16 +0100)
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.

src/mono_picture_asset_writer.cc
src/stereo_picture_asset_writer.cc
test/ref/DCP/encryption_test/ASSETMAP.xml
test/ref/DCP/encryption_test/cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml
test/ref/DCP/encryption_test/pkl_93887017-5d6a-4ee5-b5f4-161b06281d0e.xml
test/ref/DCP/encryption_test/video.mxf

index dd29c19afda3f73e91a6e840a4850d3caa2da883..7fd58114e737e1d0c5d58cc1e9fd6463458d8b9c 100644 (file)
@@ -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;
index b9120cd9bc3d8db9fba76fb71d5d906ee6c531a1..6ee271bcdd572655fab69e3e5ed0c523630b7107 100644 (file)
@@ -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;
index 2b762d37d39c0370d3741f936e3fa4faa11506bc..cf6c74f5ba8b026b23647f0cd0beba5053d124e6 100644 (file)
@@ -37,7 +37,7 @@
           <Path>video.mxf</Path>
           <VolumeIndex>1</VolumeIndex>
           <Offset>0</Offset>
-          <Length>44032</Length>
+          <Length>44008</Length>
         </Chunk>
       </ChunkList>
     </Asset>
index 2043a0791b9e565dee71e97c1712c0b6e37195f1..73fad88f776f9359914122bbb2fbc2651d6cf833 100644 (file)
@@ -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>
           <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>
index c4bdfb7e364a90dd9f2af6b1ce378f35d5e6f589..57421adc0d0d103cf4062ec316b5ea1b767ede56 100644 (file)
@@ -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>
           <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>
index 7bad39eb4247b4554c1170695d59e611d9491643..2fbfacdd8e5d2d162a735a8b9e045740440fe71e 100644 (file)
Binary files a/test/ref/DCP/encryption_test/video.mxf and b/test/ref/DCP/encryption_test/video.mxf differ