Re: [Cellar] On the multiplicity of Info elements

Dave Rice <dave@dericed.com> Sun, 10 January 2016 18:35 UTC

Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 72EDE1A8946 for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:35:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=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 9VoLZiPoew_V for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:35:39 -0800 (PST)
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 466CF1A8906 for <cellar@ietf.org>; Sun, 10 Jan 2016 10:35:39 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:44148 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIKpz-003zL0-6l for cellar@ietf.org; Sun, 10 Jan 2016 13:35:38 -0500
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <568D6710.8000605@gmx.de>
Date: Sun, 10 Jan 2016 13:35:33 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
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: <http://mailarchive.ietf.org/arch/msg/cellar/bVwTRKL0FMfbxlibqPqFE4QHo84>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
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: Sun, 10 Jan 2016 18:35:41 -0000

> On Jan 6, 2016, at 2:12 PM, Sebastian G. <bastik> wrote:
> 
> 06.01.2016, 08:06 Dave Rice:
>> Here is a draft for an EBML Schema Attribute to be used in the
>> definition of EBML Elements for what I’m referring to as
>> Identically-Recurring Elements.
>> 
>> ==== A boolean to express if the EBML Element may occur within its
>> Parent Element more than once but that each recurrance within that
> 
> Is 'recurrance' spelled correctly? (Not a native speaker). 'recurrence'
> is suggested as search term suggestion.

fixed

>> Parent Element MUST be identical both in storage and semantics. Such
>> Elements are referred to as Identically-Recurring Elements. In this
>> case, identical copies of an EBML Element are permitted to be stored
>> multiple times within the same Parent Element in order to increase
>> data resillience and optimize the use of EBML in transmission.
> 
> 'resillience' seems to have an error. 'resilience’.

fixed

>> Identically-Recurring Elements SHOULD include a CRC-32 Element as a
>> Child Element. If a Parent Element contains more than one copy of an
>> Identically-Recurring Element which includes a CRC-32 Child Elememnt
> 
> s/Elememnt/Element

fixed

>> then the first instance of the Identically-Recurring Element with a
>> valid CRC-32 value should be used for interpretation. If a Parent
>> Element contains more than one copy of an Identically-Recurring
>> Element which does not contain a CRC-32 Child Elememnt then the first
> 
> s/Elememnt/Element

fixed

> 'If a Parent Element contains more than one copy of an
> Identically-Recurring Element which does not contain a CRC-32 Child
> Element "or if CRC-32 Child Elements are present but neither of those
> are valid" then the first instance of the Identically-Recurring Element
> should be used for interpretation.'
> 
> I took your sentence and added (noted by "") the case something would
> contain CRCs, but neither of them would be valid. Feel free to ignore
> this suggestion. It might be a rare case.
> 
> It is certainly possible to have it as separate sentence. Maybe it makes
> it easier to read. Maybe even easier to understand.
> 
>> instance of the Identically-Recurring Element should be used for
>> interpretation. If the `identical` attribute is not expressed for
>> that Element then that Element is considered to not have a
>> requirement for identical expression within the same Parent Element.
>> The `identical` attribute is only valid if the Element is not set to
>> `multiple`, otherwise the `identical` attribute shall be ignored. 
>> ====
>> 
>> The text may be seen in context with the other attributes at
>> https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f3f50e58d4057208325f892/specification.markdown#ebml-schema-element-attributes
>> 
>> Some pending questions:
>> - Should Identically-Recurring Elements recommend or mandate inclusion of a CRC-32? I suggestion recommend and not mandate for reverse compability.
> 
> Backward compatibility seems to be a higher goal than CRCs. I think it
> should be even possible to play a file without checking CRCs, which does
> not contradict having CRCs in the first place.

I agree.

> Like Timothy B. Terriberry points out, reasons for not having CRCs on
> those elements should be given in the specification.

Based on Tim and Sebastian’s comments I extended the sentence to be:

"Identically-Recurring Elements SHOULD include a CRC-32 Element as a Child Element; this is especially recommended when EBML is used for long-term storage or transmission.”

Listing reasons to not have a CRC Child Element seems awkward. Realistically I think the primary reason that CRC elements are not used is because many muxers don’t support adding them, although the EBML specification has long contained: "All level 1 elements SHOULD include a CRC-32.” Instead of addressing reasons why not I added some reasons for why with references to ong-term storage and transmission.

>> - Is 'Identically-Recurring Elements’ a decent short name for these types of Elements?
> 
> I have no objection. IRE could be used when talking about those
> elements, unless it is within official documents.
> 
>> - Should the ‘identical’ attribute apply to only Master-elements? I think it could be open. I could see scenarios to place the CRC-32 both at the beginning and end of the Parent Element.
> 
> I have not enough knowledge to make an informed statement.

Unless there’s a good reason to do so, I won’t restrict the ‘identical’ attribute to certain Element Types, thus the specifications for EBML formats can decide how to use this.

>> - I’m thinking that ‘multiple’ means the Element may recur within its Parent Element and means that there are multiple semantics. I suggest that ‘identical’ Elements not be ‘multiple’ as an ‘identical’ Element recurs but only with a single and non-multiple semantic meaning. OK?
> 
> I have not enough knowledge to make an informed statement.
> 
>> - If there are multiple copies of identical Elements, I wrote in the draft that if there’s a CRC than the first copy with valid CRC be used, else the first copy be used. Potentially we could say first valid copy be used, but then need to say fully what valid means.
> 
> I'm neutral, but agree that if just valid is used it would have to be
> explained what valid means.
> 
>> - I agree that an identical Element should not be used to change the semantics over time.
> 
> Agreed.

Here is a new version for review:

Definition for a new EBML Schema Attribute: identical
===============
A boolean to express if the EBML Element may occur within its Parent Element more than once but that each recurrence within that Parent Element MUST be identical both in storage and semantics. Such Elements are referred to as Identically-Recurring Elements. In this case, identical copies of an EBML Element are permitted to be stored multiple times within the same Parent Element in order to increase data resilience and optimize the use of EBML in transmission. Identically-Recurring Elements SHOULD include a CRC-32 Element as a Child Element; this is especially recommended when EBML is used for long-term storage or transmission. If a Parent Element contains more than one copy of an Identically-Recurring Element which includes a CRC-32 Child Element then the first instance of the Identically-Recurring Element with a valid CRC-32 value should be used for interpretation. If a Parent Element contains more than one copy of an Identically-Recurring Element which does not contain a CRC-32 Child Element or if CRC-32 Child Elements are present but none are valid then the first instance of the Identically-Recurring Element should be used for interpretation. If the `identical` attribute is not expressed for that Element then that Element is considered to not have a requirement for identical expression within the same Parent Element. The `identical` attribute is only valid if the Element is not set to `multiple`, otherwise the `identical` attribute shall be ignored.
===============

Dave Rice