Networked Media Open Specifications
HOME REGISTERS... REPO INFO... TOOLS... IS-... BCP-... MORE... SEARCH

Group Hint Tags

This document describes an application of the AMWA IS-04 “tags” structures to enable control systems to identify relationships between NMOS resources listed in a registry or node.

The values of the grouphint tag are an immutable property of the resource.

Introduction

Since AMWA IS-04 v1.0, NMOS resources contain a “tags” field that has not been used in a standard way. However when the control systems are trying to control multiple NMOS devices there is no defined way of representing related resources together.

The initial goal of the group hints definition is to have an easy way of identifying natural groups of sources and destinations. This document defines a clear way of identifying natural groups in the NMOS registry but it does not limit usage of these tags to natural grouping. The only requirement is to respect the rules for natural grouping.

Natural grouping can be defined as the default relationship between senders or receivers inside a node. This relationship SHOULD remain the same inside a similar device (hardware or software) and it is mostly to help build relationship. Natural groups are not created by users in a dynamic way, they are defined by device manufacturers.

A good example of a natural group would be a device named “camera” that produces one video and two audio streams. A natural group for this device could be named “camera” and each sender should carry the group tag “camera”. Natural grouping is by devices by default and the same group name may be used in all the camera devices. Then a role SHOULD be assigned to each sender so we can differenciate the senders within the same group.

Result will be something like this:

Video group : “Camera” role: “Primary”

Audio 1 group : “Camera” role: “Audio 1”

Audio 2 group : “Camera” role: “Audio 2”

It is expected that system controllers use the natural group hints to guide users through a process of associating production meaning and naming with the NMOS resources. This is inherently a setup/configuration-time task. If the natural group hint tag changes later, there is not necessarily an opportunity to re-ask the user if/how that change affects the overall system naming and mapping configuration. That’s why immutability is important for natural grouping and it MUST be respected.

Group hint URN

The group hint URN ‘urn:x-nmos:tag:grouphint’ defines a set of groups to which a resource belongs to.

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "{group-name}:{role-in-group}:{optional-group-scope}"
   ]
}

Where

Parameter Description Values
group-name A string that defines the name of the group Any string not containing ‘:’
role-in-group A string that defines the role of the resource in the group, MUST be unique inside the same group Any string not containing ‘:’
optional-group-scope Optional string that defines the scope of the group, MUST be “device” or “node” “device” (default) or “node”

The colon character is therefore reserved and MUST not be used in any of the parameters listed.

group-name rules

role-in-group rules

NOTE: There are no standard roles (or reserved role names) defined in this document. However these may be defined in the future inside the NMOS parameters register.

optional-group-scope rules

NOTE: There might be a need for a “system” scope in the future (group across multiple nodes) but this is out of the natural grouping described in this document. The system scope may be defined in the future inside the NMOS parameters register.

Natural groups

Natural groups applies only to NMOS senders and receivers

Examples

1. Playout server sender with 1 video 2 audio

JSON tags for Video 1 sender

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "Playout Master:Primary"
   ]
}

JSON tags for Audio 1 sender

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "Playout Master:Audio 1 – 2ch"
   ]
}

JSON tags for Audio 2 sender

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "Playout Master:Audio 2 – 5.1ch"
   ]
}

2. MultiviewerPIP, receiver with 1 video 4 audio

JSON tags for Video 1 receiver

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "MV PIP 1:Video"
   ]
}

JSON tags for Audio 1 receiver

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "MV PIP 1:Audio 1"
   ]
}

JSON tags for Audio 2 receiver

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "MV PIP 1:Audio 2"
   ]
}

2. Multiple groups

Multiple groups are mainly for usage outside “natural grouping”.

JSON tags for Video 1 receiver and tally

"tags": {
   "urn:x-nmos:tag:grouphint/v1.0": [
      "MV PIP 1:Video",
      "tally:left:node"
   ]
}

This defines an extra membership to tally group valid for the entire node scope.

NMOS resource JSON samples

{
   "format": "urn:x-nmos:format:video",
   "caps": {},
   "device_id": "8570e409-eb39-4c28-b083-fb2be5d44abe",
   "transport": "urn:x-nmos:transport:rtp.mcast",
   "interface_bindings": [],
   "subscription": {
      "sender_id": null,
      "active": true
   },
   "id": "51e6b7ef-7061-4121-b8d3-426527d3ac4f",
   "version": "1525121173:668000000",
   "label": "GV[KIP_AMWA] Video 1",
   "description": "(KIP_AMWA@10.37.65.20) MV node receiver 1 ID VIDEO index:1",
   "tags": {
      "urn:x-nmos:tag:grouphint/v1.0": [
         "IP input 1:Video 1"
      ]
   }
}
{
   "format": "urn:x-nmos:format:audio",
   "caps": {},
   "device_id": "8570e409-eb39-4c28-b083-fb2be5d44abe",
   "transport": "urn:x-nmos:transport:rtp.mcast",
   "interface_bindings": [],
   "subscription": {
      "sender_id": null,
      "active": true
   },
   "id": "51e6b7ef-7061-4121-b8d3-426527d3ac4f",
   "version": "1525121173:668000000",
   "label": "GV[KIP_AMWA] Audio 1",
   "description": "(KIP_AMWA@10.37.65.20) MV node receiver 1 ID AUDIO index:1",
   "tags": {
      "urn:x-nmos:tag:grouphint/v1.0": [
         "IP input 1:Audio 1"
      ]
   }
}
{
   "format": "urn:x-nmos:format:audio",
   "caps": {},
   "device_id": "8570e409-eb39-4c28-b083-fb2be5d44abe",
   "transport": "urn:x-nmos:transport:rtp.mcast",
   "interface_bindings": [],
   "subscription": {
      "sender_id": null,
      "active": true
   },
   "id": "51e6b7ef-7061-4121-b8d3-426527d3ac4f",
   "version": "1525121173:668000000",
   "label": "GV[KIP_AMWA] Audio 2",
   "description": "(KIP_AMWA@10.37.65.20) MV node receiver 1 ID AUDIO index:2",
   "tags": {
      "urn:x-nmos:tag:grouphint/v1.0": [
         "IP input 1:Audio 2"
      ]
   }
}