Dash-Industry-Forum / DASH-IF-Conformance

This repository provides the source code for MPEG-DASH/DASH-IF Conformance Software/Validator. It has been extended according to further standards, such as CMAF, DVB-DASH, HbbTV, and CTA WAVE.
https://conformance.dashif.org/
Other
68 stars 28 forks source link

Unexpected failure for MPD using single 2017 DVB DASH profile #624

Open nicholas-fr opened 1 year ago

nicholas-fr commented 1 year ago

Using dev branch release https://github.com/Dash-Industry-Forum/DASH-IF-Conformance/commit/ba42591cd7b98dd9b2773dc2758828676b3bfb4a. When validating a DASH MPD using the 2017 DVB DASH profile (urn:dvb:dash:profile:dvb-dash:2017) it is not recognised by the validator. Even when it is the only profile signalled (i.e. not quite the same as issue #598):

    "MPEG-DASH Common":
        {
        "AdaptationSet":
            {
            "verdict": "PASS"
            },
        "BeforeAdaptationSet":
            {
            "verdict": "PASS"
            },
        "BeforeMPD":
            {
            "verdict": "PASS"
            },
        "BeforeRepresentation":
            {
            "verdict": "PASS"
            },
        "MPD":
            {
            "info":
                [
                "Schematron output: 0XLink resolving successful\n\n\nMPD validation successful - DASH is valid!\n\n\n<svrl:failed-assert test=\"if (not(@profiles) or (contains(@profiles, 'urn:mpeg:dash:profile:isoff-on-demand:2011') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-ext-on-demand:2014') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-live:2011') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-ext-live:2014') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-main:2011') or contains(@profiles, 'urn:mpeg:dash:profile:full:2011') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-common:2014') or contains(@profiles, 'urn:mpeg:dash:profile:isoff-broadcast:2015') or contains(@profiles, 'urn:mpeg:dash:profile:mp2t-main:2011') or contains(@profiles, 'urn:mpeg:dash:profile:mp2t-simple:2011') or contains(@profiles, 'http://dashif.org/guidelines/dash264') or contains(@profiles, 'http://dashif.org/guidelines/dash264#sd') or contains(@profiles, 'http://dashif.org/guidelines/dash264#hd') or contains(@profiles, 'http://dashif.org/guidelines/dash264main') or contains(@profiles, 'http://dashif.org/guidelines/dash264high') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-simple') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-main') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-ondemand') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-mixed') or contains(@profiles, 'http://dashif.org/guidelines/dashif#ec-3') or contains(@profiles, 'http://dashif.org/guidelines/dashif#mlpa') or contains (@profiles, 'http://dashif.org/guidelines/dashif#ac-4') or contains(@profiles, 'http://dashif.org/guidelines/dashif#dtsc') or contains (@profiles, 'http://dashif.org/guidelines/dashif#dtsh') or contains (@profiles, 'http://dashif.org/guidelines/dashif#dtse') or contains (@profiles, 'http://dashif.org/guidelines/dashif#dtsl') or contains (@profiles, 'http://dashif.org/guidelines/dashif#mps') or contains (@profiles, 'http://dashif.org/guidelines/dashif#heaac-mc51') or contains (@profiles, 'http://dashif.org/guidelines/dashif#heaac-mc71') or contains (@profiles, 'http://dashif.org/guidelines/dashif#mpeg-h-3da') or contains(@profiles, 'http://dashif.org/guidelines/dashif#cxha') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-uhd#4k') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-uhd#hdr-pq10') or contains(@profiles, 'http://dashif.org/guidelines/dashif#vp9') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-uhd#vp9') or contains(@profiles, 'http://dashif.org/guidelines/dashif#vp9-hdr') or contains(@profiles, 'http://dashif.org/guidelines/dash-if-uhd#vp9-hdr') or contains(@profiles, 'urn:hbbtv:dash:profile:isoff-live:2012') or contains(@profiles, 'urn:dvb:dash:profile:dvb-dash:2014'))) then true() else false()\"\n                       location=\"/*:MPD[namespace-uri()='urn:mpeg:dash:schema:mpd:2011'][1]\">\n      <svrl:text>An unknown profile string (other than the On-Demand profile -\"urn:mpeg:dash:profile:isoff-on-demand:2011\", the extended On-Demand profile -\"urn:mpeg:dash:profile:isoff-ext-on-demand:2014\", the live profile -\"urn:mpeg:dash:profile:isoff-live:2011\", the extended live profile -\"urn:mpeg:dash:profile:isoff-ext-live:2014\", the main profile- \"urn:mpeg:dash:profile:isoff-main:2011\", the full profile \"urn:mpeg:dash:profile:full:2011\", the common profile -\"urn:mpeg:dash:profile:isoff-common:2014\", the broadcast TV profile -\"urn:mpeg:dash:profile:isoff-broadcast:2015\", the mp2t-main profile -\"urn:mpeg:dash:profile:mp2t-main:2011\", the mp2t-simple profile -\"urn:mpeg:dash:profile:mp2t-simple:2011\", the DASH-IF profile - 'http://dashif.org/guidelines/dash264', the DASH-IF SD profile - 'http://dashif.org/guidelines/dash264#sd', the DASH-IF HD profile - 'http://dashif.org/guidelines/dash264#hd', the DASH-IF main profile - 'http://dashif.org/guidelines/dash264#main', the DASH-IF high profile - 'http://dashif.org/guidelines/dash264#high', the DASH-IF IOP simple profile - 'http://dashif.org/guidelines/dash-if-simple', the DASH-IF IOP main profile - 'http://dashif.org/guidelines/dash-if-main', the DASH-IF IOP on demand profile - 'http://dashif.org/guidelines/dash-if-ondemand', the DASH-IF IOP mixed on demand profile - 'http://dashif.org/guidelines/dash-if-mixed', the DASH-IF multichannel audio extension with Enhanced AC-3 -\"http://dashif.org/guidelines/dashif#ec-3, the DASH-IF multichannel extension with Dolby TrueHD -\"http://dashif.org/guidelines/dashif#mlpa\", the Dolby AC-4 profile -\"http://dashif.org/guidelines/dashif#ac-4\", the DASH-IF multichannel extension with DTS Digital Surround -\"http://dashif.org/guidelines/dashif#dtsc\", the DASH-IF multichannel audio extension with DTS-HD High Resolution and DTS-HD Master Audio -\"http://dashif.org/guidelines/dashif#dtsh\", the DASH-IF multichannel audio extension with DTS Express -\"http://dashif.org/guidelines/dashif#dtse\", the DASH-IF multichannel audio extension with DTS-HD Lossless profile -\"http://dashif.org/guidelines/dashif#dtsl\", the DASH-IF multichannel audio extension with MPEG Surround profile -\"http://dashif.org/guidelines/dashif#mps\", the DASH-IF multichannel audio extension with HEAACv2 Level 4 profile -\"http://dashif.org/guidelines/dashif#heaac-mc51\", the DASH-IF multichannel audio extension with HEAACv2 Level 6 profile -\"http://dashif.org/guidelines/dashif#heaac-mc71\", the DASH-IF multichannel audio extension with MPEG-H 3D Audio profile -\"http://dashif.org/guidelines/dashif#mpeg-h-3da\", the DASH-IF audio extension with USAC profile -\"http://dashif.org/guidelines/dashif#cxha\", the DASH-IF UHD HEVC 4K profile -\"http://dashif.org/guidelines/dash-if-uhd#4k\", the DASH-IF HEVC HDR PQ10 profile - \"http://dashif.org/guidelines/dash-if-uhd#hdr-pq10\", the DASH-IF VP9-HD profile -\"http://dashif.org/guidelines/dashif#vp9\", the DASH-IF VP9-UHD profile -\"http://dashif.org/guidelines/dash-if-uhd#vp9\", the DASH-IF VP9-HDR profile -\"http://dashif.org/guidelines/dashif#vp9-hdr\" or \"http://dashif.org/guidelines/dash-if-uhd#vp9-hdr\", the DVB-DASH profile -\"urn:dvb:dash:profile:dvb-dash:2014\", the HbbTV 1.5 profile -\"urn:hbbtv:dash:profile:isoff-live:2012\"\")found.</svrl:text>\n   </svrl:failed-assert>\nSchematron validation not successful - DASH is not valid!\n\n\n"
                ],
            "test":
                [
                    {
                    "messages":
                        [
                        "XLink resolving succesful",
                        "MPD validation succesful",
                        "Schematron validation failed"
                        ],
                    "section": "Commmon",
                    "spec": "MPEG-DASH",
                    "state": "FAIL",
                    "test": "Schematron Validation"
                    }
                ],
            "verdict": "FAIL"
            },
        "Period":
            {
            "verdict": "PASS"
            },
        "Representation":
            {
            "verdict": "PASS"
            },
        "verdict": "FAIL"
        }

Also, it appears the output is not valid JSON:

image

dsilhavy commented 1 year ago

What is the URL to the MPD?

rbouqueau commented 7 months ago

Do we have any content to test?