diff options
| author | jhurst <jhurst@cinecert.com> | 2012-02-02 01:58:43 +0000 |
|---|---|---|
| committer | jhurst <> | 2012-02-02 01:58:43 +0000 |
| commit | 99f3c9bd7e314ed2342598ad0e2357c68c79e732 (patch) | |
| tree | 09b3986d426dead4cbd63774db9ce1c5ac216a1e /src/AS_DCP.h | |
| parent | 1e0a44f949436b95b7def495dcaff9232dadf750 (diff) | |
make way for MCA
Diffstat (limited to 'src/AS_DCP.h')
| -rwxr-xr-x | src/AS_DCP.h | 85 |
1 files changed, 74 insertions, 11 deletions
diff --git a/src/AS_DCP.h b/src/AS_DCP.h index 29f07c0..72d5261 100755 --- a/src/AS_DCP.h +++ b/src/AS_DCP.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2011, John Hurst +Copyright (c) 2003-2012, John Hurst All rights reserved. Redistribution and use in source and binary forms, with or without @@ -34,22 +34,23 @@ D-Cinema Technology Committee 21DC. The file format, labeled AS-DCP, is described in series of separate documents which include but may not be be limited to: - o SMPTE ST 429-2:2009 DCP Operational Constraints - o SMPTE ST 429-3:2006 Track File Specification - o SMPTE ST 429-4:2006 JPEG 2000 for D-Cinema + o SMPTE ST 429-2:2011 DCP Operational Constraints + o SMPTE ST 429-3:2006 Sound and Picture Track File + o SMPTE ST 429-4:2006 MXF JPEG 2000 Application o SMPTE ST 429-5:2009 Timed Text Track File - o SMPTE ST 429-6:2006 Essence Encryption - o SMPTE ST 429-10:2008 Stereoscopic Image Track File + o SMPTE ST 429-6:2006 MXF Track File Essence Encryption + o SMPTE ST 429-10:2008 Stereoscopic Picture Track File o SMPTE ST 330:2004 - UMID o SMPTE ST 336:2001 - KLV - o SMPTE ST 377:2000 - MXF - o SMPTE ST 390:2004 - MXF OP-Atom - o SMPTE ST 379:2004 - MXF Generic Container (GC) - o SMPTE ST 381:2005 - MPEG2 picture in GC + o SMPTE ST 377-1:2011 - MXF + o SMPTE ST 377-4:2012 - MXF Multichannel Audio Labeling Framework + o SMPTE ST 390:2011 - MXF OP-Atom + o SMPTE ST 379-1:2009 - MXF Generic Container (GC) + o SMPTE ST 381-1:2005 - MPEG2 picture in GC o SMPTE ST 422:2006 - JPEG 2000 picture in GC o SMPTE ST 382:2007 - WAV/PCM sound in GC o IETF RFC 2104 - HMAC/SHA1 - o NIST FIPS 197 - AES (Rijndael) + o NIST FIPS 197 - AES (Rijndael) (via OpenSSL) o MXF Interop Track File Specification o MXF Interop Track File Essence Encryption Specification @@ -551,6 +552,15 @@ namespace ASDCP { inline ui32_t PlaintextOffset() const { return m_PlaintextOffset; } }; + //--------------------------------------------------------------------------------- + // Accessors in the MXFReader and MXFWriter classes below return these types to + // provide direct access to MXF metadata structures declared in MXF.h and Metadata.h + + namespace MXF { + // #include<Metadata.h> to use these + class OPAtomHeader; + class OPAtomIndexFooter; + }; //--------------------------------------------------------------------------------- // MPEG2 video elementary stream support @@ -707,6 +717,11 @@ namespace ASDCP { MXFWriter(); virtual ~MXFWriter(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for writing. The file must not exist. Returns error if // the operation cannot be completed or if nonsensical data is discovered // in the essence descriptor. @@ -734,6 +749,11 @@ namespace ASDCP { MXFReader(); virtual ~MXFReader(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for reading. The file must exist. Returns error if the // operation cannot be completed. Result_t OpenRead(const char* filename) const; @@ -780,6 +800,9 @@ namespace ASDCP { //--------------------------------------------------------------------------------- // + + + namespace PCM { // The default value of the ChannelFormat element of the AudioDescriptor struct @@ -893,6 +916,11 @@ namespace ASDCP { MXFWriter(); virtual ~MXFWriter(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for writing. The file must not exist. Returns error if // the operation cannot be completed or if nonsensical data is discovered // in the essence descriptor. @@ -920,6 +948,11 @@ namespace ASDCP { MXFReader(); virtual ~MXFReader(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for reading. The file must exist. Returns error if the // operation cannot be completed. Result_t OpenRead(const char* filename) const; @@ -1124,6 +1157,11 @@ namespace ASDCP { MXFWriter(); virtual ~MXFWriter(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for writing. The file must not exist. Returns error if // the operation cannot be completed or if nonsensical data is discovered // in the essence descriptor. @@ -1151,6 +1189,11 @@ namespace ASDCP { MXFReader(); virtual ~MXFReader(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for reading. The file must exist. Returns error if the // operation cannot be completed. Result_t OpenRead(const char* filename) const; @@ -1211,6 +1254,11 @@ namespace ASDCP { MXFSWriter(); virtual ~MXFSWriter(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for writing. The file must not exist. Returns error if // the operation cannot be completed or if nonsensical data is discovered // in the essence descriptor. @@ -1248,6 +1296,11 @@ namespace ASDCP { MXFSReader(); virtual ~MXFSReader(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for reading. The file must exist. Returns error if the // operation cannot be completed. Result_t OpenRead(const char* filename) const; @@ -1401,6 +1454,11 @@ namespace ASDCP { MXFWriter(); virtual ~MXFWriter(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for writing. The file must not exist. Returns error if // the operation cannot be completed or if nonsensical data is discovered // in the essence descriptor. @@ -1438,6 +1496,11 @@ namespace ASDCP { MXFReader(); virtual ~MXFReader(); + // Warning: direct manipulation of MXF structures can interfere + // with the normal operation of the wrapper. Caveat emptor! + virtual MXF::OPAtomHeader& OPAtomHeader(); + virtual MXF::OPAtomIndexFooter& OPAtomIndexFooter(); + // Open the file for reading. The file must exist. Returns error if the // operation cannot be completed. Result_t OpenRead(const char* filename) const; |
