moq-wg / catalog-format

A common catalog format for streaming formats operating over moq-transport
Other
5 stars 0 forks source link

Add a field to allow suggested relative track prioritization #46

Open wilaw opened 2 months ago

wilaw commented 2 months ago

The use case is a client subscribing to 3 tracks concurrently (say, audio, video and slides) but wanting to request the relay, under congestion conditions, to send the audio with higher priority than the slides and the slides with higher priority than the video. It might be a simple numerical value, with lower numbers equalling higher priority and could look something like this:

{
  "version": 1,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "supportsDeltaUpdates": true,
  "commonTrackFields": {
     "renderGroup": 1,
     "packaging": "loc"
  },
  "tracks":[
    {
      "name": "video-hd",
      "selectionParams": {"codec":"av01","width":1920,"height":1080,"bitrate":5000000,"framerate":30},
      "altGroup":1,
      relativeTrackPriority: 4
    },
    {
      "name": "video-sd",
      "selectionParams": {"codec":"av01","width":720,"height":640,"bitrate":3000000,"framerate":30},
      "altGroup":1,
      relativeTrackPriority: 3
    },
    {
      "name": "slides",
      "selectionParams": {"codec":"av01","width":1920,"height":1080"bitrate":1000000,"framerate":15},
      relativeTrackPriority: 2
    },
    {
      "name": "audio",
      "selectionParams":{"codec":"opus","samplerate":48000,"channelConfig":"2","bitrate":32000},
      relativeTrackPriority: 1
    }
   ]
}

Catalogs SHOULD indicate a relativeTrackPriority for all tracks if they supply if for any track, otherwise the client is left in an ambiguous state. Tracks MAY be assigned equal priority. Absence of a relativeTrackPriority among all tracks value SHOULD be interpreted to all tracks having an equal priority.

This issue assumes MOQT support for relative track prioritization will eventually be added :)

suhasHere commented 2 months ago

+1 .. This is very much needed.