Details about signaling the source of the timecode#1026
Details about signaling the source of the timecode#1026JeromeMartinez wants to merge 1 commit intoietf-wg-cellar:masterfrom
Conversation
|
No sure what you mean by "too much defined with a specific value in other parts of Matroska specs". It's an optional value that is used to have a human friendly name. That element was added in #287 with the other I'm OK with adding the new (better) element. But it should deprecate the other one or mention it has prority over the old one. Like we do we BCP47 language elements:
|
As far as I understand,
I was thinking to change the definition of |
Indeed, the main difference in the definition is "type" versus "name". But we usually only put things in Tracks that are necessary for the proper playback or user identification. What you want seem to go rather in Tags which could have many descriptions in many languages. And this is possible now with the If you need information that are necessary for the proper processing of the additional data (this is from VTIC so it works this way and not that way) that should either go in a |
|
As discussed during IETF meeting, I'll change this PR to define tags and provide a list of "sources" vocabulary. |
|
I changed the purpose of this PR, using |
575ff87 to
3749f00
Compare
cellar-codec/block_additional_mappings/smpte-st12-1-timecode.md
Outdated
Show resolved
Hide resolved
| - "VITC" for a Vertical Interval Time Code, frame or firest field of an interlaced content, as defined in SMPTE ST 12-1 | ||
| - "VITC2" for a Vertical Interval Time Code, second field of an interlaced content, as defined in SMPTE ST 12-1 | ||
| - "ATC-LTC" for a Linear Time Code as defined in SMPTE ST 12-2 (formerly SMPTE RP 188) | ||
| - "ATC-VITC" for a Vertical Interval Time Code, frame or first field of an interlaced content, as defined in SMPTE ST 12-2 (formerly SMPTE RP 188) |
There was a problem hiding this comment.
IIRC the SMPTE v12-2 value is "ATC VITC" (space not hyphen) but I don't have a copy to confirm.
There was a problem hiding this comment.
IIRC the SMPTE v12-2 value is "ATC VITC" (space not hyphen)
ST2-2 indicates an underscore, so I switched to an underscore.
ST2-2 also uses ATC_VITC1 for the first VITC but ST2-1 uses "VITC" alone, whatever is the field, and also references 60 fps content, so I prefer to use ATC_VITC here for coherency and readiness with 60 fps content (and also 30 fps progressive, no "field 1" also for it).
cellar-codec/block_additional_mappings/smpte-st12-1-timecode.md
Outdated
Show resolved
Hide resolved
cellar-codec/block_additional_mappings/smpte-st12-1-timecode.md
Outdated
Show resolved
Hide resolved
|
|
||
| ### Signaling the source of the timecode | ||
|
|
||
| Source of the timecode SHOULD be signaled by the `TITLE` tag associated to the Block Additional (using `TagTrackUID` and `TagBlockAddIDValue`). |
There was a problem hiding this comment.
I recommend having a hint that there should just be 0 or 1 labels as currently the wording implies that many is ok.
There was a problem hiding this comment.
currently the wording implies that many is ok.
It is on purpose, e.g. SDTI or System Scheme 1 may have more than 1 time code.
There was a problem hiding this comment.
I meant there should only be one label (TITLE) per timecode. Not:
<Tags>
<Tag>
<TagTrackUID>102</TagTrackUID>
<TagName>TITLE</TagName>
<TagString>LTC</TagString>
</Tag>
<Tag>
<TagTrackUID>102</TagTrackUID>
<TagName>TITLE</TagName>
<TagString>VITC2</TagString>
</Tag>
</Tags>Right? Else I think it may complicate display if we have to prep for >1 labels per timecode source.
There was a problem hiding this comment.
I meant there should only be one label (TITLE) per timecode. Not:
We must support your example, because it is per video track and you can have more than 1 tc per track
Your example is not good, TagBlockAddIDValue is missing.
<Tags>
<Tag>
<TagTrackUID>1</TagTrackUID>
<TagBlockAddIDValue>101</TagBlockAddIDValue>
<TagName>TITLE</TagName>
<TagString>LTC</TagString>
</Tag>
<Tag>
<TagTrackUID>1</TagTrackUID>
<TagBlockAddIDValue>102</TagBlockAddIDValue>
<TagName>TITLE</TagName>
<TagString>VITC2</TagString>
</Tag>
</Tags>
There was a problem hiding this comment.
In 1 101 TITLE LTC 1 102 TITLE VITC2 you're saying that 101 is LTC and 102 is VITC2 which makes sense. I'm more worried about saying that 101 is LTC AND VITC2.
There was a problem hiding this comment.
Tag can be reused with different TagLanguage, maybe too strong to forbid other languages, what about TagLanguage == und (the default) means that this is the source, and we let TITLE in other languages available for whatever the user wants?
There was a problem hiding this comment.
I'd prefer that our vocabulary for identifying the source of the timecode be considered more of an identifier than a English phase. IMHO to say for the same timecode expression that TITLE="LTC" AND TITRE="Code temporel linéaire" adds a lot of complication. We already have just a short list of under a dozen timecode sources, to open it up widely to have any languages version of that expression and any languages expression of what a TITLE is, would make it quite messy.
|
|
||
| Source of the timecode SHOULD be signaled by the `TITLE` tag associated to the Block Additional (using `TagTrackUID` and `TagBlockAddIDValue`). | ||
|
|
||
| The following vocabulary is RECOMMENDED for known sources: |
There was a problem hiding this comment.
What's an example of when to use an unrecommended term?
There was a problem hiding this comment.
What's an example of when to use an unrecommended term?
When a new kind of source appear, when someone wants something custom.
I would not enforce a vocabulary, it is only a hint and is not mandatory for having the value itself.
| - "AES3" for a timecode originally embedded in an AES3 digital audio connection | ||
| - "ABSOLUTE" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a tape | ||
| - "PROGRAM" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a program | ||
| - "RUNNING" for a timecode originally embedded in the metadata of a content which indicates the time code from un unspecified start |
There was a problem hiding this comment.
These last ones seem to be more about the content of the timecode rather than the source. Are they out of scope here?
There was a problem hiding this comment.
These last ones seem to be more about the content of the timecode rather than the source.
It is the name for DAT format. How to differentiate the 3 different timecodes without having a name here?
I am not in favor of having multiple tags depending on if it is the exact technical source or if it is the content, players would never implement something so complicated for a small usage, I argue in favor of keeping it simple and generic for flagging a source in an unique manner.
There was a problem hiding this comment.
I suppose the name is "Digital Audio Tape (DAT)" but this is a proprietary SONY design that has been publicly described and reverse engineered. The documentation is all unofficial as far as I know. Do you have a good citation? Maybe it makes sense to name-drop DAT as the inspiration for these labels? Minidisc may have them too.
There was a problem hiding this comment.
I suppose the name is "Digital Audio Tape (DAT)"
Yes.
Maybe it makes sense to name-drop DAT as the inspiration for these labels
Will do, but not in the title itself as I would like that it does not not depend on a format.
3749f00 to
86946a5
Compare
JeromeMartinez
left a comment
There was a problem hiding this comment.
I also removed AES3 because after checking more the spec, what is called a time code is actually a timestamp, so not topic here.
|
|
||
| ### Signaling the source of the timecode | ||
|
|
||
| Source of the timecode SHOULD be signaled by the `TITLE` tag associated to the Block Additional (using `TagTrackUID` and `TagBlockAddIDValue`). |
There was a problem hiding this comment.
currently the wording implies that many is ok.
It is on purpose, e.g. SDTI or System Scheme 1 may have more than 1 time code.
|
|
||
| Source of the timecode SHOULD be signaled by the `TITLE` tag associated to the Block Additional (using `TagTrackUID` and `TagBlockAddIDValue`). | ||
|
|
||
| The following vocabulary is RECOMMENDED for known sources: |
There was a problem hiding this comment.
What's an example of when to use an unrecommended term?
When a new kind of source appear, when someone wants something custom.
I would not enforce a vocabulary, it is only a hint and is not mandatory for having the value itself.
| - "VITC" for a Vertical Interval Time Code, frame or firest field of an interlaced content, as defined in SMPTE ST 12-1 | ||
| - "VITC2" for a Vertical Interval Time Code, second field of an interlaced content, as defined in SMPTE ST 12-1 | ||
| - "ATC-LTC" for a Linear Time Code as defined in SMPTE ST 12-2 (formerly SMPTE RP 188) | ||
| - "ATC-VITC" for a Vertical Interval Time Code, frame or first field of an interlaced content, as defined in SMPTE ST 12-2 (formerly SMPTE RP 188) |
There was a problem hiding this comment.
IIRC the SMPTE v12-2 value is "ATC VITC" (space not hyphen)
ST2-2 indicates an underscore, so I switched to an underscore.
ST2-2 also uses ATC_VITC1 for the first VITC but ST2-1 uses "VITC" alone, whatever is the field, and also references 60 fps content, so I prefer to use ATC_VITC here for coherency and readiness with 60 fps content (and also 30 fps progressive, no "field 1" also for it).
| - "AES3" for a timecode originally embedded in an AES3 digital audio connection | ||
| - "ABSOLUTE" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a tape | ||
| - "PROGRAM" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a program | ||
| - "RUNNING" for a timecode originally embedded in the metadata of a content which indicates the time code from un unspecified start |
There was a problem hiding this comment.
These last ones seem to be more about the content of the timecode rather than the source.
It is the name for DAT format. How to differentiate the 3 different timecodes without having a name here?
I am not in favor of having multiple tags depending on if it is the exact technical source or if it is the content, players would never implement something so complicated for a small usage, I argue in favor of keeping it simple and generic for flagging a source in an unique manner.
|
|
||
| ### Signaling the source of the timecode | ||
|
|
||
| Source of the timecode SHOULD be signaled by the `TITLE` tag associated to the Block Additional (using `TagTrackUID` and `TagBlockAddIDValue`). |
There was a problem hiding this comment.
I meant there should only be one label (TITLE) per timecode. Not:
<Tags>
<Tag>
<TagTrackUID>102</TagTrackUID>
<TagName>TITLE</TagName>
<TagString>LTC</TagString>
</Tag>
<Tag>
<TagTrackUID>102</TagTrackUID>
<TagName>TITLE</TagName>
<TagString>VITC2</TagString>
</Tag>
</Tags>Right? Else I think it may complicate display if we have to prep for >1 labels per timecode source.
| - "AES3" for a timecode originally embedded in an AES3 digital audio connection | ||
| - "ABSOLUTE" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a tape | ||
| - "PROGRAM" for a timecode originally embedded in the metadata of a content which indicates the time code from the beginning of a program | ||
| - "RUNNING" for a timecode originally embedded in the metadata of a content which indicates the time code from un unspecified start |
There was a problem hiding this comment.
I suppose the name is "Digital Audio Tape (DAT)" but this is a proprietary SONY design that has been publicly described and reverse engineered. The documentation is all unofficial as far as I know. Do you have a good citation? Maybe it makes sense to name-drop DAT as the inspiration for these labels? Minidisc may have them too.
| - "ATC_LTC" for a Linear Time Code as defined in SMPTE ST 12-2 [@!SMPTE.ST12-2] (formerly SMPTE RP 188) | ||
| - "ATC_VITC" for a Vertical Interval Time Code, progressive frame or first field of an interlaced content, as defined in SMPTE ST 12-2 [@!SMPTE.ST12-2] (formerly SMPTE RP 188) | ||
| - "ATC_VITC2" for a Vertical Interval Time Code, second field of an interlaced content, as defined in SMPTE ST 12-2 [@!SMPTE.ST12-2] (formerly SMPTE RP 188) | ||
| - "CTL" for a timecode originally embedded in the control track of a videotape |
There was a problem hiding this comment.
Possibly remove? Seems uncapturable.
There was a problem hiding this comment.
Possibly remove? Seems uncapturable.
I am in favor of keeping "CTL" even if we don't (currently) catch it, it may be the case in the future and/or better to reserve this name for something which already existed in the past.
There was a problem hiding this comment.
Agreed that there should be a limit of one label (TITLE) per timecode.
Overall, this work looks great and will be very helpful for digital preservation/archiving workflows. Thanks to Dave and Jerome for their efforts
|
Also please add:
I'm not sure what citation to use here. SMPTE 12-1 has the definition for LTC but not the transmission of 422. There's the Sony 9-Pin Remote Control Protocol (P2 / Protocol-422) but I can't find a linkable citation. |
I am not confortable with that, RS-422 seems to be only the electrical layer, and then Sony has its protocol. So I would prefer to use the protocol name + source e.g. "9PIN_VITC". Thoughts? |
|
What about "9PIN_SERIAL" ? |
86946a5 to
8debd6e
Compare
I am not in favor of a too long name, also with underscore, for the protocol name, I prefer to use the underscore for separating the source protocol from the type inside this protocol. Check the update, I used "9PIN_" + the item in 9-pin (to be clarified, I don't remember how exactly it was captured, but at least I see in the reverse engineered protocol description that there may be many time codes). For coherency, I changed also the DAT related timecodes, prefixed with "DAT_". I also added more references, Wikipedia when nothing better is found. @ all, please review again. |
8debd6e to
a8ab531
Compare
|
I'm happy with these changes. Dave discussed the addition of a 9PIN that lacks content. With the addition of that I think this is ready. |
a8ab531 to
c649dad
Compare
Right, I don't succeed to find the exact context with the DeckLink API, I added "9PIN". |
|
Sorry I had a typo in my previous comment. I meant to say "9PIN that lacks content". The addition of "9PIN" addresses this. thanks. |
Add something similar to
\Segment\Tracks\TrackEntry\Name.While trying to change
\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDNamedefinition, I remarked that this block is too much defined with a specific value in other parts of Matroska specs (it should also be utf-8 and not non utf-8 string), so I switched to a new block identifier. This would also avoid to have an errata for this update.