Skip to content

Comments

Define template for Media Timeline track#127

Open
suhasHere wants to merge 3 commits intomainfrom
snk-105
Open

Define template for Media Timeline track#127
suhasHere wants to merge 3 commits intomainfrom
snk-105

Conversation

@suhasHere
Copy link
Contributor

Fixes #105

Copy link
Collaborator

@wilaw wilaw left a comment

Choose a reason for hiding this comment

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

Thanks for your work on this. My primary feedback is that the template version of the mediatimeline can simply be defined as a new packaging type, to differentiate it form the listtype. For example, a mediatimeline entry in the catalog could look like this:

{
  "version": 1,
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "history",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "mediatimelinetemplate",
      "mimetype": "application/json",
      "depends": ["1080p-video","audio"]
    },

and then the mediatimeline payload could look like this

{
    "startMediaTime": 0,
    "deltaMediaTime": 2002,
    "startLocation": [0, 0],
    "deltaLocation": [1, 0],
    "startWallclock": 1759924158381,
    "deltaWallclock": 2002
}

I also suggest we can remove hybrid mediatimelines for now for simplicity. If we need them in the future, we can just add them as a new packaging type.

Comment on lines +230 to +236
| Start media time | startMediaTime | {{startmediatime}} |
| Delta media time | deltaMediaTime | {{deltamediatime}} |
| Start location | startLocation | {{startlocation}} |
| Delta location | deltaLocation | {{deltalocation}} |
| Start wallclock | startWallclock | {{startwallclock}} |
| Delta wallclock | deltaWallclock | {{deltawallclock}} |
| Entry count | count | {{entrycount}} |
Copy link
Collaborator

Choose a reason for hiding this comment

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

These should not be defined in this table, as you are not using them directly in the catalog. Instead they should be defined as KVP in the JSON definition of the MediaTimeline section of the spec.

Comment on lines +571 to +575
Location: T Required: Optional JSON Type: Number

The number of entries represented by a template in a templated media timeline.
This field MUST only appear within a template object in a media timeline track
payload.
Copy link
Collaborator

Choose a reason for hiding this comment

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

To be meaningful, this field needs a reference timestamp at which this count was accurate.

Comment on lines +1168 to +1194
### Hybrid format {#hybridformat}
Publishers MAY combine templates with explicit entries. When both are present,
the explicit entries in the "entries" array represent additional records that
extend beyond the template range. Explicit entries are appended after the
template-generated entries.

~~~json
{
"template": {
"startMediaTime": 0,
"deltaMediaTime": 2002,
"startLocation": [0, 0],
"deltaLocation": [1, 0],
"startWallclock": 1759924158381,
"deltaWallclock": 2002,
"count": 100
},
"entries": [
[200200, [100, 0], 1759924358381],
[203000, [101, 0], 1759924361181]
]
}
~~~

In this example, entries 0-99 are calculated from the template, and entries
100-101 are provided explicitly with non-constant intervals.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we should remove Hybrid format for now. It complicates the implementation. A template is used for highly regular segment production. The explicit entry format can be used for everything else. We can add it in later if there is a strong implementation use-case.

Comment on lines +570 to +575
### Entry count {#entrycount}
Location: T Required: Optional JSON Type: Number

The number of entries represented by a template in a templated media timeline.
This field MUST only appear within a template object in a media timeline track
payload.
Copy link
Collaborator

Choose a reason for hiding this comment

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

We can omit this entry count field. The whole point of a template is that it is inviolate and need only be transmitted once.

Comment on lines +1044 to +1052
"template": {
"startMediaTime": 0,
"deltaMediaTime": 2002,
"startLocation": [0, 0],
"deltaLocation": [1, 0],
"startWallclock": 1759924158381,
"deltaWallclock": 2002,
"count": 1800
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think these atteibutes should be in the MediaTimeline Track entry in the catalog. There is no need to create a separate track to transmit this informaiton.

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.

Think about template based media timeline track design

2 participants