Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: mos status flow rework #1356

Draft
wants to merge 1 commit into
base: release52
Choose a base branch
from

Conversation

Julusian
Copy link
Member

@Julusian Julusian commented Jan 8, 2025

About the Contributor

This pull request is posted on behalf of the BBC

Type of Contribution

This is a: Feature

Current Behavior

Reporting statuses to a MOS NRCS is quite basic, limited to just sending PLAY events for stories as they are taken.

New Behavior

The status reporting is overhauled to support a full range of statuses, driven from both playback and ingest.
Additionally, status can now be reported for items as well as the stories.

To do this, a new custom publication has been added to be consumed by the MOS gateway. This publication is slightly mos based (the status levels it contains is based upon MOS), but it intended to be usable for other types of ingest gateways and NRCS systems.
This publication contains documents which follows a similar structure to an IngestRundown. Each 'Part' in this structure corresponds with a story/part as reported by the gateway. This 'Part' contains a few values which describe the status of the story and of any items. At this level it still reflects the raw values as provided by the playout and ingest logic, they have not been resolved into a single string/value at this point.
It is expected that the gateway will get an update to this document for each take performed, as the playback status of parts will change, as well as following any ingest operation.

Inside the gateway, we consume this publication and upon receiving a new version of it perform a diff. Through this, we compile a sequence of MOS messages we should send to report the correct status.

To ensure correct operation, at startup of the gateway, the gateway will write all the values to the NRCS, to ensure they are in sync.

As part of this, the MOS gateway has gained a few new options, to configure how this status writing is performed.
One of these options is to limit the diff to only produce PLAY statuses, so that it can be configured to match existing behaviour.

Testing

  • I have added one or more unit tests for this PR
  • I have updated the relevant unit tests
  • No unit test changes are needed for this PR

This has been tested against a non-production like openmedia installation. Testing against a production like openmedia has not been done yet, and no testing has been performed against other MOS systems.

This will want testing by NRK to ensure it produces PLAY messages in a way that is compatible with your existing workflow.

Affected areas

This PR affects the status reporting to MOS NRCS

Time Frame

Not urgent, but we would like to get this merged into the in-development release.

Other Information

Status

  • PR is ready to be reviewed.
  • The functionality has been tested by the author.
  • Relevant unit tests has been added / updated.
  • Relevant documentation (code comments, system documentation) has been added / updated.

Copy link

codecov bot commented Jan 8, 2025

Codecov Report

Attention: Patch coverage is 19.49861% with 1156 lines in your changes missing coverage. Please review.

Project coverage is 56.11%. Comparing base (b87cd9f) to head (7b5f0a4).
Report is 9 commits behind head on release52.

Files with missing lines Patch % Lines
packages/mos-gateway/src/mosHandler.ts 13.38% 220 Missing ⚠️
...or/server/publications/ingestStatus/publication.ts 0.00% 194 Missing and 1 partial ⚠️
...ublications/ingestStatus/rundownContentObserver.ts 0.00% 149 Missing and 1 partial ⚠️
...ications/ingestStatus/createIngestRundownStatus.ts 0.00% 133 Missing and 1 partial ⚠️
packages/mos-gateway/src/mosStatus/handler.ts 28.22% 117 Missing ⚠️
.../publications/ingestStatus/reactiveContentCache.ts 0.00% 77 Missing and 1 partial ⚠️
...ations/pieceContentStatusUI/rundown/publication.ts 0.00% 77 Missing ⚠️
...server/publications/partInstancesUI/publication.ts 0.00% 55 Missing ⚠️
meteor/server/publications/partsUI/publication.ts 0.00% 51 Missing ⚠️
...ver/publications/segmentPartNotesUI/publication.ts 0.00% 46 Missing ⚠️
... and 6 more
Additional details and impacted files
@@              Coverage Diff              @@
##           release52    #1356      +/-   ##
=============================================
+ Coverage      55.71%   56.11%   +0.39%     
=============================================
  Files            384      440      +56     
  Lines          68508    79307   +10799     
  Branches        4203     4592     +389     
=============================================
+ Hits           38171    44504    +6333     
- Misses         30204    34562    +4358     
- Partials         133      241     +108     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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.

1 participant