summaryrefslogtreecommitdiff
path: root/asdcplib/README
diff options
context:
space:
mode:
Diffstat (limited to 'asdcplib/README')
-rwxr-xr-xasdcplib/README778
1 files changed, 0 insertions, 778 deletions
diff --git a/asdcplib/README b/asdcplib/README
deleted file mode 100755
index 8a63064..0000000
--- a/asdcplib/README
+++ /dev/null
@@ -1,778 +0,0 @@
-
-$Id: README,v 1.75 2012/03/07 19:29:06 mikey Exp $
-
-The asdcplib library is a set of objects that offer
-simplified access to files conforming to the sound and
-picture track file formats developed by the SMPTE Working
-Group DC28.20.
-
-This work was originally funded by Digital Cinema
-Initiatives, LLC (DCI). Subsequent efforts have been funded
-by Deluxe Laboratories, Doremi Labs, CineCert LLC, Avica
-Technology and others.
-
-**The asdcplib project was originally housed on SourceForge.
-The project has moved to http://www.cinecert.com/asdcplib/
-
-The project formerly depended upon the mxflib project. Because
-of its focus on covering the whole of the MXF specifications,
-mxflib is considerably larger and more complex that what I
-require for this application. For this reason I have created
-a dedicated MXF implementation that is now part of this
-library. Special thanks to Matt Beard and Oliver Morgan for
-their great work and support.
-
-Thanks also to the members of the SMPTE DC28.20 packaging
-ad-hoc group and the members of the MXF Interop Initiative
-for their encouragement and support. Special thanks to
-Jim Whittlesey and Howard Lukk at DCI for proposing and
-supporting this project.
-
-
-Design Notes
-
-This library is intended (but of course not limited) for
-use by developers of commercial D-Cinema products. It is
-designed to be easily integrated into a wide variety of
-development environments. Commercial users are strongly
-urged to use static linking (at least where you use this
-library) to prevent malicious in-field replacement of
-critical system modules. This recommendation should be
-considered wherever Open Source or Free software is being
-used in conjunction with critical security parameters, such
-as cryptographic keys.
-
-The author strives mightily to provide an API that is completely
-independent of operating system and other library dependencies,
-and which allows selective replacement of some modules for
-local needs. Specifically, the essence parsers and OpenSSL
-crypto functions can be replaced by linking to alternative
-implementations of the ASDCP:: objects which provide those
-services.
-
-AS_DCP.h contains the entire API. You do not need to read
-any of the other files, except maybe asdcp-test.cpp which
-contains detailed usage examples of each of the API's
-services. The KM_* files may be of interest for general
-development support, but may be ignored if all you want
-is simple AS-DCP support.
-
-
-Build Instructions
-
-On more-or-less POSIX systems (OS X, Linux, and BSD), GNU make and
-autotools are required to build asdcplib. The same configure script
-will also build this package on Windows machines with Cygwin and
-MinGW installed. For those Windows users who would prefer to build
-this natively, an "nmake" build file and instructions can be found
-in the win32 subdirectory.
-
-OpenSSL is also required, and the most recent version of v0.9.8
-is recommended. See http://www.openssl.org/ for more information
-and download instructions.
-
-Optional support for writing Timed Text Track Files is supported by
-either Xerces-C or Expat. See http://xerces.apache.org/xerces-c/ or
-http://expat.sourceforge.net/ for source and build instructions.
-
-To configure and build, type './configure' followed by 'make'. There
-are several test targets on the POSIX side, but you need to assemble
-a set of test files to use them.
-
-I have tested this build on win32, Linux, OpenBSD, and Darwin
-platforms. Others may work as well.
-
-
-
-
-Utilities
-
-asdcp-test - Writes, reads and verifies AS-DCP (MXF) track files.
-
-asdcp-wrap - Writes AS-DCP (MXF) track files.
-
-asdcp-unwrap - Extracts essence from AS-DCP (MXF) track files.
-
-asdcp-info - Displays information about AS-DCP (MXF) track files.
-
-asdcp-util - Calculates digests and generates random numbers and UUIDs.
-
-kmfilegen - Writes and verifies large files using a platform-
-independent format. Use it to test issues related to large files.
-
-kmuuidgen, kmrandgen - generate UUID values and random numbers.
-
-wavesplit - Splits a WAVE file into two or more output files. Used
- to untangle incorrectly-paired DCDM sound files.
-
-blackwave - Write a WAVE file full of zeros, Used to make filler
- tracks (though you would be better off modifying asdcp-test if
- this is a common use case).
-
-j2c-test - Displays information about JP2K codestreams.
-
-
-Documentation
-
-The API documentation is mostly in AS_DCP.h. Read that file for
-a detailed description of the library's capabilities. Read
-asdcp-test.cpp for library usage examples. The command-line
-utilities all respond to -h.
-
-
-Change History
-
-2012-03-06 - bug fixes, enhancements 1.9.45
- o Removed ASDCP::Timestamp, all items that were of that class are now
- of class Kumu::Timestamp
- o Refactored Kumu::Timestamp to use KM_tai for internal representation
- (replaced public Y M D, h, m, s variables)
- o Refactored Kumu::Timestamp to use KM_tai for WIN32 builds
- o Added UTC offset awareness to Kumu::Timestamp
- o Replaced "long GetSecondsSinceEpoch(void) const" with
- "ui64_t GetCTime() const"
- o Corrected UL version segment in "7.1 DS" and "WTF" audio format
- labels (corresponds with publication of ST 429-2:2011).
- o Exposed MXF object interface (MXF.h, Metadata.h) via ASDCP MXFReader
- and MXFWriter classes.
- o Added UL values from ST 377-4:2012. >>>>NOTE: These are preliminary
- values, subject to change upon final publication of not only ST 377-4
- but also the relevant registries. This is a good time to compare them
- to the standard and complain if you think they are wrong!
- o Added MCALabelSubDescriptor, AudioChannelLabelSubDescriptor,
- SoundfieldGroupLabelSubDescriptor, and
- GroupOfSoundfieldGroupsLabelSubDescriptor (from ST 377-4:2012) to
- Metadata.h
- o Changed some internals to make MXFWriter::OPAtomHeader() work correctly.
- o Split asdcp-test into several different programs to help relieve
- the impenetrable-list-of-arguments problem. asdcp-wrap, asdcp-unwrap
- and asdcp-info take the place of asdcp-test's -c, -x and -i options,
- respectively. asdcp-util contains the remaining functions. Note that
- asdcp-test is now DEPRECATED, new functionality and bug fixes will be
- aimed at the new tools. Also note that some options and calling
- conventions are different for the new tools as compared to asdcp-test.
- Please read the synopses and make sure you understand the new idioms.
- o asdcp-wrap has a new argument, -C <UL>, that writes the given UL to the
- ChannelAssignment item in the WaveAudioDescriptor (only useful when
- writing PCM essence).
-
-
-2011-11-30 - bug fixes v1.8.44
- o Corrected a wrong decryption UL selection when unwrapping MXF.
-
-
-2011-10-27 - bug fixes v1.8.43
- o Corrected broken Essence UL matching. (Thanks to Michael Loder).
-
-
-2011-08-31 - bug fixes v1.8.42
- o Added missing HFR support for PCM essence reader/writer.
-
-
-2011-08-30 - bug fixes, enhancements v1.8.41
- o UL version byte now ignored when comparing UL values.
- o Changed the version byte in the TimedTextEssence UL to 0x01. There
- is no published Essence Keys registry so it can't have a maintained
- version number.
- o JP2K Sequence Parser modified to skip directory entries that
- are not files in the case where the parser is initialized with
- a directory path. When initialized with a list of file names
- this check is not performed. Based on a hint by Steve Quartly.
- o Increased the size of the MPEG header parser buffer.
- o Added missing FrameType() implementation to ASDCP::MPEG2::MXFReader.
- o Added missing Close() implementations to MXF reader classes.
- o Added missing Timestamp::Timestamp(const char* datestr) implementation.
- (Thanks to Matt Sheby for this and the previous three items.)
- o Fixed error in Kumu::FortunaRNG::FillRandom() that was returning the
- end of the random buffer instead of the front (Thanks to Mike Radford).
- o Added support for proposed sound channel format identifiers
- '7.1DS' and 'WTF'. Optimistically chose version '0x0c'.
- o Added support for stereoscopic images in JP2K files at edit
- rates of 48, 50 and 60 eups (96, 100 and 120 fps).
-
-
-2010.11.15 - bug fixes, enhancements v1.7.40
- o Fixed bug in long KLV packet support (Thanks to Jim Radford).
- o Fixed AvgBps in PCM files, *again*. Sorry for the crazy.
- o More fixes and changes in support of 25, 30, 50, 60 fps.
- (Thanks to Hans K. for the TC rate bug).
- o Updated KLVFill UL version element to 0x02.
- o Type change to support Xerces-C 3.x. (Thanks to Matt Sheby).
- o Some internal API changes to KLV types. Does not affect
- operation.
- o Added NetworkLocator type to MXF metadata types.
- o Added file offset display to klvwalk.
-
-
-2010.09.09 - bug fixes, enhancements, v1.7.39
- o Fixed bug in JP2K PictureDescriptor initialization in
- JP2K::MXFReader::OpenRead() and JP2K::MXFSReader::OpenRead()
- o Once again fiddling with AvgBbs. How can something so simple
- be such a constant cause of trouble? Tested with 1-, 2- and
- 6-channel input Wav files.
- o asdcp-test now accepts a directory name when making PCM
- files (-c). The directory name should be the only filename
- argument. All files in the directory must be Wav files
- (mixed channel sizes OK). Files are sorted alphabetically by
- filename. Hint: use numeric name infix to define order:
- my_movie_00_L.wav
- my_movie_01_R.wav
- my_movie_02_C.wav
- my_movie_03_LFE.wav
- my_movie_04_LS.wav
- my_movie_05_RS.wav
-
-
-2010.07.20 - bug fixes, v1.6.37
- o Fixed TimedTextResourceSubDescriptor UL value.
-
-
-2010.06.16 - bug fixes, v1.6.36
- o Added support for new Edit Rates to asdcp-test.cpp.
- o Expanded timed-text file reader in asdcp-test.cpp.
- o Fixed large BER value encoding (plaintext) and decoding
- (plaintext and ciphertext). This feature was introduced in
- v1.5.31).
- o Fixed AvgBps value for multi-channel Wave input.
-
-
-2010.05.13 - bug fixes, enhancements, v1.6.34
- o ST 429-5 files have corrected ULs for DCTimedTextDescriptor and
- GenericStream DataElement. Files made with previous versions of
- the library are incompatible with this and future versions.
- o Fixed File Package TrackNumber values. Thanks to Sankar.
- o Added edit rate constants to AS_DCP.h (25, 30, 50, 60).
- o Changed AudioDescriptor "SampleRate" element name to "EditRate"
- to make it consistent with the other types.
- o Now builds with XercesC 3.x.
- o KM_memio.h has better const behavior.
- o Fixed a bug in KM_memio.h string archiving.
-
-
-2010.01.05 - bug fixes, enhancements, v1.5.32
- o Re-fixed swapped Interop and SMPTE OP Atom UL values. The swap
- introduced in v1.5.31 was done in error.
- o Added -z,-Z options to asdcp-test (j2c parameter checking)
- o Reformed jp2k-test as j2c-test, added help and list processing,
- added to standard install target.
-
-
-2009.12.31 - bug fixes, enhancements, v1.5.31
- o Fixed swapped Interop and SMPTE OP Atom UL values.
- o Added get_BER_length_for_value() subroutine.
- o Modified ASDCP::h__Writer::WriteEKLVPacket() to allow larger BER
- lengths for KLV packets larger than 16 MB. This was required to
- support large font files in the SMPTE 429-5 implementation.
-
-
-2009.11.06 - bug fixes, enhancements, v1.5.29
- o Fixed a bug that could cause HMAC values to be incorrectly
- stored in MXF files. Files created with versions of asdcplib
- prior to this version may have incorrect HMAC values.
- o Improved handing of XML files for MXF wrapping.
- o Jpeg2000 codestream EditRate and SampleRate mismatches
- now warns instead of returning an error.
- o Improved error handling in Jpeg2000 sequence parsing routines.
- o Added two methods to Kumu::Timestamp, AddSeconds(), to add (or
- subtract) seconds to a time value, and GetSecondsSinceEpoch()
- to get the number of seconds since the unix epoch.
- o Added new option to asdcp-test, '-a', to specify a UUID when
- creating MXF files.
- o Added support for specifying the intrinsic duration of MXF files
- containing timed text.
- o Added new option to wavesplit, '-i', to display WAV file metadata.
-
-
-2009.05.21 - bug fixes, v.1.4.24
- o Fixed a bug that caused incorrect SubDescriptors UL values to be
- written into interop format MXF track files. Note that this involved
- a substantial reorganization of MXF internals. Please test thoroughly
- in your application before using in production. Note that this is a
- significant bug fix and track files created with 1.4.22 may be incompatible
- with other systems.
-
-
-2009.04.09 - SMPTE format fixes, enhancements and bug fixes, v.1.4.22
- o asdcplib now uses GNU autotools on POSIX systems to configure
- and build. See "./configure" for details. Note that two options,
- --enable-freedist and --with-python are not enabled in the free
- version of asdcplib and should not be used.
- o Added build option (CONFIG_RANDOM_UUID) to enable mixed case UUID
- generation when environment variable KM_USE_RANDOM_UUID is defined.
- o Fixed a condition that could cause an error to occur when wrapping
- SMPTE format timed text track files that do not define a starting
- frame.
- o Updated ULs for SMPTE format track files.
- o SampleRate added to JP2K metadata
- o Support for wrapping 96kHz WAV files added.
- o Updated ULs for audio channel formats (ChannelFormat)
- o Updated font subdescriptor MIME Types for TimedText Trackfiles.
- o Changed time implementation to support dates beyond Jan 19th, 2038.
- o Xerces-C XML parser support added.
- o New build method for Windows (see win32/README.txt for details).
- o Added new functionality in Kumu to recursively create and delete files
- and directories, and get free disk space for a given volume path.
- o Added a method to Kumu::Timestamp, AddMinutes(), to add (or subtract)
- minutes to a time value.
- o Improved how Kumu::Timestamp parses timestamps with offsets.
- o Fixed a bug that caused incorrect HMAC values to be calculated.
-
-
-2008.02.16 - SMPTE format fixes, bug fixes v.1.3.18
- o Added correct SMPTE UL for StereoscopicPictureSubDescriptor.
- o Exposed JP2K metadata parser as ParseMetadataIntoDesc().
- o Added simple stereoscopic framebuffer to support paired ReadFrame()
- and WriteFrame() methods (allows simpler integration with other
- single-buffer code).
- o Improved detection of JPEG Interop stereoscopic files.
- o Win32 build fixes (Thanks to Mike Crowe at DTS).
- o Added the WITH_MD macro to the makefile. Set this value to one
- to build Win32 with /MD[d] instead of /MT[d].
- o The Generic Container UL has been added to the EssenceContainers
- set in the header partition pack for encrypted files. It has always
- been there in plaintext files.
- - Below this point the changes are internal and should not affect you
- unless you use Kumu directly.
- o Major refactoring of KM_log.[h|cpp].
- o Fixed buffer re-sizing issue in Kumu::ByteString.
- o Replaced type IdentifierList with ArchivableList.
- o Added COPYING file to the release bundle.
-
-
-2007.12.13 - Bug fixes v.1.2.17
- o Changed Result_t implementation to use int instead of long, which
- was causing trouble on some 64 bit platforms.
- o Fixed EKLV HMAC. NOTE: Breaks backward compatibility with older
- Interop files. To validate these files, use asdcplib-1.1.14. This
- should not cause too much trouble since files with broken and
- non-broken HMAC have been in the wild for years without issue.
- o Fixed HMAC sequence numbering in encrypted stereoscopic files.
- o Finished stereoscopic test targets in the makefile.
- o Fixed the win32 build, now expects VS2005 compiler by default,
- use WITH_VC6=1 top get VC6 flags.
- o Stereoscopic and Timed Text modes now have SMPTE UL values.
- NOTE: SMPTE 429-5 and 429-10 are not yet published. It is possible
- that these UL values may change before publication. Please use
- caution when using these features for production work.
- o Changed a bunch of symbol names in the 429-5 implementation to
- better match the spec.
- o Added -U option to asdcp-test to dump the UL library to stdout.
- o Fixed erroneous placement of the PictureEssenceCoding UL in JP2K
- files (Interop and SMPTE modes).
-
-
-2007.10.22 - Timed Text, Stereoscopic Picture and Bug fixes v.1.2.16
- o Significant API changes have been made. Please read all entries
- in this changelog to be sure you understand the changes. Also
- note that some changes have been made to LS_MXF_SMPTE files that
- are incompatible with earlier releases (e.g., EKLV HMAC). If
- you are looking for a stable interop release, use v.1.1.14.
- o Fixed RFC 2104 HMAC implementation for LS_MXF_SMPTE only. The
- broken implementation has been maintained for Interop mode.
- o Added support for draft SMPTE 429-5 Timed Text Track File. This
- is still waiting for official SMPTE ULs, so do not use it for
- shipping products. An XML parser is needed to create a Timed
- Text Track File; Expat is now an optional part of the build.
- Make with WITH_XML_PARSER=1 to link with Expat. If you do not
- link with expat, you will get an error when using the TimedText::
- DCSubtitleParser class. See also S429-5-cgi.cpp for an example
- that shows how to serve plaintext MXF file elements directly via
- HTTP.
- o Added support for draft SMPTE 429-10 Stereoscopic Picture Track
- File, including the JPEG Interop version. This is still waiting
- for official SMPTE ULs, so do not use it with LS_MXF_SMPTE for
- shipping products.
- o Refactored the following files as a side-effect of the above
- work: AS_DCP_JP2K.cpp AS_DCP_MPEG2.cpp AS_DCP_PCM.cpp
- AS_DCP_MXF.cpp AS_DCP_internal.h MXF.[h|cpp] MXFTypes.[h|cpp]
- Metadata.[h|cpp] h__Reader.cpp h__Writer.cpp klvwalk.cpp.
- WARNING: While significant effort has been extended to make sure
- that these changes do not affect existing stable file support,
- users are cautioned to test this release thouroughly.
- o Added a large set of filesystem path manglers to KM_fileio.h. See
- path-test.cpp for example usage. The path manglers have not yet
- been tested on win32 platforms (they are currently used only by
- the Timed Text module.
- o The PathIsFile(), PathIsDirectory() and FileSize() subroutines
- have been modified to accept const std::string& instead of
- const char*.
- o Added namespace and parsing support (Expat) to Kumu::XMLElement
- (currently used only for Timed Text support). Also added some
- new accessors.
- o Altered MXF::UTF16String to use mbtowc() and wctomb().
-
-
-2007.03.31 - Bug fixes v.1.1.14
- o Fixed KeyFrameOffset value in MPEG wrapping to have negative
- value. This is probably not yet complete for handling all
- types of GOPs. Please send chunks of MPEG-2 VES that you
- find which break this. Thanks to Doremi.
- ** no other file format changes in this release **
- o Fixed error in RIP interpretation when reading arbitrary (i.e.,
- non-MXF) files.
- o Fixed a memory leak in ASDCP::MXF::OPAtomHeader when used
- in read mode. Thanks to Mahesh Bajaj for pointing out this
- bug and the one above.
- o Removed asserts from KM_fileio, replaced with RESULT_WRITEFAIL
- return value statements.
- o Added -s and -p to the makefile install target.
- o Altered ByteString behavior to use target Length() in copy
- operations (instead of Capacity()).
- o Added new Set() method to ByteString.
- o Fixed a bug in ByteString::Unarchive() that caused the operation
- to fail when the buffer was smaller than the read (i.e., when
- Capacity() was called).
- o Added IdentifierList class to KM_util.h.
- o Changed some Error() messages to Debug() in Wav.cpp
- o Revived jp2k-test.cpp and asdcp-mem-test.cpp (they both had
- stale #includes).
-
-
-2007.02.15 - Bug fixes v1.1.13
- o Removed 'VDescObj->SampleRate.Numerator = VDesc.FrameRate;'
- from MPEG2_VDesc_to_MD() in AS_DCP_MPEG2.cpp, was line 76.
- o Added KM_TEST_NULL_STR_L() and KM_TEST_NULL_L() macros to
- KM_log.h. These versions log the location of the null value.
- Macros are now used in any module that includes KM_log.h.
- o MPEG2 VES with run of zero values at the head is now OK.
- o Increased VESHeaderBufSize to 16K.
- o Added makefile support for local OpenSSL in ../openssl, if
- present.
- o The Kumu::PathIs*() functions now return false if a null or
- empty string is given (used to be an assert).
- o Cleaned up the install target in the makefile.
- o Fixed SMPTE 429-6 HMAC -- FIPS 186-2 implementation was
- laughably incorrect. Thanks to Doremi for pointing this out.
- o Removed default parameter to HMACContext::InitKey().
- o Cleaned up messages and CLI arg handling in asdcp-test.
-
-
-2006.11.19 - Mo better stuff v1.1.12
- o Changed read-only Result_t accessor methods to const.
- o Added Base64 (-B) option to kmrandgen.
- o Removed 16-bit alignment restriction from kmrandgen.
- o Improved WAV file extraction speed (Thanks to Jim Radford
- for pointing this out).
- o Added single-channel split for WAV extraction (asdcp-test -1).
- o Fixed remainder bug in h__RNG::fill_rand().
-
-
-2006.11.03 - Bug fixes v1.1.11
- o Increased index table entry list size to 5000.
- o Added length checking to TLV writer (returns error if TLV
- payload exceeds 64kB).
- o Fixed partition header and RIP errors related to 2-partition
- files (MXF Interop mode).
- o Added -t option to asdcp-test (SHA-1 digest with Base64 output
- on stdout).
- o Fixed Sub Descriptor reference bug (Thanks to Denis Leconte
- for dogged determination).
- o Added directory-of-wav detection to RawEssenceType()
- o Modified MXF::Partition::AddChildObject() to only generate
- a UUID if the InstanceID is unset.
- o Added ComponentMaxRef & ComponentMinRef to RGBAEssenceDescriptor.
- More to follow.
- o Added detection of 2K/4K jp2c, writing correct 4K metadata.
-
-
-2006.10.05 - Bug fixes v1.1.10
- o Changed RM_RELEASE to RL_RELEASE in MXFTypes.h.
- o Changed the MXF writer to use RL_RELEASE (was RL_DEVELOPMENT).
- o Really fixed source reference chain.
- o Updated JP2K file package label.
- o Changed location of JPEG2000PictureSubDescriptor in the
- header (was erroneously before Preface).
- o Altered LS_MXF_INTEROP to produce 2-partition files.
-
-
-2006.09.25 - Bug fixes v1.1.9
- o Fixed SourcePackageID value. All files will be 'original',
- i.e. SourcePackageID will be all zeros. Let me know if you
- want to set SourcePackageID.
- o Fixed compiler warnings on some Linux platforms
- o Fixed the build so that BUILD_DIR is no longer created
- as a dependency.
- o Added duration detection to the raw essence parsers. The
- MPEG parser uses a nasty approximation so don't use it
- without paying close attention to the result.
- o Modified PCMParserList to make it more useful as a base
- class.
- o Fixed bugs and re-organized command-line help in asdcp-test
- and klvwalk.
- o Fixed two-partition file reads.
- o Fixed Win32 PRNG initialization.
- o Renamed asdcp-lf-test as kmfilegen.
- o Added kmrandgen and kmuuidgen.
- o Added string retrieval mechanism to Result_t.
- o Refactored Kumu::Identifier and its sub-classes.
- o Altered Kumu::PathIsFile to return true when the path
- is a symbolic link (unix only).
- o Altered Kumu::FileWriter::OpenWrite to use file creation
- mode 0664 (was 0644) (unix only).
- o Added Kumu::WriteStringIntoFile() subroutine.
-
-
-2006.04.05 - Bug fixes and new stuff v1.1.7
- o Fixed a bug in the MPEG parser that caused it to fail when
- handling start codes spanning buffer boundaries
- o Added wavesplit and blackwave utility programs
- o Added support for revised SMPTE HMAC key derivation when
- using LS_MXF_SMPTE
- o Refactored platform compatibility and general utilities
- into a new sub-library "Kumu". There are no new build
- steps or dependencies, but some important things have
- changed:
- + Result_t is no longer an enum, it is now a class.
- Library result codes are now declared as const objects
- like this:
-
- const Kumu::Result_t RESULT_FORMAT (-101, "The file...");
-
- The macros ASDCP_SUCCESS and ASDCP_FAILURE still work
- the same way thanks to an operator overload for type long.
- See KM_error.h for more information.
- + The logging interface has been moved out of AS_DCP.h
- and into KM_log.h
- o Some of the command line utilities that were using headers
- other than AS_DCP.h have been changed to use the Kumu
- equivalents. If you have code based on those utilities, you
- will have to update by hand.
- o Added new types to the EssenceType_t enum.
- o The guard macro for Win32 code has changed from WIN32 to
- KM_WIN32.
-
-
-2006.03.2x - new stuff
- o Proper handling of stream-id byte of essence UL values
- o writes 3-partition files, reads 2-part or 3-part
-
-
-2006.03.16 - bug fixes plus
- o Removed SMPTE_LABELS compile-time option. The reader will now
- silently accept either SMPTE or MXF Interop labels, the writer
- can be instructed which to use at runtime. Default is Interop.
- o Added an AIFF reader. Support is preliminary, it works with the
- AIFF files I have on hand.
- o More code refactoring. More to come.
-
-
-2006.03.09 - full read-write
- o Removed ASDCP_WITHOUT_OPENSSL compile-time option.
- o Full read/write now working on new MXF library
-
-
-2005.00.00 - A New Hope
- o The temporary mxf-lite has been removed. MXF files are now
- managed via the objects in KLV.h, MXFTypes.h MXF.h and
- Metadata.h. This release does not support writing MXF files.
- o Fixed a header interpretation error in the Wav parser.
-
-
-2005.00.00 - The Reformation
- o Removed mxflib as a dependency by forking the necessary
- functions and placing them in the mxf-lite subdirectory.
- Please note that the very heavy modifications done here
- render all comparisson to mxflib code a substantial task.
- All errors are now mine and users are warned not to bug
- Oliver or Matt for help with this code. The version of
- mxflib at the time of the fork was: 0.5.1.3.
-
-
-2005.06.03 - bug fixes v0.10.18
- o Updated UL batch to include GC UL.
-
-
-2005.05.27 - bug fixes v0.10.17
- o Un-did essence container and compression descriptor changes.
- The default build reflects MXF Interop decisions as of 26 May.
- o Added note about build versions to README (see above).
- o Added warnings to SMPTE_LABELS builds.
- o Fixed JP2K essence container label.
-
-
-2005.05.02 - bug fixes v0.10.16
- o Reorganized internal files, added file reader object, added OS
- portability header, removed and renamed some files. If you have a
- patch against previous versions of the source, you should check
- it thoroughly.
- o Added RGBA attributes to JP2K descriptor.
- o Changed interface to CodestreamParser.
- o Added JP2K parser implementation. It is parsing each frame but is
- not yet being used to populate the descriptor.
- o Added 48fps option for `asdcp-test -p`.
- o Added picture rate constants to AS_DCP.h (23.976, 24, 48).
- o Added sample rate constant to AS_DCP.h (48k).
- o Changed asdcp-test to encrypt picture headers by default
- (plaintext offset will be 0), added -E option to allow
- plaintext headers.
-
-
-2005.04.28 - bug fixes v0.9.15
- o The XML descriptors for the crypto DMS have moved in mxflib to
- the file DMS_Crypto.xml (they were in DMS_DCPENC.xml). Older
- installations should update the file from mxflib.
- o Added Close() and Seek() to ~MyFileWriter(), cleaned up headers
- o Added UUID generator output mode (-u).
- o Added -S option to extract PCM essence into stereo wav files
- o Added more UL testing and conformance checking.
- o Added macro SMPTE_LABELS which causes the library to be built
- with SMPTE (as opposed to MXF Interop) labels. This is not
- set by default, and currently only affects the PCM container
- label and encrypted element label.
- o Cleaned up the GNUmakefile test targets, the source files
- are now named with the TEST_FILE_PREFIX macro.
- o enabled 23.976-framed PCM (2002 samples per frame)
- o The size of the asdcp-test frame buffer for picture essence
- may now be set from the command line (-b). The default is 4MB.
- o h__Reader::ReadEKLVPacket() now tests the UL (duh) and switches
- on the value, allowing plaintext and ciphertext frames to
- be mixed in the file.
- o Fixed error in UUID generator format.
- o JP2K files now use the GenericPictureDescriptor to store
- ContainerDuration and SampleRate. SampleRate is mapped
- to EditRate in the PictureDescriptor struct. This fixes
- the second caveat from the 0.8.13 release.
- o Fxed bug in PCMParserList that was miscalculating the extent
- of a PCM sample. This bug did not affect API users, it was
- only present in asdcp-test.
- o Fixed EditRate on PCM files (was showing sample rate)
- o Fixed Encrypted Essence Container UL
- o Fixed BlockAlign value for PCM essence
-
- - The following changes were provided by Jeff Loewenguth
- - Thanks Jeff!
- o Moved the DMS CryptographicFramework entry from the material
- package to the source package
- o Fixed erroneous Source Essence Container Label value
- o Fixed broken sort of JP2K frames in JP2K parser
- o Added FindFrameGOPStart() method to the MPEG2 MXFReader
- o Added missing length values for EKLV packets without HMAC
- o -x with JP2K essence writes to files with 6 digit names
- (up from 5 digits).
- o The Key ID may now be specified as an argument to asdcp-test
- (-j <key-id-string>)
-
-
-2004.12.30 - bug fixes + wav files v0.8.14
- o Added WAV file write to asdcp-test (uses mxflib::waveheader_t).
- o Three-partition files reading properly. adscplib still writes
- two-partition files.
- o Changes in the mxflib WAV essence parser API had broken
- asdcplib's ability to read essence from a WAV file. I have
- fixed this bug, but at the expense of breaking compatibility
- with older versions of mxflib. Beware!
- o Removed redundant (but working) bin-text-bin conversions.
-
-
-2004.12.23 - JPEG 2000 support v0.8.13
- o Reads/writes JPEG 2000 essence in plaintext and ciphertext
- with the following caveats:
- - The Picture Essence Descriptor is empty.
- - Because there is no essence descriptor, the reader code
- in asdcp-test has no idea how many frames are in the file
- and ends with an out-of-bounds frame error. This error
- is being suppressed in asdcp-test for the current release.
- o Still broken when reading three-partition files.
-
-
-2004.10.22 - fixes and UL updates v0.7.11
- WARNING: COMPATIBILITY BREAKPOINT
- Files created with this and future versions of this library are
- not compatible with previous versions of this library. As you
- might suspect, files created with previous versions of this
- library are not compatible with this and future versions.
-
- o h__Reader will now open a three-partitition file (untested)
- o Moved DMS from Material partition to File partition
- o Added length fields to appropriate places in EKLV packet
-
-
-2004.10.22 - fixes and UL updates v0.7.10
- o fixed frame buffer handling of externally allocated buffer,
- created unit test (asdcp-mem-test)
- o added operator==() and operator!=() to Rational type
- o fixed some type-related compiler warnings
- o asdcp-test -p now works on unwrap
- o updated some ULs to match documentation (thanks to Arun
- for the submission)
- o canonicalized line endings
-
-
-2004.07.02 - full plaintext + ciphertext read/write v0.6.9
- o HMAC, plaintext offest and raw ciphertext read supported
- o back to proper CBR index
- o MPEG temporal offset working
-
-
-2004.07.01 - plaintext + ciphertext read/write v0.5.8
- o encryption of MPEG and PCM essence supported with the
- following caveats:
- - no HMAC support
- - no plaintext offest support
- - no raw ciphertext read support
- o moved to reflecting the whole KLV triplet in the CBR
- index (now incompatible with mxflib, still searching
- for info about what's "right")
- o awaitng the following fixes/features:
- - retrieve Temporal Offset from index in MPEG2::Reader
- - test for correct ULs when reading frame triplets
- - fix header metadata items for encrypted files
- - HMAC support
- - plaintext offest support
- - raw ciphertext read support
-
-
-2004.06.14 - plaintext read/write w/key generator v0.4.5
- o Project now uses OpenSSL (tested with 0.9.7d on win32, Linux, Darwin)
- Use `make ASDCP_WITHOUT_OPENSSL=1` to make plaintext-only version
- o Accepts interior I frames when parsing MPEG2 VES
- o Improved error reporting on format errors
- o Added support for encryption to asdcp-test
- o Added RNG for asdcp-test (non-production use only, see notes in FortunaRNG.h)
- o Implemented CBC encrypt, decrypt module
- o Added partial TemporalOffset retrieval from MPEG2 parser
- o Fixed win32 binmode bug
-
-
-2004.05.12 - plaintext read/write v0.3.4
- o Full read/write of plaintext MPEG-2 VES and WAV files
- (does not yet support mux from or demux to 2 channel pairs)
- o Builds with autoconf-based mxflib
- o Added ASDCP_ prefix to macros
- o Updated documentation, fixed documentation errors
- o Simplified API for MXF writer setup
- o Decoupled essence parsers from MXF writers
- o added raw ciphertext support to FrameBuffer
- o Cleaned up Get/Set naming confusion
- o Added missing const qualifiers
-
-
-2004.04.27 - preview release v0.2.1
- o hasty release for quick review
- o this release may not build with mxflib using autoconf.
- o writes plaintext AS-DCP MPEG2 essence files
- o tested under win32 and linux. FreeBSD and Darwin do not work
-
-
-2004.02.04 - First release (v0.1.1):
- o asdcp-test is mostly complete. It should correctly provide
- access to the read and info capabilities of the library.
- o The MPEG2 reader is functional but not fully tested.
- o Some file format integrity tests remain to be coded.
- o The PCM reader is mostly complete, I am having difficulty
- getting a suitable test file from mxfwrap.
- o The makefile creates a static library module. The API
- will cleanly support a DSO (or DLL). Let me know if DSO
- support is important to you.
- o Nothing is thread safe. Thread safety was not a requirement
- in the initial project definition. Thread safety may be added
- above the mxflib/klvlib level. Let me know if it is important
- to you.
- o The files xmldict.xml and types.xml must be in the current
- directory when the program is run. The files are supplied
- with mxflib. Runtime location of the files is not currently
- a project goal. Comments on how best to handle this situation
- would be appreciated. See AS_DCP.cpp at init_mxf_types()
- for a more detailed discussion.
-
---