X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FMDD.cpp;h=56276245f6d96b7f579f3ed51e02b68f06e9657c;hb=99f3c9bd7e314ed2342598ad0e2357c68c79e732;hp=0b507964a00be9ee26db66494e1d1716768c1079;hpb=fe443bd90d915478994953b56836577a96ea4a28;p=asdcplib.git diff --git a/src/MDD.cpp b/src/MDD.cpp index 0b50796..5627624 100644 --- a/src/MDD.cpp +++ b/src/MDD.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2006, John Hurst +Copyright (c) 2006-2012, John Hurst All rights reserved. Redistribution and use in source and binary forms, with or without @@ -32,6 +32,8 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // MDD.cpp // +#include "KLV.h" + static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, @@ -96,7 +98,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x07, // 20 0x02, 0x09, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 }, {0}, false, "MICAlgorithm_HMAC_SHA1" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 21 + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 21 0x03, 0x01, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00 }, {0}, false, "KLVFill" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 22 @@ -477,7 +479,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 147 0x06, 0x01, 0x01, 0x04, 0x06, 0x03, 0x00, 0x00 }, {0x2f, 0x01}, true, "GenericDescriptor_Locators" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 148 + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x09, // 148 0x06, 0x01, 0x01, 0x04, 0x06, 0x10, 0x00, 0x00 }, {0}, true, "GenericDescriptor_SubDescriptors" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 149 @@ -798,39 +800,39 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x09, // 254 0x02, 0x09, 0x03, 0x01, 0x02, 0x00, 0x00, 0x00 }, {0}, false, "CryptographicContext_CryptographicKeyID" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 255 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x00 }, - {0}, false, "DCTimedTextWrapping" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 256 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x01 }, - {0}, false, "DCTimedTextEssence" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 257 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x02 }, - {0}, false, "DCTimedTextDescriptor" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 258 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x03 }, - {0}, false, "DCTimedTextDescriptor_AssetID" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 259 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x04 }, - {0}, false, "DCTimedTextDescriptor_UTFEncoding" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 260 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x05 }, - {0}, false, "DCTimedTextDescriptor_RootNamespaceName" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 261 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x06 }, - {0}, false, "DCTimedTextResourceDescriptor" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 262 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x07 }, - {0}, false, "DCTimedTextResourceDescriptor_ResourceID" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 263 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x08 }, - {0}, false, "DCTimedTextResourceDescriptor_ResourceMIMEType" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x00, 0x01, 0x01, 0x01, // 264 - 0x0d, 0x01, 0x03, 0x01, 0xfa, 0xce, 0x00, 0x09 }, - {0}, false, "DCTimedTextResourceDescriptor_ResourceSID" }, - { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 265 - 0x06, 0x10, 0x10, 0x05, 0x01, 0x02, 0x11, 0x00 }, - {0}, false, "GenericStreamPartition" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0a, // 255 + 0x0d, 0x01, 0x03, 0x01, 0x02, 0x13, 0x01, 0x01 }, + {0}, false, "TimedTextWrapping" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x01, // 256 + 0x0d, 0x01, 0x03, 0x01, 0x17, 0x01, 0x0b, 0x01 }, + {0}, false, "TimedTextEssence" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 257 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x64, 0x00 }, + {0}, false, "TimedTextDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0c, // 258 + 0x01, 0x01, 0x15, 0x12, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextDescriptor_ResourceID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0c, // 259 + 0x04, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextDescriptor_UCSEncoding" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x08, // 260 + 0x01, 0x02, 0x01, 0x05, 0x01, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextDescriptor_NamespaceURI" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 261 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x65, 0x00 }, + {0}, false, "TimedTextResourceSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0c, // 262 + 0x01, 0x01, 0x15, 0x13, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextResourceSubDescriptor_AncillaryResourceID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, // 263 + 0x04, 0x09, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextResourceSubDescriptor_MIMEMediaType" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 264 + 0x01, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "TimedTextResourceSubDescriptor_EssenceStreamID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x05, 0x01, 0x01, // 265 + 0x0d, 0x01, 0x02, 0x01, 0x01, 0x03, 0x11, 0x00 }, + {0}, false, "GenericStreamPartition" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 266 0x04, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }, {0x02, 0x01}, false, "DMSegment_DataDefinition" }, @@ -840,11 +842,84 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 268 0x01, 0x07, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00 }, {0x61, 0x02}, false, "DMSegment_TrackIDList" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x0c, // 269 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x63, 0x00 }, + {0}, false, "StereoscopicPictureSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x07, // 270 + 0x04, 0x02, 0x01, 0x01, 0x05, 0x00, 0x00, 0x00 }, + {0x3d, 0x32}, true, "WaveAudioDescriptor_ChannelAssignment" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0c, // 271 + 0x0d, 0x01, 0x05, 0x09, 0x01, 0x00, 0x00, 0x00 }, + {0x00, 0x00}, false, "GenericStream_DataElement" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 272 + 0x06, 0x01, 0x01, 0x04, 0x06, 0x10, 0x00, 0x00 }, + {0}, true, "MXFInterop_GenericDescriptor_SubDescriptors" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 273 + 0x01, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00 }, + {0x3f, 0x07}, false, "BodySID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 274 + 0x01, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00 }, + {0x3f, 0x06}, false, "IndexSID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 275 + 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00 }, + {0x3b, 0x09}, false, "OperationalPattern" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x05, // 276 + 0x01, 0x02, 0x02, 0x10, 0x02, 0x01, 0x00, 0x00 }, + {0x3b, 0x0a}, false, "EssenceContainers" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0b, // 277 + 0x04, 0x02, 0x02, 0x10, 0x03, 0x01, 0x01, 0x00 }, + {0}, false, "DCAudioChannelCfg_1_5p1" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0b, // 278 + 0x04, 0x02, 0x02, 0x10, 0x03, 0x01, 0x02, 0x00 }, + {0}, false, "DCAudioChannelCfg_2_6p1" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0b, // 279 + 0x04, 0x02, 0x02, 0x10, 0x03, 0x01, 0x03, 0x00 }, + {0}, false, "DCAudioChannelCfg_3_7p1" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0b, // 280 + 0x04, 0x02, 0x02, 0x10, 0x03, 0x01, 0x04, 0x00 }, + {0}, false, "DCAudioChannelCfg_4_WTF" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0b, // 281 + 0x04, 0x02, 0x02, 0x10, 0x03, 0x01, 0x05, 0x00 }, + {0}, false, "DCAudioChannelCfg_5_7p1_DS" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 282 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x6a, 0x00 }, + {0}, false, "MCALabelSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 283 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x6b, 0x00 }, + {0}, false, "AudioChannelLabelSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 284 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x6c, 0x00 }, + {0}, false, "SoundfieldGroupLabelSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 285 + 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x6d, 0x00 }, + {0}, false, "GroupOfSoundfieldGroupsLabelSubDescriptor" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 286 + 0x01, 0x03, 0x07, 0x01, 0x01, 0x00, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_MCALabelDictionaryID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 287 + 0x01, 0x03, 0x07, 0x01, 0x05, 0x00, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_MCALinkID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 288 + 0x01, 0x03, 0x07, 0x01, 0x02, 0x00, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_MCATagSymbol" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 289 + 0x01, 0x03, 0x07, 0x01, 0x03, 0x00, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_MCATagName" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 290 + 0x01, 0x03, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_MCAChannelID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0d, // 291 + 0x03, 0x01, 0x01, 0x02, 0x03, 0x15, 0x00, 0x00 }, + {0}, false, "MCALabelSubDescriptor_RFC5646SpokenLanguage" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0d, // 292 + 0x01, 0x03, 0x07, 0x01, 0x03, 0x00, 0x00, 0x00 }, + {0}, false, "AudioChannelLabelSubDescriptor_SoundfieldGroupLinkID" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0d, // 293 + 0x01, 0x03, 0x07, 0x01, 0x04, 0x00, 0x00, 0x00 }, + {0}, false, "SoundfieldGroupLabelSubDescriptor_GroupOfSoundfieldGroupsLinkID" }, { {0}, {0}, false, 0 } }; -const ui32_t s_MDD_Table_size = 269; - // // end MDD.cpp //