openpreserve / jhove

File validation and characterisation.
http://jhove.openpreservation.org
Other
168 stars 79 forks source link

AES output does not conform to the AES57-2011 spec #362

Closed pwinckles closed 4 weeks ago

pwinckles commented 5 years ago

JHOVE's AES output was written based on the beta spec, and does not conform to the final AES57-2011 spec. More details and a merge request to address the problem can be found here: https://github.com/openpreserve/jhove/pull/357.

Dev Effort

2D

Description

The AES output that JHOVE currently generates does not conform to the AES57-2011 spec. The schema can be found here.

This commit updates JHOVE to produce a valid AES57-2011 document. The bulk of the changes are related to how times and durations are reported. The original code generated a structure like this:

<tcf:duration tcf:frameCount="30" tcf:timeBase="1000" tcf:videoField="FIELD_1" tcf:countingMode="NTSC_NON_DROP_FRAME">
  <tcf:hours>0</tcf:hours>
  <tcf:minutes>0</tcf:minutes>
  <tcf:seconds>12</tcf:seconds>
  <tcf:frames>29</tcf:frames>
  <tcf:samples tcf:sampleRate="S44100">
    <tcf:numberOfSamples>121</tcf:numberOfSamples>
  </tcf:samples>
  <tcf:filmFraming tcf:framing="NOT_APPLICABLE" xsi:type="tcf:ntscFilmFramingType"/>
</tcf:duration>

The same information is now represented like this:

<aes:duration editRate="44100" factorNumerator="1" factorDenominator="1">571951</aes:duration>

Another change affects the "channelAssignment" element. This element does not have a "mapLocation" attribute, as the current code adds. Instead, AES57-2011 uses two new attributes "leftRightPostion" and "frontRearPosition". Detailed descriptions of this attributes can be found on this page. I could not determine a way to map all of the possible JHOVE "mapLocations" to the new AES attributes (for example, what does "SURROUND" mean?), so I decided to leave them out rather than include potentially inaccurate data.

(As an aside, I suspect that the way that JHOVE is currently mapping channel location for 4-channel AIFF audio is incorrect. Per spec, it should be LEFT, CENTER, RIGHT, SURROUND. JHOVE maps it as LEFT, RIGHT, CENTER, SURROUND.)

MartinSpeller commented 4 years ago

AES output does not conform to the AES57-2011 spec #362 - Assigned to pwinckles

MartinSpeller commented 4 years ago

AES output does not conform to the AES57-2011 spec #362 - Assigned to pwinckles