Skip to content

2076-3 Support#211

Open
rsjbailey wants to merge 9 commits into
masterfrom
2076-3-pr
Open

2076-3 Support#211
rsjbailey wants to merge 9 commits into
masterfrom
2076-3-pr

Conversation

@rsjbailey

Copy link
Copy Markdown
Contributor

Adds support for:

  • Cartesian subelement on DirectSpeakers type audioBlockFormat
  • tagList and subelements
  • profileList and subelements
  • authoringInformation subelement on audioProgramme, and authoringInformation's subelements

Many of these new elements reference other elements by ID.

Removing the referenced elements from a document in a way that would otherwise make the document invalid, causes these elements to be removed as well, this can happen recursively in some cases where removing that element causes its parent to also be invalidated.

Copilot was used in this PR, but primarily for re-arranging a long sequence of commits that explored a couple of different approaches, into something a bit more approachable.

Mirrors semantics on Objects type block format regarding interaction with the
used coordinate type

fix formatting
We were using a very old vcpkg revision that attempted to download a version of 7zip that is no longer available.
Updating to the latest action version while we're touching the build file
Were also experiencing a build failure due to msys2 / gcc being used on Windows,
so have added the ilammy/msvc-dev-cmd action to setup an MSVC environment.

The build failure was possibly exposing a legitimate issue (using dllimport on template
functions), but out of scope for this.
@davemar-bbc

Copy link
Copy Markdown
Collaborator

tagList and profileList seem to work fine with my code. Will check the other parts.
Will the extra dialogue category be added to audioContent?

@rsjbailey

rsjbailey commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

tagList and profileList seem to work fine with my code. Will check the other parts. Will the extra dialogue category be added to audioContent?

Had a look at the relevant bit of 2076 and added two new constants / revised the range checks - does 828da02 look right / do what you'd expect?

rsjbailey and others added 7 commits July 21, 2026 10:59
Introduce Tag, TagGroup, TagList wiring in the public API and XML parser/formatter, reuse ProfileList from SADM in ADM Document

Review-depth: high

Review-reason: Adds new user-visible ADM elements and XML behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move TagList/ProfileList auxiliary copying into shared copy machinery, remap TagGroup references during deepCopy, and centralize TagGroup pruning with template-based remove-side logic.

Review-depth: high

Review-reason: Alters deep-copy semantics and document remove side effects for TagList references.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce loudnessMetadata.renderer support, shared renderer parameter types, and parser/formatter integration with dedicated unit and XML tests.

Review-depth: high

Review-reason: Adds new ADM element behavior and serialization semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…er interop [copilot]

Add authoringInformation and coordinateMode support on audioProgrammeReferenceScreen, wire renderer interop APIs, and integrate parser/formatter/copy behavior with tests.

Review-depth: high

Review-reason: Introduces new programme metadata structures and cross-element interop behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…d parsing [copilot]

Adopt weak-reference semantics for ReferenceLayout/renderer references and add forward-reference XML parsing coverage across authoring information, loudness renderer, and stream-format paths.

Review-depth: high

Review-reason: Changes reference ownership semantics and parser resolution behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expand deep-copy test coverage for 2076-3 metadata propagation in profile-list handling.

Review-depth: medium

Review-reason: Test-only change increasing behavioral coverage for copy semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
NonDialogueContentKind::MUSIC_AND_EFFECTS and
MixedContentKind::COMPLETE_HEARING_IMPAIRED_AD
@rsjbailey

rsjbailey commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Merged a few bug fixes into the relevant commits

  • TagGroup had a bug with it's equality operator (it only compared the tag, not the references)
  • The tagGroup class attribute is optional but was serialized as if it were required, which caused an error on serializing a tagGroup where that parameter was not present
  • rendererUri is required on an authoring renderer, but optional on a loudness renderer - it was previously optional on both which was incorrect.
  • There were a couple of errors in the export declarations of some TagGroup methods which caused shared library builds to fail
  • A weird one I fixed without managing to precisely diagnose - A variable wasn't 'seen' on MSVC inside a lambda that used the [&] specifier to capture all used variables. Adding it explicitly as a named capture worked as expected, and is better practice regardless. Was fine on all other compilers, works everywhere now.
  • Various formatting issues

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