Re: ReferenceTimecode tracks in Matroska proposal
Kieran O Leary <[email protected]> Mon, 11 Jan 2016 00:34:45 +0000
| Newsgroups | gmane.comp.multimedia.matroska.devel |
|---|---|
| Message-ID | <CAO7v-1R6J3nkKBWK8vCnKaz24ZBQAbkNxBr_-otNAQ6y-QeTmg@mail.gmail.com> |
On 10 Jan 2016 10:57 pm, "Dave Rice" <[email protected]> wrote: > > Hi all, Hi, I don't have much to add except that I'm delighted to see this addressed and it looks like a great addition to the matroska format. Some comments further down. > > Here is an early draft of Elements for managing ReferenceTimecode tracks. Matroska uses the term 'Timecode' to reference presentation timestamps, whereas other formats (QuickTime, MXF) use 'Timecode' to reference a time reference that is added to the timeline which is inpendent of the presentation (i.e. a QuickTime file with a timecode track that starts at one hour aka 1:00:00;00 would not cause a one hour delay before playback starts). In the context of Matroska I am using ReferenceTimecode (for now) to refer to QuickTime/MXF style timecode tracks. > > TrackType: > Add to the TrackType definition to list "0x13: timecode," > > CodecID: > Add the following timecode Codec IDs. > Codec ID | Name | Description > T_QUICKTIME | QuickTime Timecode | Timecode data as stored in QuickTime, e.q. tmcd. The CodecPrivate contains all additional data that is stored in the 'tcmd' (timecode) atom in the QuickTime file. > Others? LTC? VITC? I have mostly encountered QuickTime tmcd info thus far. I haven't reformatted any mxfs as mkv yet, but tmcd info within matroska would be fantastic from my perspective. > > Proposed elements under TrackEntry: > > Element Name: ReferenceTimecode > Level: 3 > ID: [EF] > Mandatory: - > Multiple: - > Default: - > Type: m > Description: ReferenceTimecode settings > > Element Name: ReferenceTimecodeForm > Level: 4 > ID: [EF][A1] > Mandatory: mand. > Multiple: - > Range: 0-2 > Default: 0 > Type: u > Description: Indicates the form of expression used to present the timecode (using HH for hours, MM for minutes, SS for seconds, mmm for milliseconds, ff for frames). > 0: HH:MM:SS.mmm > 1: HH:MM:SS:ff (non-drop frame) > 2: HH:MM:SS;ff (drop frame) > I don't know if this flag is explicitly mentioned in a QuickTime container,but it seems to me to be a great idea to flag this message info. > Element Name: ReferenceTimecode24HourMax > Level: 4 > ID: [EF][A2] > Mandatory: mand. > Multiple: - > Range: 0-1 > Default: 0 > Type: u > Description: Indicates if the timecode should revert to a zero-value at the time reference of 24 hours. Set to 1 if the ReferenceTimecode should use a maximum value of 24 hours and wrap values back to zero hours at that point. > > For storage of ReferenceTimecode values in Blocks, I suggest storing a signed integer (ReferenceTimecode values may be negative). The stored signed integer would be the frame number (players supporting ReferenceTimecode should convert the frame number accordingly to a drop-frame or non-drop-frame display). So if ReferenceTimecodeForm=1, the Block stores 0x00BC, and the frame duration is NTSC, then the displayed value would be 00:00:06:08. The next value 00:00:06:09, etc. > > I propose that one block per ReferenceTimecode not be required for simple incrementing ReferenceTimecode, but that the ReferenceTimecode value of the next video frame be considered to be either 1 greater than the previous value (if ReferenceTimecodeForm is 1 or 2) or increased by the duration of the corresponding video frame. > > If the ReferenceTimecode is non-continuous then a new ReferenceTimecode value in a new Block with a new Timecode (Matroska meaning of Timecode) could be inserted at the point of the discontinuity. > > Comments? > Dave Rice Best, Kieran. _______________________________________________ Matroska-devel mailing list [email protected] http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel