Skip to content

Commit

Permalink
FEAT: Updated audio outputs to conform to the AES57-2011 spec
Browse files Browse the repository at this point in the history
Copied from #357 contributed by @pwinckles, thanks! Apologies the PR was old enough to make merging difficult. My only contribution was the JSON handler output.

The AES output that JHOVE currently generates does not conform to the AES57-2011 spec. The schema can be found [here](https://www.loc.gov/standards/amdvmd/audiovideoMDschemas.html).

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:
```xml
<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:
```xml
<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](https://rucore.libraries.rutgers.edu/open/projects/openwms/index.php?sec=guides&sub=metadata&pg=t_sound-qual). 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](http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/AIFF/Docs/AIFF-1.3.pdf), it should be LEFT, CENTER, RIGHT, SURROUND. JHOVE maps it as LEFT, RIGHT, CENTER, SURROUND.)

Fixes #362 #367
Closes #357
  • Loading branch information
carlwilson committed Aug 20, 2024
1 parent 250f2db commit 7cf576e
Show file tree
Hide file tree
Showing 7 changed files with 2,383 additions and 2,560 deletions.
Loading

0 comments on commit 7cf576e

Please sign in to comment.