Skip to content

AMWA NMOS IS-05 1.2-dev / MXL Support#483

Draft
jonathan-r-thorpe wants to merge 25 commits into
sony:masterfrom
jonathan-r-thorpe:nmos-mxl-test
Draft

AMWA NMOS IS-05 1.2-dev / MXL Support#483
jonathan-r-thorpe wants to merge 25 commits into
sony:masterfrom
jonathan-r-thorpe:nmos-mxl-test

Conversation

@jonathan-r-thorpe
Copy link
Copy Markdown
Contributor

  • Prototype used to demonstrate MXL integration with NMOS

Copy link
Copy Markdown
Contributor

@garethsb garethsb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to submit this last week, sorry...

Comment thread Development/nmos-cpp-node/config.json Outdated
Comment thread Development/nmos-cpp-node/config.json Outdated
Comment thread Development/nmos-cpp-node/config.json Outdated
Comment on lines +524 to +525
// BCP-007-03: PATCH /staged for MXL receivers must not contain transport_file.
// See https://specs.amwa.tv/bcp-007-03/branches/publish-auto-null/docs/NMOS-With-MXL.html
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonathan-r-thorpe I think this is a mistake in the spec? Given that the response schema requires that transport_file is present, I think it should be valid to stage:

"transport_file": {
  "type": null,
  "data": null
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The BCP-007-03 spec is ambiguous on this so I'll raise it as an issue on the spec.
BCP-007-03 says PATCH /staged for MXL receivers is “not expected to contain” transport_file, and that controllers “MUST NOT provide” the attribute — which I read as prohibiting the key entirely. That’s stricter than the IS-05 stage schema, as you point out. I think this might become moot if the position on transport_file changes in the spec...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think that MUST NOT is a mistake that makes an edge case where there need not be one.

Comment thread Development/nmos/is05_schemas/is05_schemas.h Outdated
Comment thread Development/nmos-cpp-node/node_implementation.cpp Outdated
Comment thread Development/nmos-cpp-node/node_implementation.cpp Outdated
Comment on lines +969 to +970
flow = nmos::make_raw_audio_flow(flow_id, source_id, device_id, 48000, 32, model.settings);
flow.data[nmos::fields::media_type] = value::string(U("audio/float32"));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⬇️ Maybe we should use make_audio_flow or have another overload of make_raw_audio_flow, so we don't have to rewrite the media_type?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use nmos::make_coded_audio_flow perhaps?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah... except we want bit_depth, I think?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch - will update

Comment thread Development/nmos-cpp-node/node_implementation.cpp Outdated
Comment thread Development/nmos-cpp-node/node_implementation.cpp Outdated
jonathan-r-thorpe and others added 7 commits May 18, 2026 16:54
Co-authored-by: Gareth Sylvester-Bradley <31761158+garethsb@users.noreply.github.com>
Get-NetIPConfiguration fails when multiple adapters map to one interface; use the default route and Get-NetIPAddress instead, and only disable vEthernet (nat) when present.
Comment on lines 120 to +125
// video_type: media type of video flows, e.g. "video/raw" or "video/jxsv", see nmos::media_types
const web::json::field_as_string_or video_type{ U("video_type"), U("video/raw") };

// mxl_video_type: media type of MXL video flows and receivers, e.g. "video/v210" or "video/v210a", see nmos/mxl.h
const web::json::field_as_string_or mxl_video_type{ U("mxl_video_type"), nmos::media_types::video_v210.name };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonathan-r-thorpe I can't decide if it's a good idea to use the nmos::media_types::video_v210.name here (so long as it never suffers from static initialization order fiasco? that might be the reason that we didn't do it above for "video/raw"?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep it consistent I think.

fi

do_run_test IS-04-01 $expected_disabled_IS_04_01 --host "${host}" --port 1080 --version v1.3
do_run_test IS-04-01 $expected_disabled_IS_04_01 --host "${host}" --port 1080 --version v1.3 --ignore test_19
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to raise an issue or PR on the NMOS Testing Tool?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already did it AMWA-TV/nmos-testing#895 👍

@garethsb
Copy link
Copy Markdown
Contributor

@jonathan-r-thorpe @lo-simon If this isn't going to get merged imminently (although that would be nice!) would you consider extracting d499aac into a separate PR so we can have running CI on Windows again?

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.

3 participants