X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=README;h=c44d43de304ac4fe312114b2ecc02a97b1025fee;hb=c457586e6fadd7c8b3547c59a7e30407842fce9b;hp=7bf5f343d6763aa295f549a31e5ce3be36e77b14;hpb=deaf5cf9df866a1632a310ae4e5e774ae7aeca68;p=asdcplib.git diff --git a/README b/README index 7bf5f34..c44d43d 100755 --- a/README +++ b/README @@ -11,8 +11,8 @@ Initiatives, LLC (DCI). Subsequent efforts have been funded by Deluxe Laboratories, Doremi Labs, CineCert LLC, Avica Technology and others. -**The asdcplib project was housed on SourceForge. The project -has moved to http://www.cinecert.com/asdcplib/ +**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, @@ -39,16 +39,16 @@ 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 for applications having non-trivial security -requirements. +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. +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 @@ -60,28 +60,24 @@ is simple AS-DCP support. Build Instructions -GNU make is required to build asdcplib. The makefile will work -on win32 systems that have Cygwin and MSVC. Other win32 gmake -packages may or may not work depending upon the availability -of standard POSIX shell commands. You will need gcc to rebuild -the dep.make file. +On more-or-less POSIX systems (OS X, Linux, and BSD), GNU make is +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. See http://www.openssl.org/ -If you are building on win32 or a unix with no OpenSSL library -support, you will have to also obtain and build OpenSSL. Unpack -it into the same parent directory as asdcplib/, and rename (or make -a symlink to) the directory as 'openssl': +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. -myhost$ ls -l -total 1761 -drwxr-xr-x 1 jhurst None 0 Feb 3 16:37 asdcplib -drwxr-xr-x 56 jhurst None 0 Feb 2 16:35 openssl +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. -To build, type 'make'. There are several test targets but you -need to assemble a set of test files to use them. - -I have tested this build on win32, Linux, OpenBSD and Darwin +I have tested this build on win32, Linux, OpenBSD, and Darwin platforms. Others may work as well. @@ -113,36 +109,105 @@ utilities all respond to -h. Change History -2007.06.xx - Timed Text and Bug fixes v.1.1.15 - o Added support for draft SMPTE 429-5 Timed Text Track File. See - AS_DCP_TimedText.h for the API. This is *very* experimental, so - do not use for shipping products. Timed Text support is NOT part - of the default build, run `make WITH_TIMED_TEXT=1` to enable - this part of the library. AS_DCP_TimedText.h will be combined - with AS_DCP.h when it becomes stable. Because we need an XML - parser to create the Track File, expat is now part of the Timed - Text build. Follow the XML_PARSER macro in the makefile and KM_xml - to see how you can support your favorite parser. See also - S429-5-cgi.cpp for an example that shows how to serve plaintext - MXF file elements directly via HTTP. + +2009.03.08 - SMPTE format fixes, enhancements and bug fixes, v.1.4.21 + 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 whenwrapping + 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). + + +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 this work does not affect existing stable file support, + that these changes do not affect existing stable file support, users are cautioned to test this release thouroughly. - o Added a large set of path manglers to KM_fileio.h. See + 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. The PathIsFile(), PathIsDirectory() and - FileSize() subroutines have been modified to accept const - std::string& instead of const char*. + 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(). - o ... 2007.03.31 - Bug fixes v.1.1.14