Re: [Cellar] QuickTime timecode tracks in Matroska, was Ancillary data in Matroska

Dave Rice <dave@dericed.com> Mon, 20 March 2017 20:37 UTC

Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D332B12706D for <cellar@ietfa.amsl.com>; Mon, 20 Mar 2017 13:37:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level:
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lnos2-26DsjO for <cellar@ietfa.amsl.com>; Mon, 20 Mar 2017 13:37:06 -0700 (PDT)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B610126C0F for <cellar@ietf.org>; Mon, 20 Mar 2017 13:37:06 -0700 (PDT)
Received: from [146.96.19.240] (port=20575 helo=[10.10.201.33]) by server172.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from <dave@dericed.com>) id 1cq436-002skc-9d; Mon, 20 Mar 2017 16:37:05 -0400
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.0 \(3226\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <43056655-cf09-9d54-6552-4ed4b655e74f@mediaarea.net>
Date: Mon, 20 Mar 2017 16:37:02 -0400
Cc: cellar@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <34CA7943-497F-449A-81DA-3237CB87BDD7@dericed.com>
References: <2651a6f3-9c9a-6f76-2ee7-4d5c23b1ce57@mediaarea.net> <BFB215F1-1254-409C-817A-7AB1A772437A@dericed.com> <922C5404-EC19-462D-A836-C952E66C2FD8@dericed.com> <B3BE02C3-9402-4802-BC9E-3F95020C641D@dericed.com> <9244b201-9097-365f-b7da-f2d8553616ee@mediaarea.net> <79FE60E9-88D8-4922-AE76-9D1924E1D6EB@dericed.com> <43056655-cf09-9d54-6552-4ed4b655e74f@mediaarea.net>
To: Jerome Martinez <Jerome@MediaArea.net>
X-Mailer: Apple Mail (2.3226)
X-OutGoing-Spam-Status: No, score=-2.9
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/nGYDYfMk8F0WAJjW2EzLFwKLOoQ>
Subject: Re: [Cellar] QuickTime timecode tracks in Matroska, was Ancillary data in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 20 Mar 2017 20:37:08 -0000

> On Mar 14, 2017, at 3:57 PM, Jerome Martinez <Jerome@MediaArea.net> wrote:
> 
> Le 14/03/2017 à 20:45, Dave Rice a écrit :
>> [...]
>> 
>>> Time code may be stripped (only the first time code is stored and other time code must be computed from it + header metadata), and there is no way to know it in Matroska : QuickTime has the list of blocks in the track header so the player knows if the the time code is stripped (1 block of 4 bytes) or not (more than 1 block), this is not the case with Matroska.
>>> How could we indicate to the player that the time code is stripped (=only one value stored, then player should compute value of other time code frames)?
>> 
>> 
>> Since the update proposal defines a new media type (timecode) it is possible to define a Timecode Master element (as similar done with Audio and Video) to store needed context.
>> 
>> OTOH I don’t think I’ve ever seen a QuickTime timecode track that was non-stripped.
> 
> OK, I need to check my files but I am pretty sure I have some.
> 
>> I’ve only seen a single value stored but then sometimes an edit list used to alter the ordering of the timecode (in case when its non-sequential). For Matroska possibly it could simply store a new timecode Block at any case when it is not sequential.
> 
> What about seeking?

Isn't the seeking similar to QuickTime. In QuickTime you'd need the offset table of the timecode track to understand the number and location of all timecode samples. In Matroska you would use the associated CuePoints of the timecode track for the same reference. By parsing Cues the reader should be able to determine if the timecode is stripped or not and if not then have the CueTimes for each associated timecode Cluster.

> If you have a timecode block at the first frame and also at the middle of the file, how a player can know that there is a timecode block breaking the sequential order without parsing the whole file when there is a seek request to the last minute of content? In that case, time code real value would be set to "waiting for new block" (and this block never comes). I don't think that forcing full parsing of the file with time code for seeking is a good solution.

Same. But in the case of video if you seek to a P-frame then you have to go backwards and decode from the I-frame. Similarly if seeking to a timepoint without a timecode Cluster (analogous to a P-frame), then the reader would have to use the Cues to decode the prior timecode Cluster (analogous to I-frame) in order to determine the timecode value of the seek point.

Dave Rice