Skip to content

Release version 3.0.0-alpha

Pre-release
Pre-release

Choose a tag to compare

@Phencys Phencys released this 16 Oct 08:16
· 59 commits to laravel-beta since this release

After a period of quiet but steady progress, we are happy to announce the next alpha version of the Conformance tool.

After starting the migration to PHP8, we took the decision to re-implement both the core patterns and some initial modules of the tool in Laravel, which allows for a more well-organized and more legible code base at the same time.

As this comprises a re-implementation over a period of multiple months, with this initial release we only feature the highlights.

Highlights

  • New Interface
    • We have revised the interface, both to make it more dynamic and to better show what is being checked. After filling in a manifest URL, you can now enable/disable modules in the interface, switching up which checks actually get run in a much more straightforward way.
  • Segment downloading
    • We have moved the downloading of the segments into a background process. As long as the segments are still being downloaded, a progress bar appears to inform you of the progress. All manifest checks remain functional at this point, segment checks - obviously - check only what has been downloaded already. Once segment downloading is complete, just click on any segment tab to load the latest results.
  • Persistent downloads
    • Both the manifest and the segments get downloaded and analysed once per session. Sessions lasts for 6 hours starting at the first manifest analysis, giving plenty of time to retrieve whatever results you might need. If you want to force a re-download, you will have to clear the session with the red button next to the URL, and re-input the URL for now.
  • Re-organisation of statement results
    • In order to make the results easier to process, we now have a two-step organisation: first by Manifest or Segment level, followed by the specification. This makes it easier to see whether any issue with the stream might arise from the Manifest or from the Segmented data, rather than having to figure that out from the wording of the statements
  • Spec Versioning
    • This version introduces a new level of information, where the relevant version of the spec gets added to the spec itself. All statements that have been re-implemented, but could not be matched to a specification / version for any reason have been marked LEGACY.
    • Legacy checks are either:
      • Statements that have been removed from the specification
      • Statements that no longer apply (e.g. the spec now supports different values from those in the corresponding PHP check).
  • Specification-relative dependencies
    • As an in-progress feature, we are working for dependency level statements between different specifications. Enabling a module that has dependency statements related to it, will also enable the dependent module automatically, and copy over the result of the corresponding section. A dependency that is only enabled for this reason can be detected by the green outline of the specification, rather than a full enabled status.
  • Skip reasons
    • Starting with this version, we strive to let all module components register the statements they check in advance, combined with a reason why this check might be skipped. Statements that do not get checked are marked with this reason and a state of 'SKIP', and allow for spotting elements of the stream that you might have expected to be enabled.
    • 'SKIP' state statements count as a 'PASS' for module conformance.
  • Modular analysis tools
    • With this version we also re-implement all statements to make use of the validator system we introduced before. In a future version this will allow you to more easily plug your own stream validation software into the tool.
    • For now streams can only be validated with the MP4Box tool, but the ISOSegmentValidator will be ported in a future version as well.