Copyright (c) 2011-2015 Digital Entertainment Content Ecosystem (DECE) LLC

=============================================================================
CFF Verifier Release 2.0
2015-06-19

-Additions and Updates:
    - Support streaming (MPD) files
    - Update copyright notices to reflect date range (2011-2015)
    - Parse HEVC and perform HRD validation on HEVC tracks
    - Update to version 2.1 of DECE specifications, including support for
      coin box and delivery targets

-Bug Fixes:
    - Addressed various issues involving false errors


=============================================================================
CFF Verifier Release 1.2
2014-05-08

-Additions and Updates:
    - Support 32-bit build on 64-bit Linux machine
    - Update copyright notices to reflect date range (2011-2014)

-Bug Fixes:
    - Fixed subtitle font size calculation
    - Fixed meta-data size limitation; now allows 10Mb meta-data images
    - Generate warning for incorrect CFF metadata URI

=============================================================================
CFF Verifier Release 1.1
2014-03-18

-Additions and Updates:
	- Support for single track files (.UVV, .UVA, .UVT)

-Bug Fixes:
	- Fixed check for full purchase location

=============================================================================
CFF Verifier Release 1.00
2014-01-21

-Additions and Updates:
    - If font files are not found, the Verifier will now generate on-screen warnings if 
	the font file configs are missing, and write warnings to the report if there was 
	a failed attempt to use fonts, rather than halting analysis of the file.
    - Added error and abort if fail to open file for writing.
    - Added original values found in subtitle frame rate mismatch errors to assist with 
	debugging.
    - Added support for German and French Ratings.
    - Demoted hdlr.7 error, which occurs when the subtitle type in metadata does not match the 
	name field in the hdlr box, to a warning. 

-Bug Fixes:
    - Fixed error that was generated when using URLs to reference external images in metadata. 
	The FILE.47 error message, which refers to "required" metadata, was being generated 
	even if the error was found in optional metadata. The correct error type (FILE.54) 
	and location is now given.
    - Fixed misleading text in command description that referred to "stream" instead of "file".
    - Fixed spurious error when subtitle track metadata type includes "forced" but -u (analyze
	subtitles) is not used.
    - Fixed auto-wrap on subtitles when measuring rendering size; will now report more accurate
	error (region too narrow instead of too short).
    - Added verification of iloc version (must use version 1 in order to be able to set 
	required construction_method field).
    - Fixed write error messages (was giving an error about not having errors to write).
    - Fixed seek problem on Windows files for files > 4 GB.
    - Fixed crash when div tag not associated with a region. Verifier now gives warnings if 
	any content does not have an associated region.

-Known Issues:
    - DMedia does not define what the value of "name" in the hdlr box must be if there are 
	multiple Types defined for a subtitle track (e.g., forced and SDH). Pending the 
	resolution of TWGISSUE-1472, the Verifier behavior is as follows:
	- If there is a single Type in the required metadata, the name can be an empty string 
	  or the Type.
	- If there are multiple Types in the required metadata, the name must be an empty 
	  string.


=============================================================================
CFF Verifier Release 0.31
2013-10-31

-Additions and Updates:
    - Added support for validation of subtitle element timing when cff:progressivelyDecodable 
	flag is set (TWGISSUE-1424).
    - Added warning if text subtitle might not fit within its intended region (TWGISSUE-1400).
	***IMPORTANT NOTE*** This change means that it is now required to include the font
	files provided in a location accesssible to the Verifier at run time, and to have the
	decemate.config file point to these font files.
    - Updated sample decemate.config file to add font files and locations.
    - Added support for use of full paths when performing pre-mux subtitle validation.

-Bug Fixes:
    - Fixed error that was considering regions with tts:display="none" when determining 
	whether regions overlap.
    - Fixed spurious FILE.52 error When using URLs to reference external images.
    - Fixed check for "forced" display mode to span all fragments in a track.

-Known Issues:
    - DMedia does not define what the value of "name" in the hdlr box must be if there are 
	multiple Types defined for a subtitle track (e.g., forced and SDH). Pending the 
	resolution of TWGISSUE-1472, the Verifier behavior is as follows:
	- If there is a single Type in the required metadata, the name can be an empty string 
	  or the Type.
	- If there are multiple Types in the required metadata, the name must be an empty 
	  string.
    - When using URLs to reference external images in metadata, the FILE.47 error message 
	refers to "required" metadata, even if the error is found in optional metadata. 
	Please refer to the optional metadata as well as the required metadata to find the 
	source of this error.

=============================================================================
CFF Verifier Release 0.30
2013-09-30

-Additions and Updates:
    - Updates to support version 1.0.7 of specifications and schemas: 
	TWGISSUE-1408, DMedia 2.2.4: Verifier checks values for new "hidden" flag in ainf box.
	TWGISSUE-1399, DMedia Annex E: Updated DMEDIA_VERSION_NOPOINTS and 
	  DMEDIA_VERSION_POINTS. Incremented version in ainf. Incremented version in 	
	  subtitle cff-tt schemas, subtitle #profile.
	TWGISSUE-955, DMedia 2.1.2.1: Added warning if meta box in a moov doesn't immediately 
	  precede trak boxes.
	TWGISSUE-1398, DMedia 2.1.3: Require use of trun version 1 - added error if version 
	  found that is not 1.
	TWGISSUE-1430, DMedia 5.2.1.2: Prohibit use of stss box.
	TWGISSUE-656, DMedia 6.2.2.3.2: Add tts:display="none" to reasons a region doesn't 
	  count.
	TWGISSUE-1335, DMedia 6.2.2.4.2: Refined definition of "built-in namespace". Modified 
	  which built-in namespaces are not required in namespace and schemaLocation listings 
	  (add any namespace declaration which has a prefix beginning with the three-letter 
	  sequence "xml").
	TWGISSUE-1369, DMedia 6.2.2.5.4: Added limits on div size for image subtitles (instead 
	  of limits on region size). Also added limit to number of divs per region.
	TWGISSUE-1363, DMedia 6.6.5: Increased maximum size of subtitle document from 200 * 
	  2^10 to 500 * 2^10 bytes.
	TWGISSUE-1439, DMedia 6.2.2.4.2, 6.2.2.5.2: if a schema defines multiple namespaces, it
 	  SHOULD only be listed once (for example, only ...ns/ttml is recommended to be 
	  included, not both ...ns/ttml and ...ns/ttml#style). Verifier will only throw a 
	  warning if stpp box does not contain at least the ..ns/ttml. Will give a warning if 
	  postfix namespaces ARE listed.
	TWGISSUE-1400, DMedia Appendix B and C: Added warning if subtitles do not use default, 
	  “monospaceSerif” or “proportionalSansSerif” fontFamily.

    - Added warning if forced elements are used but subtitle type does not include forced.


-Bug Fixes:
    - fix erroneous SUBT.21 warning (element duration=0) when begin or end time of a
      timed element is explicitly stated and begin/end time and its ancestor begin/end
      time are also explicity stated and nonzero.

-Known Issues:
    - DMedia does not define what the value of "name" in the hdlr box must be if there are 
	multiple Types defined for a subtitle track (e.g., forced and SDH). Pending the 
	resolution of TWGISSUE-1472, the Verifier behavior is as follows:
	- If there is a single Type in the required metadata, the name can be an empty string 
	  or the Type.
	- If there are multiple Types in the required metadata, the name must be an empty 
	  string.
    - When using URLs to reference external images, a spurious FILE.52 error will be thrown.
	Please ignore this error when using URL image references.


=============================================================================
CFF Verifier Release 0.20
2013-08-01

-Additions and Updates:
    - Added check to ensure that values that are likely negative (MSB set, value > 0x7fff ffff)       for sample_composition_time_offset values are not used when using version 0 of the trun.
      This will only generate one error rather than generating an error for each instance.
    - Modified checks for namepaces and schemaLocations in stpp boxes. Now no longer expects
      one-to-one correspondence between namepaces and schemaLocations; also does not check for
      built-in namespaces such as http://www.w3.org/2001/XMLSchema-instance, or for a schema
      defining those namespaces.

-Bug Fixes:
    - JIRA 1378: use trex.DefaultSampleSize when tfhd box default sample size is zero when 
      extracting streams for analysis (was truncating frames).
    - Always use calculated cpb_removal_delay to avoid problems in when some video segments are       encoded independently (was causing spurious AVCE.33 and AVCE.34 errors). 
    - Eliminate spurious errors indicating invalid png and jpeg signatures (SUBT.94, SUBT.30, 
      XML .27).
    - Fixed parsing of RBSP byte sequence 0x00 0x00 0x03 0x03 0x03 (AVCE.32).
    - Change to only allow <encoding> string MIME types of image/png and image/jpeg for               RequiredImages and OptionalImages, including chapter images (XML .34).
    - Fixed to check for regions that are not marked showBackground="whenActive". If two              regions that are both not whenActive overlap, or if a timed event overlaps with such a          region, now result in a [SUBT].28 error.

-Known Issues:
    - If the RequiredMetadata in a file contains invalid characters, the Verifier may crash           while writing the Verifier report.
   
   
=============================================================================
CFF Verifier Release 0.19
2013-06-10

-Additions and Updates:
    - Enforce new tickRate checks per JIRA 1313: 
	- if specified, ttp:tickRate SHALL be set to the same value as that of the 	  	  	  timescale parameter in the subtitle track's Media Header Box ('mdhd').
	- if "ticks" offset-time timeExpression values are used in the CFF-TT document, 
	  ttp:tickRate SHALL be present on the <tt> element and comply with the constraint
	  defined above. 
    - Added verification of chapter metadata and chapter images (refer to Verifier 
      Verification matrix for details).
    - Added verification of optional metadata and images (refer to Verifier Verification 
      matrix for details).
    - Added verification of recommended metadata items (see verifier verification matrix for            details). 
    - SubtitleAnalyzer updates: 
	1) add duration to input
	2) add validation of image files when media profile set to "any" 
	3) add <StartIndex> to subtitle-analyzer-schema.xsd, which indicates beginning value
	   of image indices for SubtitleAnalyzer.
    - Implemented HRD parameters on the command line and in the config file.
	Changed descriptions of -t options to only reference DTS audio.
	HRD validation uses max CPB size and Bitrate when HRD parameters are not in stream.
    - Added extraction of images from metadata.
    - Added enforcement of field lengths for TitleDisplay19, TitleDisplay60,
      Summary190, Summary400, Summary4000.
    - Box map files now generated prior to parsing to allow debugging of files that 
      cause the Verifier to stop working.


-Bug Fixes:
    - JIRA 1344: Style not applied correctly to regions
    - Some Verifier errors listed the version of CFF Content Publishing spec as v1.06,                  fixed to be v1.0.6.

=============================================================================
CFF Verifier Release 0.18
2013-05-08

-Additions and Updates:
    - Added support for encrypted files with reverse box order.
    - Added baseLocation to Verifier report.
    - Added standalone subtitle document checker, invoked through new -w 
      command-line option.
    - Updated subtitle analyzer to support mediaProfile=ANY, with no 
      width/height specified in input .xml file.

-Bug Fixes:
    - JIRA 1311: Converted end time of last subtitle directly to ticks for 
      fragment duration check.
    - Fixed rounding up for floating-point frames values by truncating
      decimal places more than 5 places to the right of the decimal point 
      before rounding up.

-Known Issues:
    - Video bitrate checks (previously invoked through -t command-line option)
      have been disabled in preparation for implementation of a buffer model
      conformant to the HRD (Hypothetical Rendering Model). Use previous 
      (v0.17) release if you wish to check video bitrates without the buffer 
      model implementation (slated for v0.19).


=============================================================================
CFF Verifier Release 0.17
2013-03-15

-Additions and updates:
    - Modifications were made to support [DMedia], version 1.06: 
        - Removed check for [ftyp].brand='iso6'.
        - Added validation of new requirements for SubtitleSampleEntry.namespace. 
        - Added validation of new requirements for SubtitleSampleEntry.schema_location.
        - Added validation of new requirements for xsi:schemlocation and xmlns attributes 
          in tt: element of subtitle documents.
        - Implemented computed style set resolution and new glyph buffer based render
          model for text subtitles.
        - Added check for new Text Rendering Performance Factors (tables B-4, C-4) and 
          other new constraints in Annexes B.6 (SD) and C.6 (HD)
	- Added check for ttp:profile attribute in subtitle documents.
        - Offset for images in 'idat' box now determined by [iloc].extent_offset rather
          than [iloc].base_offset.
        - Expected values for [ainf].media_profile updated to 's007', 'h007', and 'p007'.
        - Added check for "xmlns=http://www.w3.org/ns/ttml" attribute on <tt> element in
          subtitle documents.
        - For encrypted .uvu files, information in the 'saio' or 'saiz' box is used 
          instead of that found in the 'senc' box. (JIRA 1253) 
        - [DMedia] specification section numbers in error messages updated to reflect
          newest specification.  Error messages also reference version 1.0.6 rather than
          1.0.5.
        - Text of error message [bloc].2 changed to read "base purl location".

    - Bitrate checks for audio elementary streams with codec type aac, ac-3, eac-3, or
      mlp were changed to errors rather than warnings.  In addition, the checks are
      always performed, not just when the '-t' command line option is used.  AVC video
      and DTS audio bitrate checks continue to be warnings, generated only when '-t'
      command line option is used. (JIRA 563)
    - 'Ratings' checks in required metadata updated to use values in "TR-META-CR, v1.1a 
      February 6, 2013".  Exception is the Canadian rating system 'CHVRS' instead of the
      referenced 'CVHRS' in specification (typographical error in spec). 
    - Changed output filename from VerifierReport.xml to VerifierReport_inputFilename.xml.
      If the input filename is very long, the output filename is truncated to 255 characters,
      including entire path name.
    - Some AVC video parsing warnings that were previously printed only to output console
      are now included as warnings in VerifierReport.xml output.
    - Added additional information to VerifierReport output, including:
          - APID
          - Profile
          - ContentID (extracted from Required Metadata)
          - Miscellaneous track-specific information such as type of track (vide/soun/subt),
            width and height (for video), number of channels (for audio), and format (for
            subtitle) 
    - Newest schemas are now used.

-Bug Fixes:
    - JIRA 1207: Normalization of all whitespace in metadata is performed before checking
      for valid attribute values.  Previously, additional linefeeds, extra spaces, etc.
      would erronously generate an error of type [XML ].6. 
    - JIRA 1207: Corrected text in error message [XML ].6 when Video.Encoding.Codec is 
      not correct value.
    - JIRA 1277: Corrected parsing of EAC-3 audio elementary streams.  The wrong number of
      bits were being read for the mixdata field, sometimes causing EC3E errors regarding 
      inconsistent bsmod field values.
    - Added support for 'f' (frames) as unit of measure for time expression in subtitle
      documents and corrected text on error message SUBT.14.


=============================================================================
CFF Verifier Release 0.16
2013-01-18

-Additions and updates
    - JIRA 1076: Restricted IV size to 0 (unencrypted) or 8.  IV size of 16 no longer supported.
    - JIRA 972: Prohibited smpte:backgroundImageHorizontal and smpte:backgroundImageVertical in
          subtitles.  Prohibited smpte:backgroundImage and smpte:image in text subtitles. 
    - JIRA 898: New schemas for image and text subtitles are included and subtitle tracks are
          automatically validated against the appropriate set depending on the format 
          specified in the required metadata.
    - JIRA 898: Added to VerifierReport.xml the list of schemas used for validation along
      with their SHA1 sums.
    - JIRA 833: Validated frame rates precisely by comparing numerator and denominator.
    - Added information to VerifierReport.xml:
        - Added APID, profile and track information
        - Added digest that can be verified to ensure the file has not changed.
        - Added error and warning summary.
    - Implemented AAC buffer model for bitrate checks.
    - Checked that constraint_set1_flag is not set in High profile H.264 streams.
    - Added SHA1 digest of source uvu file to report.
    - Set default mddece schema to mddece-1.0.5.xsd. Removed mddece.xsd from schema directory.
    - Added additional Required Metadata validation:
        - Media profile must match profile of container.
        - Check for correct chapter indices (must start with 0 and increase by 1 in each
          subsequent chapter). 
        - Validate DigitalAssetMetadata-type fields:
            - Audio.Encoding.CodecType: use the IANA namespace
            - Video.Encoding.Codec: "H.264, MPEG-4 Part 10"
            - Video.Encoding.CodecType: "IANA:h264"
            - Subtitle.FormatType: "SMPTE 2052-1 Timed Text"
        - Validate TrackGroup element: many checks added per the requirements listed in [DMeta],
          sections 4.1.5.2, 4.1.5.3 and 4.1.5.4.
        - Validate rating system values for country codes US, CA, GB, AU, NZ, and IE.
    - Added parsing of Optional Metadata.  New file, OptionalMetadata.xml, is created as a
      result.  Validation on the WorkType element was also added.
    - Added additional validation to APID in 'ainf' box:
        - Check that Organization ID is alphanumeric when scheme is org.
        - Ensure that URI character escape sequences are well formed.
        - Check that Organization ID is 2-63 characters long.
    - Updated subtitle schemas to [DMeta] version 1.0.6.
    - Added a new command line option, -a <report file>.  When used, it reads the
      Verifier report file specified by <report file> and checks its signature to ensure
      the file was not modified since it was created.
    - Uses updated subtitle schemas and removes cff-tt-text-smpt-tt-1.0.6.xsd from list of
      loaded schemas for text subtitles.

    
-Bug Fixes:
    - JIRA 1139: Subtitle document event timestamps are now calculated using the fractional
      part, then converting to frames rather than doing calculation of frames using the whole
      seconds value.
    - JIRA 1115: No longer attempts to load schema referenced by schemaLocation attribute for 
          required metadata or subtitle xml.
    - JIRA 1086: Fixed crash in AAC parser when given wrong key value.  In general abort 
         all elementary stream parsing on a given audio track immediately when a significant
         field is wrong (e.g., length or syncword)
    - Fixed crash in AVC parser when trik box has no entries.
    - Fixed collapse of subtitle timing model if an unknown element with timing attributes
          is encountered.
    - Removed [trun].3 warning which occurred when sample_count != 0 and no flags were set.
    - Made config file options case insensitive.
    - Corrected file offsets in AVCParser ('AVCE') errors
    - Added missing file name in error SUBT.28.
    - Does not attempt to decrypt a track in the following cases:
         - if more than one decryption key is present.  As before, [sgpd].12 error is
           generated indicating that multiple keys were found.
         - if a fragment has a mix of encrypted and non-encrypted.  As before, [sbgp].4
           error is generated indicating that the fragment has both encrypted and unencrypted
           samples.
         - if the track is considered an encrypted track and clear samples exist.  The erroneous
           [CRYP].4 error is no longer generated.
    - Corrected error message [sgpd].12 to refer to KID instead of IV.
    - For subtitle handling, converted SubTime to use frame number as internal representation.
      It compares document start/end to events in units of ticks.
    

Known issues:
    - Subtitle files using #time-offset timeExpression values for begin and/or end times (e.g.,
	begin="1.3s" or begin="2.37m") will return an XML validation error. It is believed 
	that this is an issue with the schema (JIRA 1194).

=============================================================================
CFF Verifier Release 0.15
2012-12-02

-Additions and updates:
        - JIRA 1035: Removed key values from all output.  Instead, the text "**redacted**
          appears.  This may be overridden by a new configuration option.  The commmand
          line option is -y or "output_keys=yes" in decemate.config.
	- JIRA 920, 653: Prohibit #fontSize-anamorphic in subtitle tracks.
	- JIRA 919: The use of #length-em feature for #origin is prohibited.
	- JIRA 881 and 1045: Correctly determine decode order of boxes - removed check
          from [tfra] box (which is presentation, not decode, time) and instead calculate
          decode time based on total sample durations of previous fragments in same track.
	- JIRA 861: Prohibit #displayAlign in image subtitles.
	- JIRA 858: Prohibit #length-em feature in image subtitles.
	- JIRA 816: Changed handling of tts:extent:
		- require tts:extent if px measurements are used.
		- if present, tts:extent must be in "px" units and match valud in tkhd box.
		- In gerenal, use rounding algorithm.
		- For image subtitles, use rounding algorithm if percentage is used on
                  #extent-region for comparision to image width and height (in px).
        - JIRA 656: support new definition of a region being present, per section 6.5 of
          [CFF], version 1.05.
	- JIRA 650: Prohibit pixelAspectRation in subtitle feature list.
	- JIRA 563: Remove maximum bitrate check in mp4a and similar boxes. 
	- Correct miscellenous message text/section numbers in error messages.

-Bug fixes:
	- Corrected enforcement of size limits on images.  Previously the Verifier was skipping
          the test on the first fragment of a track.
        - JIRA 1050: Fixed the -m (specify schema directory) command line option.  Previously, 
	  adding this to the command line had no effect.
	- Corrected the handling of animated subtitles.  Previously the Verifier incorrectly
          determined that the set elements had zero duration.
	- JIRA 1073: Changed file offsets in AVCE error messages so that they accurately reflect 
	  offsets in the demuxed file rather than the .uvu file (to be consistent with audio).
	- Limit check for a non-zero origin "tt" elements.
	- JIRA 1074: Fixed incorrect "tfra" error message when the .uvu file has video fragments 
	  that do not start with IDR frames.
	- Added support for "em" and "%" length units for subtitles. When no units defined in
          entire subtitle track, use [tkhd].width and [tkhd].height plus TTML default cell
          resolution to convert to pixels.
	- Update Verifier to accept any combination of upper and lower case letters for file
          extension, e.g. ".uvu", ".UVU", and ".uVU" are all acceptable.
	- JIRA 1078: extend support for forced subtitles by loading cff-tt-meta.xsd.

Known issues:
	- JIRA issues that have not yet been addressed: 898, 972 

=============================================================================
CFF Verifier Release 0.14
2012-10-26

-Additions and updates:
        - JIRA 482: Required images are restricted to either jpeg or png format.
          The <TrackReference> within <RequiredImages> in the Required Metadata
          is checked, as well as the actual encoding of the image contained within
          the [idat] box.
        - JIRA 428: The check for a valid APID in the ainf box was updated to new
          syntax per section 5.5.1.2 of the system spec (<ALID SSID> portion removed),
          The test for valid APID was also enhanced to ensure that it has the correct
          number of colons if "org" is part of the ALID scheme name.
        - JIRA 544: DRM-specific boxes are restricted to pssh Verifier no longer
          consider imif or iods+mdat to be DRM-specific info.
        - JIRA 614: The mehd in mvex box has been changed to required instead of
          optional.
	- JIRA 921 and 947: Allow a number of style formats such as #backgroundColor
          and #styling-inline.
	- JIRA 991: Disallow #writingMode-vertical on image subtitles.
        - JIRA 995: forcedDisplayMode is not allowed on 'set' elements.
        - Added support for fractional clock times (HH:MM:SS.sss) in subtitle events.
	- Specification references (and section numbers, where necessary) have been
          updated to refer to version 1.0.5 instead of 1.0.3.

-Bug fixes:
	- JIRA 619: Fixed erroneous subtitle rendering errors when gap exists between
          subtitle events.
        - JIRA 892: Subtitle fragment timing comparisons were changed from seconds
          to frames/seconds.
        - Added proper parsing of font point sizes. Previously the Verifier used the
          region's font size in all cases.
        - JIRA issue 896: Remove erroneous error when Movie/TrackMetadata/Track/Subtitle
          /Format="image" and no images found in a fragment.
	- In subtitles, control codes (e.g., tab) inside <p> tags are now ignored, as
          required, instead of counting toward the subtitle rendering time.
        - DMedia references were corrected in "duration field SHALL be 0" errors messages
          for mdhd, mvhd, and tkhd boxeserror messages.  Previously these error messages
          erroneously referenced v1.0.3 instead of v1.0.5 draft.
        - Erroneous [SUBT].49 and [SUBT].79 errors removed.  These occurred when a subtitle
          fragment had no renderable events.
        - Line numbers (file offsets) were added for some [SUBT] errors.
        - Fixed processing of the first subtitle event in a track. The Verifier is now
          skipping the whole screen erase in that instance, even if there is a gap to
          start the track.
        - Fixed processing of background drawing time. Now properly accounts for the
          number of tts:backgroundColor directives (including <br> and <set> per JIRA
          935) in the interval. Also fixes accounting for the region's background and
          correctly handles multiple regions in the interval.
        - Corrected the HD subtitle "big font" cutoff. It was 72 when it should have
          been 73.
        - Error [SUBT].21 ("element has 0 duration") was changed to warning.

Known issues:
	- Set elements that begin immediately following the display of a parent content
          element are incorrectly.  Considered to have zero duration.
	- JIRA issues that have not yet been addressed (mainly changes to bring the Verifier
          in line with v1.0.5 specs): 650, 816, 833, 858, 861, 881, 898, 919, 920, 653, 972,
          1035.
	- Some error messages are out-of-date, e.g., SUBT.73 still states that both fontSize 
	  lengths shall be equal instead of stating that fontSize-anamorphic is prohibited.

=============================================================================
CFF Verifier Release 0.13
2012-08-07

-Additions and updates:
        - JIRA-607: durations in mvhd, tkhd, and mdhd SHALL be zero when stts/stco
          tables are empty.
        - JIRA-608: Subtitle testing now gets frame rate info from AVC data.
	- JIRA-617: Stop using dropframe timecode for 24p HD and SD video.  Internal
          representation of SubTime now seconds and frames.
        - JIRA-780.  An error is generated for required image resolutions only when
          there are zero images with the "Recommended" resolutions listed in Amendment
          #2 of metadata specification.
	- JIRA-787: Consider StreamConstruction when validating evaluating DTS
          StreamConstruction values 14-17 indicate DTS HD Master Audio.
	- Inline attributes now accepted when images are present.

-Bug fixes:
	- JIRA-623: Allow for either endianness in AC-3 / E-AC-3
	- JIRA-636: validation of subtitle image references corrected
	- JIRA-647: Removed erroneous "SampleCompositionTimeOffsets is missing, unable
	  to check AVC timing" messages that occur in some instances.
        - JIRA-667: Corrected incorrect parsing of lfeon field in ac-3 elementary stream
          in some cases.
	- Allow timeExpression to be any one of allowed representations.
	- Add graceful exit when full disk encountered and unable to generate output
          files.

Known issues:
	- Verifier subtitle timing: the Verifier currently considers gaps between subtitles
          to be events, so if a subtitle file has short (1-3 frame) gaps between events,
          timing errors may be generated. This will be addressed in the next release
	- Error messages regarding three new requirements introduced in the v1.0.5 draft of
          DMedia reference a section in the v1.0.3 specification instead. These are the
          "duration field SHALL be 0" errors for mdhd, mvhd, and tkhd boxes. These references
          will be corrected in the next release.
	- Control codes (e.g., tab) inside <p> tags are counted toward the subtitle rendering
          time, but should not be since Devices are required to ignore those when rendering 
          subtitles. This will be corrected in the next release.



=============================================================================
CFF Verifier Release 0.12
2012-06-08

Note: Some schemas need to be obtained from other sources.  See README for details.

- Additions and updates:
    - Required Metadata images: cardinality of required and optional image references
      is updated per [DMeta] Amendment #1. Specifically, the number of required image
      references is 1...n and the number of optional image references is 0...n.
      Resolution of metadata images is also validated per [DMeta], sections 3.2.1 and
      3.2.2.
    - Required metadata: adds check for a DigitalAssetMetadata-type for each track
      that exists in container.
    - Adds check for English text subtitle if other English subtitle tracks exist
      (per [DPub], section 5.2.4).
    - Verifier Matrix item 1105 tests removed pending clarification.
    - Fix to allow one of AVC track width or height to be less than the profile 
      specifies.

- Bug fixes:
    - Fixes eac-3 parser chan_loc validation based on JIRA#551.   When comparing the
      eac-3 elementary stream chanmap field with 'ec-3' box chan_loc, only the bits 
      beyond those identified using the acmod field are compared.  In addition, the
      bit order of chan_map changed to left-bit-first per the ec-3 specification.
    - Fixes truncated demux track files (.dat output files) in Windows environment
      when output directory is a shared network drive. 
    - Fixes erroneous 'frma' and 'stss' box errors on encrypted mlpa audio track.
    - Fixes incorrect error count to console.

=============================================================================
CFF Verifier Release 0.11
2012-05-15

Note: Some schemas need to be obtained from other sources.  See README for details.

- Major additions and changes:
    - Verifier expects .uvu files to conform to changes in CFF specification
      Amendments #1 and #2.
    - Adds new -d command line option to indicate DCC state.  See README for details.
    - Validates 'bloc' box baseLocation and purchaseLocation, amount of free space,
      and presence of DRM-specific boxes based on DCC state.
	- Added verification of subtitle rendering rates for textual subtitles. Still need
	  to apply a different rate to larger font sizes.
	- Checks for allowed SD and HD video profiles
    - Includes Version 1.0.3, Amendment 1 of mddece.xsd. 

- Minor additions and updates:
    - Adds validation of image references in Required Metadata.
    - Adds checks for potential divide-by-zeroes to prevent possible crashes.
    - Adds "build" information to revision number.  It is used for internal
      purposes only.  It will appear when the -r command line option is used,
      in the Configuration Options output to the console and in the Verifier
      Report.

- Bug fixes:
    - Removes draft specification references in all error messages.
    - Fixes <span> issue logged in JIRA, #549.
    - Fixes AVC parser's reporting of file offsets.
    - Adds missing configuration options to VerifierReport.xml.

=============================================================================
CFF Verifier Release 0.10
2012-04-26

Note: The test numbers below refer to entries in the Verifier Verification matrix,
available to DECE members in the CIQ area of Kavi.

Note: Some schemas need to be obtained from other sources.  See README for details.

- Major additions:
    - Adds elementary stream parsing of encrypted video tracks.  The  track must be 
      demultiplexed (-x option) for the elementary streams to be parsed.

    - Adds -t to command line options.  Bitrates of elementary streams are no longer
      calculated unless the -t option is used.  Calculated bitrates which exceed 
      minimums/maximums generate warnings rather than errors.  This must be used
      with the -x option since elementary streams are parsed only when the tracks
      are demultiplexed.  Rational for this change is that, since the Verifier
      is not using a full buffer model for these checks, the bitrate calculations
      may not be completely accurate.

- Minor additions and updates:
    - Implements verification tests 2605, 1105, 1113, 1119.
    - Removes check for pcmSampleDepth.
    - DTS bitrate calculations are now rounded up to nearest integer.
    - Per errata #2: changes maximum video fragment legnth to 3.003 seconds.
    - Per errata #2: restricts number of [tfra] boxes per track to exactly one.
    - Remove -h command line option (not supported).

- Bug fixes:
    - Corrects AAC elementary stream parsing which sometimes caused the <TERM> 
      syntactical element to be missed.
    - Fixes 'senc' box to compute number of valid encrypted/unencrypted bytes per 
      NAL unit, not per subsample.
    - Aborts subtitle validation if video frame rate cannot be determined
      (fixes crash).
    - Fixes crash for very large files and out-of-memory for generating errors.
    - Fixes validation of audio tracks to not depend on box order of 'tkhd' and 
      sibling boxes.

=============================================================================
CFF Verifier Release 0.09
2012-03-30

Note: The test numbers below refer to entries in the Verifier Verification matrix,
available to DECE members in the CIQ area of Kavi.

Note: Some schemas need to be obtained from other sources.  See README for details.

- Major additions:
    - Adds parsing of Dolby MLP and DTS elementary streams.  All required validation
      of the streams is performed with the exception of tests 6305, 6307, 6310, and 
      6311.  Audio elementary streams are parsed only when the tracks are demultiplexed
      (-x option).

    - Adds parsing of encrypted audio tracks.  Audio elementary streams are parsed
      only when the tracks are demultiplexed (-x option).

    - Removed "skip" box level option.  This was useful during development of the Verifier
      but is not an advisable option. 

    - Subtitles: adds check for incomplete PNG file. Implemented verification of tests 
      1364, 1382, 1385, 1389, 1390, 1391, and 1394.

- Miscellaneous corrections:
    - correctly handle invalid box type of more than four characters in box level
      verbosity options 
    - avoid crash when invalid AAC audio elementary stream.
    - remove duplicate error message regarding 'free' box space
    - correct missing end tag for CData section in warnings
    - Fixed Global error and warning counts for AVC tests.

- Miscellaneous additions:
    - Add new error checks in AAC audio elementary stream parsing.  This covers
      tests 6627, 6648. 
    - Add new error checks in EAC-3 audio elementary stream parsing. This covers
      tests 3820, 3821, 3822.
    - Add handling of DynamicRangeInfo in AAC elementary stream audio parsing.
    - Add check for decode times in ascending order.  This covers test 6406.
    - Add validation of 'elst' box values.  This covers tests 4405 and 4406.
    - Add new error checks for 'tfra' box.  This covers tests 9604, 9605, 9606.
    - Add warning if profile 'pdv1' found.
    - Add AVC elementary stream tests 1104, 1107, 1110, 1111, 1112, 1115, 1116, 
      1117, 1118, 2403, 2406, 2407, 2408, 2404 

- Miscellaneious notes:
    - Validation of the pcmSampleDepth field of the DTSSpecificBox consists of
      checking that it is 24.  This does not match the CFFMediaFormat definition
      of the field.  See JIRA issue 516 for details.
    - The fields avgBitrate and maxBitrate of the DTSSpecificBox are not being
	  validated due to differences in how these values are generated.  
	  See JIRA issue 517 for details.

=============================================================================
CFF Verifier Release 0.08
2012-03-15

Additions, Changes and Fixes:
Note: the test numbers below refer to entries in the Verifier Verification matrix,
available to DECE members in the CIQ area of Kavi.

- Adds parsing of AVC elementary streams for unencrypted tracks. Checks for tests
  1101, 1102, 1103, 1114, 1115, 1116, and 1120. AVC elementary streams are parsed
  only when the tracks are demultiplexed (-x option)

- Adds parsing of AAC, AC3 and EC3 elementary streams for unencrypted tracks.  Checks
  for consistency with corresponding CFF boxes.  Elementary streams are parsed only
  when the tracks are demultiplexed (-x option)

- Adds CDATA section to VerifierReport.xml.  This new section includes the error message
  text so that the text is not interpreted as XML. 

- Changes command line argument to get release version to -r (-v was erroneously being
  used for both 'version' and 'verbose' options)

- Adds consistentency to check for proper set of child boxes.  Each box checks for the
  exact set of boxes listed in CFF spec and ignores any additional unexpected boxes
  unless CFF spec explicitly forbids specific boxes. 

- Updated Verifier Verification Matrix with information corresponding to this release,
  including additions, deletions, and changes. Matrix indicates all conformance
  issues addressed by the Verifier. VV Matrix will be uploaded to Kavi separately.

- Miscellaneous corrections:
    - Corrects validation of APID in 'ainf' box
    - Corrects output of [elst] field media_time when the value is a negative number
    - Allows multiple 'sinf' boxes when track is audio (previously incorrectly allowed
      only a single 'sinf' box for audio tracks)
    - removed duplicate error message for inadequate [free] box space

- Miscellaneous additions:
    - Adds TrackID to multiple error messages
    - Adds check for maximum and minumum duration of audio fragments
    - Additional error checks in 'subs' box
    - Adds check for 'tkhd' subtitle width and height fields
    - All "&" replaced with "and" in error messages to accommodate xml analyzers


=============================================================================
CFF Verifier Release 0.07
2012-02-06

Please note that this release includes the latest versions of the schema
documents. Make sure to copy the schemas directory to your local schemas
directory path (defaults to ./schemas, or can be specified in the config file)

As the schema location field has changed in the new schema files, references
to the old schemas within the CFF file will yield many XML errors.

Additions, changes and Fixes:

- An upcoming specification change will require the data_offset_present and
  sample_size_present flags to be set in the [trun] box. The Verifier reports an
  error if these flags are not set. See JIRA issue 451 for details.

- Demultiplexing / decrypting now checks the [trex] box for sample sizes

- Checks added for audio minumum bitrates, ec3 substream field values

- Warnings / errors now consolidated in the screen output (still fully present
  in VerifierReport.xml). Use the -v command-line option to enable output of
  each individual error. (note that -v as the sole argument on the command line
  still reports the Verfier version).

- Using the -b option, or specifying box_message_level in the config file will
  force verbose output

- Checks for IDR frames as the first frames in an AVC video fragment

- data_offset_present allowed in subtitles

- Fixes for 'bad IV' errors when sample_size==0 and IV_size==16

- Subtitle schema updated to allow extent attribute on root element

- Removed assumption that the presence of an [iods] box implies DRM presence

- Many new audio checks

- mddece schema updated to latest version

- Fixes to schema validation error reporting

- Fixes for 64-bit box size fields

- Many other bugfixes and minor error reporting

=============================================================================
CFF Verifier Release 0.06
2012-01-10

0.06 changes: 

- Image subtitle timing is being analyzed
- Additional subtitle validation
- Fixes in AES-CTR counter initialization for 8-byte IVs
- Many additional CFF constraints now checked

Subtitles:

Note that the full subtitle analysis relies on schema files that are not yet
available. For the time being, please ignore any errors related to missing
schema files when validating subtitles.

Subtitle validation is not enabled by default. Use the -u switch, or add this
line to your configuration file:

subtitle_validation = yes

=============================================================================
CFF Verifier Release 0.04
2011-12-07

0.04 changes:

- Subtitles are now extracted into a subdirectory, 'subtitles', in the output
  directory. This includes the XML documents and any .png images found in the
  subtitle tracks. Extracted files are named:

  track<track ID>-frag<fragment #>-sample<sample #>-subs<subsample #>.<ext>

  where .<ext> is either .xml (for the first subsample) or .png (for
  subsequent subsamples).

  Note that the sample numbers start at 1, while fragment / subsample numbers
  start at 0.

  Subtitles will always be extracted, but will only be analyzed under the
  conditions listed below:

- Subtitle schema validation performed on XML documents in subtitle tracks if
  specified with -u command line argument, or 'subtitle_validation = yes' in
  the config file. Note that the SMTPE schemas are not processed yet, as they
  are still undergoing development. You may find errors are generated that
  will not be considered errors once the SMTPE schemas are part of the
  validation process. Errors you may see that should be resolved once the
  SMTPE schemas are finalized might include:

  unable to open primary document entity ... smpte-tt.xsd

  ... is not declared for element 'smpte:tt'


- Output to stderr has been replaced with output to stdout. This eliminates
  some display issues / overwriting of text in the output.

- Audio formats: support for ac-3, ec-3, dts, and mlpa audio formats has
  been added.  Box types [dac3], [dec3], [ddts], and [dmpl] are parsed. 

Schema notes:
In order to perform schema validation on subtitle XML documents, make sure the
schemas directory is present and set in your configuration file. The default
schemas directory is ./schemas, and can be overridden in the config file
using:

schemas_directory = <path to schemas directory>

or 

-m <path to schemas directory> 

on the command line.

---------------------------------------------------------------------------

CFF Verifier Release 0.03

0.03 changes:

- Additional box structure analysis (DCC header / footer, others)
- Parsing of [edst] and [elst] boxes
- Hexidecimal output for offsets in error messages
- Fixes for 'lost errors' (count indicates more errors than were printed)
- Improved error reporting for descriptors
- Fixes for 32/64 bit print errors
- General bugfixes

---------------------------------------------------------------------------


CFF Verifier Release 0.02

0.02 changes:

- Renamed results.xml to VerifierReport.xml
- Changed format of VerifierReport.xml to more closely match DECE member
  wishes
- Fixed XML output for errors / warnings
- Fixed XML output for many items in box_map.xml
- Added 2-pass analysis to handle unusual box ordering
- Updated screen output formatting during processing
- Updated Win32 version to statically link with CRT libraries
- Fixes to free box size calculations


---------------------------------------------------------------------------

CFF Verifier Release 0.01

This is a pre-alpha release. It may crash, it may burn, it may cause your
printer to catch fire. Solekai is not responsible for the chaos that may be
caused by running this application!

OK, so it probably won't do any of those things. Just keep in mind that we
have not yet tested a large portion of the functionality of the Verifier, so
you may see some odd behavior, marking errors that aren't really errors, or
missing errors that should have been caught. We're looking for as much
feedback as possible, so please don't hesitate to send your comments or
suggestions to me:

Brian King <bking@solekai.com>



