o Improved IMSC-1 profile detection. May not yet be perfect, experimentation
[asdcplib.git] / README
diff --git a/README b/README
index 71dfe64578aebab31788fafa4b3ffdbfa9bf4618..85f90e203bdfb81778ed43275e731678c8f83413 100755 (executable)
--- a/README
+++ b/README
@@ -123,12 +123,23 @@ 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).
+blackwave - Write a WAVE file of zeros.
+
+pinkwave - Write a WAVE file of SMPTE ST 2095 pink noise.
 
 j2c-test - Displays information about JP2K codestreams.
 
+Experimental feature: Prototype for High Dynamic Range is a wrapper
+for the IMF application that allows JPEG-2000 codestreams to be paired
+with opaque blobs of metadata.  AS-02 support must be enabled to
+build this feature, so --enable-as-02 must be enabled if
+--enable-phdr is to be used.  The following executable programs will be
+built:
+
+phdr-wrap - Writes AS-02 PHDR Essence Component files.
+
+phdr-unwrap - Extracts essence from AS-02 PHDR Essence Component files.
+
 
 Documentation
 
@@ -139,12 +150,190 @@ command-line utilities all respond to -h.
 
 
 Change History
+
+
+2016-12-01 - bug fixes 2.6.17
+ o Fixed Partiton and Preface version numbers in AS-02 files
+ o Replaced WIN32 directory scanner with dirent_win.h
+ o The NamespaceURI property of AS-02 timed text files has been exposed in the API
+   and via as-02-wrap -P. This behavior replaces previous bad behavior, but puts
+   responsibility for selecting the correct value on the operator.
+ o Exposed CreatePNGNameId and CreateFontNameId subroutines in AS_02::TimedText
+ o Adjusted UUID generation based on PNG and font names to exclude paths by
+   inserting a call to PathBasename at each Id generation site
+ o Fixed AS-02 timed text index partition
+ o Fixed contents of generic partiton EssenceContainers property in AS-DCP timed
+   text files
+ o Added PixelLayout to RGBAEssenceDescriptor (contributed by Schleich)
+ o Cleared up MXFGCP1FrameWrappedPictureElement / MXFGCP1FrameWrappedPictureElement
+   ambiguity. PHDR continues to use MXFGCP1FrameWrappedPictureElement.
+   MXFGCI1FrameWrappedPictureElement is supported for interlace.
+ o Added support for 192, 200 and 240 fps images, includes 96, 100 and 120 fpe stereo
+ o Added missing MCA properties to MCALabelSubDescriptor (contributed by Ruppel)
+ o New MXF data type: LineMapPair
+ o Added default 0,0 VideoLineMap value when wrapping CDCI with as-02-wrap
+ o Added VideoLineMap property to GenericPictureEssenceDescriptor
+ o Added timed text unwrap support to as-02-unwrap (contributed by Ruppel)
+ o Added prototype PIDM dynamic metadata wrapping, config with --enable-phdr
+   (Not for production use, caveat emptor, not the droids, etc.)
+
+2016-08-11 - bug fixes, 2.5.15
+
+ o Modified as-02-wrap to pass WhiteRefLev, BlackRefLev and ColorRange
+    (contributed by Elmer Musser / Rod Bogart)
+ o Fixed a bug in the index reader that allowed an out-of-bounds vector index
+   to be used.
+ o Modified the IndexEntry parser to ignore additional bytes belonging to slice
+   values.
+
+2016-05-06 - bug fixes, 2.5.14
+
+ o Release 2.5.12 caused two problems with Atoms and DTS-X wrapping that are
+   addressed by this release. The UL values that were changed to correct the
+   DCData (ST 429-14) implementation had two unintended side-effects:
+     1. v2.5.12 cannot read old DCData (and thus DTS-X) track files
+     2. v2.5.12 creates broken Atmos track files (incorrect ULs)
+   The fix for this involved the following changes:
+     1. ASDCP::DCData::(MXFReader|MXFWriter) are no longer base classes of
+        ASDCP::ATMOS::(MXFReader|MXFWriter).
+     2. New UL values have been added to carry the original Atoms UL values:
+        a. DolbyAtmosDCDataWrappingFrame
+        b. DolbyAtmosDCDataEssence
+        c. DolbyAtmosDCDataDescriptor
+     3. ASDCP::ATMOS::(MXFReader|MXFWriter) have been modified to use the
+        DolbyAtmosDCData* UL values.
+     4. ASDCP::DCData::MXFReader will parse files having either DCData* or
+        DolbyAtmosDCData* UL values.
+     5. ASDCP::DCData:: MXFWriter continues to use DCData* UL values from ST
+        429-14
+  o Some optional parameters of the MXF metadata packs were being erroneously
+    initialized with a value of zero (0), such as GenericPictureEssenceDescriptor
+    ::SignalStandard, GenericPictureEssenceDescriptor::SampledXOffset(0), etc.
+  o Added higher edit rates (96, 100, 120) to the cinema TimedText_Parser
+
+  o Defined bool ASDCP::UL::operator<(const UL& rhs) const, which is needed to
+    carry out the version-insensitive lookup policy when searching for ULs in a
+    std::map<> of UL entries.
+  o New files:  src/info.in src/CMakeLists.txt
+  o Removed filess:  AS_DCP_DCData_internal.h
+
+
+2016-03-17 - bug fixes, 2.5.12
+ o Changed default UNIX file permissions to "666"
+ o Changed default UNIX file permissions to "777"
+ o Added missing initializer for caltime::offset
+ o Fixed UL values for Aux Data files (per ST 429-14)
+ o Added support for default TTML fonts (ST2052_TextParser)
+ o Added Solaris patch to KM_fileio (Thanks Mikey!)
+ o Fixed the version byte in UL DataEssenceCoding
+ o Fixed duplicate linkage error for symbol MIME2str
+ o Big patch from Wolfgang Ruppel:
+   o Corrected erroneous fixed-tag values in ActiveHeight, ActiveWidth,
+     ActiveXOffset, ActiveYOffset UL definitions.
+   o Provided a stub implementation for Kumu::DirScannerEx (A real
+     implementation will follow soon.)
+   o Added as-02-info program
+   o Added Seek() method to PCM parsers
+   o Added CMakeLists.txt
+
+
+2015-11-10 - bug fixes, IMF text, pink noise, 2.5.11
+ o I moved personal dev environment from older gcc to newer clang.  Many
+   small changes were made to satisfy the new compiler:
+   - Altered many printf format codes to use the correct format for the
+     given integer type.
+   - Parenthesized some expressions to clarify previously ambiguous
+     expectation about precedence.
+   - Created macro KM_MACOSX for use in OS-specific code selection.
+   - Removed last uses of the old C-language abs(), now using Kumu::xabs().
+   - Removed last uses of the old C-language atoi(), not using strtol().
+ o Added platform-independent call Kumu::GetExecutablePath() (to be tested
+   on win32).
+ o Added new capabilities to Result_t.
+ o Added imlementation of SMPTE ST 2092-1 pink noise generator.
+ o Added pinkwave CLI utility.
+ o Added font support to the IMF timed-text wrapper.
+ o Fixed a bug that was causing Array properties to be written without
+   the (count, length) header (from PAL).
+ o General review of Batch/Array distinction throughout the project.
+ o Cleaned up definitions of optional properties in all MXF metadata packs.
+ o Fixed Win32 build (from Crowe).
+ o Fixed a bug that caused incorrect failure when parsing JPEG 2000
+   codestreams having fewer than five decomposition levels. (from Korneder).
+ o Fixed missing UUID generation in some instances of the MCALinkID property.
+ o Added -w option to asdcp-wrap to support use of WTF label with MCA.
+ o Altered asdcp-wrap to recognize "-C <UL>" when MCA is being used.
+ o Fixed broken -A <w>/<h> option in as-02-wrap and phdr-wrap.
+ o asdcp-wrap and as-02-wrap now allow split channel groups in MCA labels.
+
+
+2015-02-23 - bug fixes, 2.4.10
+  o Fixed a new bug introduced by the fix to large numbers of subtitle ancillary
+    resources.
+  o Added support for generic Aux Data (ST 429-14) to asdcp-wrap.
+
+
+2015-02-19 - PHDR feature, bug fixes, 2.4.9
+  o Modified PCMParser and PCMParserList to return partial frame buffers at the
+    end of a WAV input file.  This was needed to allow wrapping all samples into
+    an AS-02 audio file (which is clip-wrapped) in the case where the input file
+    has an odd number of samples with respect to the frame buffer size being
+    used.  If there is more than one input file the length of the last buffer
+    will be determined by PCMParserList to be the shortest of the input files.
+    Prior to this change, partial samples in an input WAV file have been
+    abandoned (i.e., not written out to the MXF file).  As a result, AS-DCP
+    applications will have to decide whether to abandon the partial last frame
+    (usually detected by testing frame_buffer.Size() != frame_buffer.Capacity())
+    or write it to the MXF file.  Programs written to the old API will write the
+    partial frame (i.e., new behavior.)  This should not be harmful since the
+    remainder of the buffer is zeroed and the output file will contain one
+    additional edit unit compared to the previous version.
+  o asdcp-wrap has been modified to test for the partial buffer and by default
+    will complain and abandon the buffer (i.e., same behavior but with a warning
+    message.)  A new command line switch (-g) alters this behavior and writes
+    the buffer to the MXF file (it still warns the user that this condition is
+    present.)
+  o as-02-wrap now wraps all samples from the input file to the MXF file. There
+    is no padding, the clip is exactly the set of samples from the input.
+  o as-02 unwrap is temporarily restricted to creating wav files that are
+    aligned with the frame buffer size.  This means that the output file will
+    be longer than the original WAV input in the case where the input file has
+    an odd number of samples with respect to the frame buffer size being used.
+    The pad samples are zero (silence).
+  o Modified CalcFramesFromDurationInSamples() to increment the count by one for
+    the case where the input file has an odd number of samples with respect to
+    the frame buffer size being used (previously it truncated the odd samples.)
+  o Fixed ST 429-5 / ST 2067-5 wrapping to increase header space when ancillary
+    resources are present (fixes a bug that cause the header to overflow the
+    allotted space when large numbers of PNG files were present.)
+  o Refactored GetXMLDocType() to use the XML parser.
+  o Added ParseFirstFromString() method to Kumu::XMLElement
+  o Removed Kumu::StringIsXML from the API.
+  o Added ASDCP::MXF::RGBALayout type
+  o Added J2CLayout property to JPEG2000PictureSubDescriptor
+  o Changed km_token_split() to retain empty elements in the output list
+  o Added PHDR wrapping for AS-02.
+  o Added J2CLayout property to the JPEG2000PictureSubDescriptor.  This
+    support is preliminary: the Raw data type is being used instead of
+    RGBALayout type, which will be in the next release.
+
+
+2014-10-2 - Bug fixes and enhancements, 2.2.6
+  o Fixed erroneous 377-4 MCA identifier in AS_DCP_PCM dump routine
+  o Fixed erroneous byte 13 in
+    WaveAudioDescriptor_ReferenceAudioAlignmentLevel label
+  o Added missing implementation of -W option to as-02.unwrap
+  o Fixed erroneous use of d-cinema ChannelAssignment label in as-02-wrap
+
+
 2014-10-01 - Bug fixes and enhancements, 2.2.5
   o Finished AS-02 text wrap/unwrap
   o Fixed fractional seconds parsing for Timestamp objects
-  o Updated KLVPacket to use 64-bit length; allows huge packets in AS-02 PCM files
+  o Updated KLVPacket to use 64-bit length; allows huge packets
+    in AS-02 PCM files
   o cleaned up use of atoi() in the library
 
+
 2014-07-09 - Additional IMF/AS-02 support, bug fixes and enhancements, 2.1.4
   o Added IMF App 2 edit rates in AS_02 namespace: EditRate_29_97, 
     EditRate_59_94. 
@@ -169,6 +358,7 @@ Change History
     metadata (Thanks to Mike Radford).
   o Added new options to as-02-wrap.
 
+
 2014-01-06 – Additional IMF/AS-02 support, bug fixes 2.1.1
   o Fixed missing-index-partion bugs for AS-02 files.
   o Moved LocalFilenameResolver into the AS_DCP public API so that it