o Fixed a bug in the index reader that allowed an out-of-bounds vector index to be...
[asdcplib.git] / src / MDD.cpp
index 6da1c9137c1c1403f6add8e3b314039ade164472..2d6d0d2d2356b1cbcc1058fd14d4f3839412afdc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2006-2013, John Hurst
+Copyright (c) 2006-2016, John Hurst
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -665,7 +665,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
   { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 209
       0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x43, 0x00 },
       {0}, false, "GenericDataEssenceDescriptor" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 210
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x03, // 210
       0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00 },
       {0x3e, 0x01}, false, "GenericDataEssenceDescriptor_DataEssenceCoding" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 211
@@ -917,14 +917,14 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 293
       0x01, 0x03, 0x07, 0x01, 0x04, 0x00, 0x00, 0x00 },
     {0}, false, "SoundfieldGroupLabelSubDescriptor_GroupOfSoundfieldGroupsLinkID" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x05, // 294
-      0x0e, 0x09, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00 },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0d, // 294
+      0x0d, 0x01, 0x03, 0x01, 0x02, 0x13, 0x02, 0x01 },
     {0}, false, "DCDataWrappingFrame" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x05, // 295
-      0x0e, 0x09, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x0d, // 295
+      0x0d, 0x01, 0x03, 0x01, 0x17, 0x01, 0x0d, 0x00 },
     {0}, false, "DCDataEssence" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x05, // 296
-      0x0e, 0x09, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00 },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x7f, 0x01, 0x01, // 296
+      0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x73, 0x00 },
     {0}, false, "DCDataDescriptor" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x05, // 297
       0x0e, 0x09, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00 },
@@ -1090,10 +1090,10 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
       {0}, false, "MaterialPackage_PackageMarker" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 351
       0x04, 0x01, 0x02, 0x01, 0x01, 0x03, 0x01, 0x00 },
-      {0}, false, "GenericPictureEssenceDescriptor_CodingEquations" },
+      {0x32, 0x1a}, false, "GenericPictureEssenceDescriptor_CodingEquations" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x09, // 352
       0x04, 0x01, 0x02, 0x01, 0x01, 0x06, 0x01, 0x00 },
-      {0}, false, "GenericPictureEssenceDescriptor_ColorPrimaries" },
+      {0x32, 0x19}, false, "GenericPictureEssenceDescriptor_ColorPrimaries" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0d, // 353
       0x04, 0x01, 0x02, 0x02, 0x03, 0x01, 0x01, 0x11 },
       {0}, false, "JP2KEssenceCompression_BroadcastProfile_1" },
@@ -1119,23 +1119,23 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
       0x04, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00 },
       {0}, false, "WaveAudioDescriptor_ReferenceImageEditRate" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 361
-      0x04, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00 },
+      0x04, 0x02, 0x01, 0x01, 0x07, 0x00, 0x00, 0x00 },
       {0}, false, "WaveAudioDescriptor_ReferenceAudioAlignmentLevel" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 362
       0x04, 0x01, 0x03, 0x02, 0x0b, 0x00, 0x00, 0x00 },
       {0}, false, "GenericPictureEssenceDescriptor_AlternativeCenterCuts" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 363
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 363
       0x04, 0x01, 0x05, 0x01, 0x13, 0x00, 0x00, 0x00 },
-      {0x32, 0x05}, true, "GenericPictureEssenceDescriptor_ActiveHeight" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 364
+      {0}, true, "GenericPictureEssenceDescriptor_ActiveHeight" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 364
       0x04, 0x01, 0x05, 0x01, 0x14, 0x00, 0x00, 0x00 },
-      {0x32, 0x04}, true, "GenericPictureEssenceDescriptor_ActiveWidth" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 365
+      {0}, true, "GenericPictureEssenceDescriptor_ActiveWidth" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 365
       0x04, 0x01, 0x05, 0x01, 0x15, 0x00, 0x00, 0x00 },
-      {0x32, 0x06}, true, "GenericPictureEssenceDescriptor_ActiveXOffset" },
-  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 366
+      {0}, true, "GenericPictureEssenceDescriptor_ActiveXOffset" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 366
       0x04, 0x01, 0x05, 0x01, 0x16, 0x00, 0x00, 0x00 },
-      {0x32, 0x07}, true, "GenericPictureEssenceDescriptor_ActiveYOffset" },
+      {0}, true, "GenericPictureEssenceDescriptor_ActiveYOffset" },
   { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 367
       0x03, 0x01, 0x01, 0x02, 0x02, 0x16, 0x00, 0x00 },
       {0}, false, "TimedTextDescriptor_RFC5646LanguageTagList" },
@@ -1155,6 +1155,49 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
       0x0e, 0x16, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02 },
     {0}, false, "DBOXMotionCodeSecondaryStream" },
 
+  //  379-2, Sec. 7: Encoders that conform to this specification shall add a
+  // ContainerConstraintSubDescriptor to the GenericDescriptor::SubDescriptors
+  // property of the top-most File Descriptor that describes the essence
+  // container.
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x7f, 0x01, 0x01, // 373
+      0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x67, 0x00 },
+    {0}, false, "ContainerConstraintSubDescriptor" },
+
+  // protype for high dynamic range, values recorded in Dolby registry
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x05, // 374
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x01 },
+    {0}, false, "PHDRImageMetadataWrappingFrame" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x05, // 375
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x00 },
+    {0}, false, "PHDRImageMetadataItem" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x05, // 376
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x03 },
+    {0}, false, "PHDRMetadataTrackSubDescriptor" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 377
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x04 },
+    {0}, false, "PHDRMetadataTrackSubDescriptor_DataDefinition" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 378
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x05 },
+    {0}, false, "PHDRMetadataTrackSubDescriptor_SourceTrackID" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 379
+      0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x06 },
+    {0}, false, "PHDRMetadataTrackSubDescriptor_SimplePayloadSID" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 380
+      0x04, 0x01, 0x06, 0x03, 0x0e, 0x00, 0x00, 0x00 },
+      {0}, true, "JPEG2000PictureSubDescriptor_J2CLayout" },
+
+  // Old DCData UL values, needed for continued support of Atmos
+  //
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x05, // 381
+      0x0e, 0x09, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00 },
+    {0}, false, "PrivateDCDataWrappingFrame" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x05, // 382
+      0x0e, 0x09, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 },
+    {0}, false, "PrivateDCDataEssence" },
+  { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x05, // 383
+      0x0e, 0x09, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00 },
+    {0}, false, "PrivateDCDataDescriptor" },
+
   { {0}, {0}, false, 0 }
 };