Skip to content

"Phase A" changes#6

Merged
thomasheritage merged 23 commits into
mainfrom
thomash_phaseA
Jul 12, 2026
Merged

"Phase A" changes#6
thomasheritage merged 23 commits into
mainfrom
thomash_phaseA

Conversation

@thomasheritage

@thomasheritage thomasheritage commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

Summary (updated 2026-07-11)

Overview

Implement changes arising from the "Phase A" work of the EBU QC Group early in 2026

EBU QC group members can view details at https://git.ebu.io/qc/api/-/boards?milestone_title=Phase%3AA

Summary of changes made

qc-data-model.docx: significant updates

Related to qc.xsd updates:

  • Reference updated qc.xsd namespace:
    tag:qc.ebu.ch,2026-01 --> tag:qc.ebu.ch,2026-04
  • Update the UML diagram to match updated qc.xsd
  • Implement new structure & attributes for QCItemInputs & QCItemOutputs
    and their definitions
  • Add Annex C: explains QCItemInputs & QCItemOutputs and their
    definitions including full details of the rules that must be followed
  • Add CheckResultDefinition attribute
    Note: these changes replace the old (now prohibited) practice of
    creating QCItemOutputDefinitions (and QCItemOutputs) called
    "CheckResult"

Add TimingExtensionMediaPlaybackEditUnits:

  • Reference TimingExtensionMediaPlaybackEditUnits XSD with namespace:
    tag:qc.ebu.ch,2026-04:extensions:timing
  • Add Annex D: specifies TimingExtensionMediaPlaybackEditUnits -- an
    extension that governs temporal statements given by instances of the
    LocatorType

Add Annex E: specifies how the CheckResultRule, CheckResult, Relevance,
and RelevanceLevel attributes are related

Add Annex F: explains the mechanisms for specifying a portion of the
media content to be analysed during QC using the Scopes and Track
attributes

Clarify that "Track" attribute values are implementation dependent to
provide the opportunity for this being standardised in future

Update allowed values for PublicationStatusType

Remove "Description of the relations" chapter:

  • It contained various errors and much of it related to QCItemInputs
    & QCItemOutputs and so would take a lot of work to update
  • These relationships are now covered in context throughout the
    document and duplicating the information is undesirable

Clarify prose & tables related to items that have changed in
qc.xsd or which are now covered in an Annex, and link to the Annex where
relevant

Misc editorial changes

qc-catalogue-api: update to v3

The changes introduced to the Word docx are given by:
qc-catalogue-api.diff.e4bb4a7-2d53504.docx

Main changes:

  • API version number v2 -> v3
  • XML namespaces updated to accommodate the updated qc.xsd
    ("2026-01" namespaces to "2026-04")
  • Clarify API behaviour/restrictions especially:
    • Version numbers must not have a "patch" component
    • Only versions with a Status of "published" or "withdrawn" are considered
    • Clarify response upon success and error

qc.xsd changes

  • Remove all instances of "nillable"
  • Make Value optional on QCItemInput
  • Add CheckResultDefinition
  • Replace HasLocator
  • Remove Input & Output Groups
  • Update namespace

QC Reports: "best practice"

  • Split the best practice guidance into two documents: one that always
    applies and one for "Scenario 1"
  • Update guidance/checklists, in particular to reflect the recent changes
    to the model

QC Reports: sample XML file

  • Update to use latest qc.xsd
  • Correct AnalysisMethodUsed value
  • Use TimingExtensionMediaPlaybackEditUnits
  • Misc other updates and improvements

QC Reports: inspector

  • Remove support for unpublished experimental EBU QCi features related
    to ModifiedCheckResult
  • Update to align with latest EBU QC Model
  • Load Item Definitions from the Catalogue API
  • General refactoring and improvements

Other

Add qc-data-model.analysis_extent.example.drawio.svg

Add Timing Extension XSD

UML SVG: update to match qc.xsd

@wbailer

wbailer commented Apr 26, 2026

Copy link
Copy Markdown

Thanks for the updates, Tom.

One thought: On input and output definitions, HasLocator had previously a default value of false, should we add that to all the new Has* elements as well? They could then be made optional, as it clear how this is to be interpreted.

@thomasheritage

Copy link
Copy Markdown
Collaborator Author

HasLocator had previously a default value of false, should we add that to all the new Has* elements as well? They could then be made optional

That was the only place where "default" was used in the XSD. I only noticed that when making this edit. It caused what I found to be a confusing situation: although the element HasLocator always had to have a value (it didn't have minoccurs=0), the fact that there was a default value specified meant this requirement would be satisfied even if the XML Element was omitted from an instance document, making it appear to be an optional property... (it's shown as mandatory in the UML class diagram).

I'd suggest it's simpler it leave all the Has* elements as mandatory and without a default value specified. This means that they'll always be in the Input/Output Definitions and so it will always be completely clear what the requirements are when creating Inputs/Outputs in Item Results.

@wbailer

wbailer commented Apr 27, 2026

Copy link
Copy Markdown

Thanks for the clarification, makes sense.

@thomasheritage

Copy link
Copy Markdown
Collaborator Author

I've added additional XSD changes in 988d82b and 0a40e5a that go beyond what was discussed on GitLab. I highlighted these at the EBU QC meeting 2026-05-12

@thomasheritage

thomasheritage commented May 12, 2026

Copy link
Copy Markdown
Collaborator Author

Some design enhancements (not pushed yet) that go beyond what was discussed on GitLab but were highlighted at the EBU QC Meeting 2026-05-12 include:

  • DefaultValue

  • IOdef naming constraints

  • From the discussion: ensure that names of input & output definitions are scoped separately

@thomasheritage

Copy link
Copy Markdown
Collaborator Author

Another change to highlight in the model docx (not pushed yet): I've removed the "description of the relations" chapter because it contained various errors and much of it related to inputs and outputs and so would take a lot of work to update. Also, these relationships are now covered in context throughout the document and duplicating the information would be a hassle and prone to errors.

* Change timings to use new timing extension
* Change to use Item Definitions in the catalogue that don't have inputs
  to specify which part of the content to analyse for test tones etc.
  For such tests, what is best practice re using Scopes and using those
  inputs, and what's the interaction?
* Add "Scopes" attribute to contain "Scope" attributes (per the Word docx
  prose)
* Adjust terminology to match Word docx prose
* Misc layout tweaks
@thomasheritage

Copy link
Copy Markdown
Collaborator Author

Another change to highlight in the model docx (not pushed yet): a different approach to constraining Scope attributes (but following the same principles)

Main changes:
* API version number v2 -> v3
* XML namespaces updated to accommodate the updated qc.xsd
  ("2026-01" namespaces to "2026-04")
* Clarify API behaviour/restrictions especially:
  * Version numbers must not have a "patch" component
  * Only versions with a Status of "published" or "withdrawn" are considered
  * Clarify response upon success and error
@thomasheritage

Copy link
Copy Markdown
Collaborator Author

API specs updated in 2d53504

The changes introduced to the Word docx are given by:
qc-catalogue-api.diff.e4bb4a7-2d53504.docx

Related to qc.xsd updates:
* Reference updated qc.xsd namespace:
  tag:qc.ebu.ch,2026-01 --> tag:qc.ebu.ch,2026-04
* Update the UML diagram to match updated qc.xsd
* Implement new structure & attributes for QCItemInputs & QCItemOutputs
  and their definitions
* Add Annex C: explains QCItemInputs & QCItemOutputs and their
  definitions including full details of the rules that must be followed
* Add CheckResultDefinition attribute
Note: these changes replace the old (now prohibited) practice of
creating QCItemOutputDefinitions (and QCItemOutputs) called
"CheckResult"

Add TimingExtensionMediaPlaybackEditUnits:
* Reference TimingExtensionMediaPlaybackEditUnits XSD with namespace:
  tag:qc.ebu.ch,2026-04:extensions:timing
* Add Annex D: specifies TimingExtensionMediaPlaybackEditUnits – an
  extension that governs temporal statements given by instances of the
  LocatorType

Add Annex E: specifies how the CheckResultRule, CheckResult, Relevance,
and RelevanceLevel attributes are related

Add Annex F: explains the mechanisms for specifying a portion of the
media content to be analysed during QC using the Scopes and Track
attributes

Update allowed values for PublicationStatusType

Remove "Description of the relations" chapter:
* It contained various errors and much of it related to QCItemInputs
  & QCItemOutputs and so would take a lot of work to update
* These relationships are now covered in context throughout the
  document and duplicating the information is undesirable

Clarify prose & tables related to items that have changed in
qc.xsd or which are now covered in an Annex, and link to the Annex where
relevant

Misc editorial changes
@thomasheritage

Copy link
Copy Markdown
Collaborator Author

qc-data-model.docx updated in 9de4141

The changes introduced to the Word docx are given by:
qc-data-model.diff.e4bb4a7-9de4141.docx

@thomasheritage

Copy link
Copy Markdown
Collaborator Author

FYI: updated the PR description just now with the current status

* Split the best practice guidance into two documents: one that always
  applies and one for "Scenario 1"
* Update guidance/checklists, in particular to reflect the recent changes
  to the model
* Update to use latest qc.xsd
* Correct AnalysisMethodUsed value
* Use TimingExtensionMediaPlaybackEditUnits
* Misc other updates and improvements
* Remove support for unpublished experimental EBU QCi features related
  to ModifiedCheckResult
* Update to align with latest EBU QC Model
* Load Item Definitions from the Catalogue API
* General refactoring and improvements
@thomasheritage

Copy link
Copy Markdown
Collaborator Author

FYI: updated the PR description just now with the current status

As discussed in EBU QC group meeting 2026-07-07

* Minor editorial fixes
  - From @wbailer
* Add requirement that QCItemDefinitions include at least one
  QCItemOutputDefinition for "report" mode Tests
  - Based on input from @wbailer
* Clarify that "Track" attribute values are implementation dependent
  to provide the opportunity for this being standardised in future
  - Based on input from Roberto Borgotallo
@thomasheritage

Copy link
Copy Markdown
Collaborator Author

FYI: updated the PR description just now with the current status

@thomasheritage

Copy link
Copy Markdown
Collaborator Author
  • 9de4141 discussed in EBU QC group meeting 2026-06-23, inviting review
  • Group emailed on 2026-06-30 with reminder of review
  • 9b0a48c discussed in EBU QC group meeting 2026-07-07, concluding that this PR was ready to merge (and then a Release needs to be created) subject to some remaining small edits (now implemented in 7fbc436)

@thomasheritage thomasheritage marked this pull request as ready for review July 12, 2026 17:05
@thomasheritage thomasheritage merged commit b8f2628 into main Jul 12, 2026
@thomasheritage thomasheritage deleted the thomash_phaseA branch July 12, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants