Re: [Cellar] Matroska Elements to support frame side data

Dave Rice <> Sat, 03 November 2018 23:43 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3A3F8128766 for <>; Sat, 3 Nov 2018 16:43:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.121
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id AHLEv0gn1YBT for <>; Sat, 3 Nov 2018 16:43:31 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 5AD53127598 for <>; Sat, 3 Nov 2018 16:43:31 -0700 (PDT)
Received: from ([]:40327 helo=[]) by with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <>) id 1gJ5Zf-000aXq-3J; Sat, 03 Nov 2018 19:43:28 -0400
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
From: Dave Rice <>
In-Reply-To: <>
Date: Sat, 3 Nov 2018 19:43:25 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <>
To: Tobias Rapp <>
X-Mailer: Apple Mail (2.3445.100.39)
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 -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
X-From-Rewrite: unmodified, already matched
Archived-At: <>
Subject: Re: [Cellar] Matroska Elements to support frame side data
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 03 Nov 2018 23:43:32 -0000

> On Nov 2, 2018, at 5:31 AM, Tobias Rapp <> wrote:
> Hi Dave,
> On 01.11.2018 15:03, Dave Rice wrote:
>> [...]
>> Here are a few use cases where I think this structure could be helpful:
>> === timecode
>> We’ve made many starts and stops at defining how to store timecode in Matroska but haven’t found consensus or resolution on those attempts. With the Metadata Element I think a timecode value could be stored such as
>> Cluster/
>> Timestamp=01:00:00.000
>> BlockGroup/
>> Block/
>> ...
>> Metadata/
>> MetadataName=“timecode"
>> MetadataString="01:23:45;12”
> while I think that frame side data can be useful for the DPX scenario mentioned later, I see problems with storing timecode information that way. Shall timecode be attached to the video or audio track? Shall there be some sub-classification for VITC/LTC/other timecode sources?
> Also I would prefer the timecode value to be stored as a number instead of a string representation, for the same reason that the Cluster Timestamp element uses a numerical representation: It makes processing a lot easier.

If the structure is sufficient then perhaps is better discussed in how to define the MetadataName values. For instance, we could define:
where MetadataBinary is set to a binary value as defined by SMPTE ST 314M-2005 Sec "Time code pack (TC)”.

In other thoughts on this suggestion, I think it could make it difficult to easily understand if a file has a particular type of side data. For instance if only a few Clusters somewhere in the Segment contain a certain type of side data, it would require parsing every Cluster to know what types of side data are available. This uncertainly wouldn’t be the same issue if the side data was itself a Track.