Releases: Dash-Industry-Forum/DASH-IF-Conformance
Release version 3.0.0
- We are happy to announce v3.0.0 of the Conformance Tool.
- The application has been re-implemented using the Laravel framework. Laravel adds stability, easy of use and maintenance, and it allows for a more structured approach to the code base.
-
Features
- 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 become available as soon as all download process have been completed.
- Segment downloading is limited to 3 segments per representation, with an extra limit of 100mb per segment in order to not overload the deployment server.
- Segments that can't be retrieved or exceed the size limit are visible in the web interface.
- 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 become available as soon as all download process have been completed.
- Persistent downloads
- Both the manifest and the segments get downloaded and analysed once per session. Sessions do not expire unless there is an hour of inactivity, giving plenty of time to retrieve whatever results you might need. If you want to force a re-download, clear the session with the red button next to the URL, and re-input the URL.
- All data is stored on disk using laravel's storage system, and cleared along with the expired sessions.
- Both the manifest and the segments get downloaded and analysed once per session. Sessions do not expire unless there is an hour of inactivity, giving plenty of time to retrieve whatever results you might need. If you want to force a re-download, clear the session with the red button next to the URL, and re-input the URL.
- Re-organisation of statement results
- In order to make the results easier to process, we now have a two-step organisation: first by Manifest, Segment or Cross-Validation 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.
- In addition to this, we now provide a 'Quick Results' table which shows the results for all selected specifications, making it a lot easier to zoom in on specific issues.
- Specification Versioning
- This version introduces a new level of information, where the relevant version of the specification is part of the statements.
LEGACYversions of specifications have been introduced where at least one of the following holds:- A statement was present in 2.x, but not available in the latest version of the specification.
- A statement no longer applies (e.g. the specification now supports different values from those in the corresponding PHP check).
- Specification-relative dependencies
- We have introduced a feature where statements can be dependent on other 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 specification that is enabled for this reason can not be disabled in the interface.
- We have introduced a feature where statements can be dependent on other 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.
- Skip reasons
- To allow for spotting elements that 'should' have been checked, all statements that do not get processed are marked with a value of 'SKIP'. These do not count towards module conformance.
- Analysis
- Statements now get analysed on the individual segment level, allowing for a more accurate representation of the stream.
- All checks have been implemented using a generic interface to the validator system.
- This version requires GPAC's
MP4Boxvalidator, theISOSegmentValidatorpreviously included is on our re-implementation roadmap.
- This version requires GPAC's
Release version 2.4.1
Release version 3.0.0-beta
We're happy to announce the availability of our first beta version for v3.0.0.
This beta release is not yet feature-complete but it marks an important milestone. First it implements many new rules (and update some) in the DVB space. Second it shows the PHP8/Laravel migration close to its expected final state. We switched to beta because this version contains new features that will not be backported.
Features
- DVB Module (A168 Rev.9) extended with support for comparison between bitstream elements and the Manifest
Improvements
- Support for more types of initialization and segment url
Bugfixes
Release version 3.0.0-alpha.2
We're happy to announce the availability of the next iteration of our alpha version.
Improvements
- DVB Module is now 90% re-implemented with the new APIs.
- HbbTV Module is now re-implemented.
- CMAF Module is now re-implemented.
- Low Latency module is in progress.
- New 'CrossValidation' section in the interface for MPD <-> Segment comparison checks.
- Clean up BaseURL support and download segments only when a single BaseURL exists.
- Support for manifests with segment timeline.
Bugfixes
- Disabled segment analysis modules while the segments are still being downloaded.
- Removed various checks that have been invalid for a while
- e.g. Comparison of full stream duration with manifest would always fail, as we do not download all segments.
- A variety of checks have been temporarily removed as they depend on no-longer available data or had invalid implementations.
Release version 2.4.0
Features
- Added a more GDPR compliant banner for the hosting
Improvements
- Upgrade Dobly module to use the validator system
- Improved legibility of checks
- Applied limiting value for Period and Adaptation Set counts as well
Bugfixes
Release version 3.0.0-alpha
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).
- 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
- 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
MP4Boxtool, but theISOSegmentValidatorwill be ported in a future version as well.
DASH-IF Conformance Tools v2.3.0
Features
- Added pluggable validator system
- Analysis of CTAWave 5005A specification
- Added basic processing statistics to UI
- Added limiting of segment downloads
- Added support for analysing updates to live manifests
- Analysis of TS 103 285 v1.4.1 - Section 4.8.3 (DVB updates for live streams)
Improvements
- Upgrade the project to PHP 8.x
- Upgrade the project to use Ubuntu 24.04
- Removed 'smart' segment downloading in favor of robustness
Bugfixes
- Allow non-zero start time for 'static' manifests #594
- Limit the amount of segments per representation to 5 as default #702
- Fixed calculation of stream framerate
- Whitelisted some false negative errors reported by the ISOSegmentValidator #705
- Retrieve content type from manifest instead of stream analysis
- Divergence between CLI and Rest API #707
- Fixed a lot of suppressed PHP warnings and Fatal errors as uncovered by #707
DASH-IF Conformance Tools v2.2.3
What's Changed
- Fix multiple bugs when checking for elements in the DVB testsuite by @dsilhavy in #678
- Fix error message for the DVB
UTCTimingelement check by @dsilhavy in #679 - Adjust CI/CD jobs to reflect new EC2 server config by @dsilhavy in #682
- Ignore empty lines from segment validation output to remove trailing check mark by @dsilhavy in #683
- Fix usage of wrong global variables for saving codec information by @dsilhavy in #685
- Fix count for
contentProtectionelements in DVB test by @dsilhavy in #686 - Remove doctype tag from test result output to avoid creating an invalid JSON by @dsilhavy in 5faeee7
DASH-IF Conformance Tools v2.2.2
Bugfixes
- Fix accessing the audio sample description. by @dsilhavy in #659
- Add support for segments with multiple moof/mdat boxes. by @dsilhavy in #660
- Fix a division by zero that lead to tests failing by @dsilhavy in #661
- Fix output of minimumBufferTime in ISO Validator. Should be a float by @dsilhavy in #663
- ISOSegmentValidator: remove error saying that 'isom' can only be comp… by @rbouqueau in #665
- fix: use URL instatiation to validate url string by @cadubentzen in #664
- Fix accessing the wrong attribute for the NAL unit type by @dsilhavy in #668
- Save presentation profile regardless of conformance in previous tests… by @dsilhavy in #674
- Add pasp and btrt validation for "hev1","hvc1" by @dsilhavy in #675
DASH-IF Conformance Tools v2.2.1
Features
#654 Adds a state symbol for all test messages @Phencys
Bugfixes
#654 Fix issues in the CTA-WAVE testsuite leading to wrong parsing of media profiles and invalid period timing @Phencys @dsilhavy
#646 Fix bugs causes by wrong variable names and missing references in the HbbTV testsuite @dsilhavy
#650 Remove a false check for matrix coefficients leading to a wrong message @Phencys
#651 Allow new logger initialization with set module and hook, used for low latency @Phencys
#655 Fix a bug when merging higher level attributes into lower level attributes leading to missing information in the Representations @dsilhavy
#647 Use HTML links in "About" and "FAQ" markdown of landing page @dsilhavy