Re: [Cellar] On the multiplicity of Info elements

Steve Lhomme <slhomme@matroska.org> Mon, 04 January 2016 07:11 UTC

Return-Path: <slhomme@matroska.org>
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 E7DE51A1F73 for <cellar@ietfa.amsl.com>; Sun, 3 Jan 2016 23:11:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] 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 R-eGSYgLKkFz for <cellar@ietfa.amsl.com>; Sun, 3 Jan 2016 23:11:24 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AA5D11A1F70 for <cellar@ietf.org>; Sun, 3 Jan 2016 23:11:24 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id a123so86589898vkh.1 for <cellar@ietf.org>; Sun, 03 Jan 2016 23:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Fi8GzExQLYQicykH2vDktlYW87sUnX70B7mit4CAgBM=; b=oMEHGD8Yk7id+zs/ps4/yb4ZHUYwKhjokxyTweIwUBu8Vd/97jfbOmOG0TyReDFhfE a/XYVwewBuUZ/nokXqNAFM4Fvs9usL3h0NlF+78uA8OK93nY9EHjrwy5TF90t+BSO64B 0w94LM9w6U6O46PCPUraKmEYtWi5aSa9sqTTkVD0chXSQgAF4hz0yQW2yHPOs16z9H60 cWYtquwCXiuEkWZjqIBl9jwt72l3UjOMiyoECaztStQjkJd2LuViukX3jqlgxd3/61XT sqHFu5Rh7TqZw7NQ2oio5qkYLfMQ3r0fraxclJhEEMR7oeLKSLrelIItB4uaDvxCYd+z 9wmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Fi8GzExQLYQicykH2vDktlYW87sUnX70B7mit4CAgBM=; b=XiLk3gXr7l9j7eQmk4qmjycv18QFeuqx7bAVQdJ79HkXFIOcSm4N7LKGZivGaj6rv8 ebqT1R82JRuBEnIiudf/vEwZijXJ87I6BP2kqlwbZlio0Ll7ca9NaS2pV/H+xwEnlyb9 TinPaMDLpx8/34hkb+05Fg5HhN7XVVdmCJxMKwAExoSMHzB2S4cwGkF+D12dxOfkI5l7 Z17vQScMDUIZu8aoOW3aZmsS9Pz/UzTIhg+tB2irxK5m7etrR6AkjWrdMx400Wc/j0hw oZNRUW8H1quUqrArD8i43h7/zV7v3UHqFrxWaIwVE9GnjVGu6X0Fell4dlP6hsNsbFYF vKsg==
X-Gm-Message-State: ALoCoQm8MTip3bZcCIrpJz+1RiakQCG/msizitDC9BLXPjor9xiuW8CVNJz8wHNIaMIuXZeWTfACl9DrgJP+tuzdBaGj9pnZAw==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr58498239vkf.157.1451891483772; Sun, 03 Jan 2016 23:11:23 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 3 Jan 2016 23:11:23 -0800 (PST)
In-Reply-To: <C0E5EBA2-2A56-46F9-A049-629EFB11F280@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>
Date: Mon, 04 Jan 2016 08:11:23 +0100
Message-ID: <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/pq5ooftC5DYBqn2MtIEU49rNlkY>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
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: Mon, 04 Jan 2016 07:11:26 -0000

2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>> Hey,
>>>
>>> I only remember the discussion around Tracks being multiple, not
>>> particularly for the other ones. Our intent way back when was to allow
>>> muxers to write multiple instances of _the same information_ in
>>> different places in order to make the file more resilient against
>>> damage or incomplete downloads with protocols like BitTorrent.
>>
>> Yes, that's the idea for the Track Info as it's vital to the usability
>> of the file, as well as the Segment Info. I'm not sure it's used in
>> practice though.
>> Since the goal of CELLAR is archiving solutions it may still make sense.
>
> Perhaps to declare that an Element may be repeated but must be repeated identically should be a new EBML Element Attributes, so there can be a distinction between the repeatability Segment/Info and the repeatability of SimpleBlock.

That might be good. After all not elements make sense as repeated
ones. For example in Matroska you don't want a Cluster (timestamped
data) to be repeated.

>>> The same reasoning could be applied to Info. Both elements are
>>> absolutely crucial to playback; the other level 1 elements safe for the
>>> clusters simply aren’t.
>
> But what should happen when the read finds differences in repeated-but-should-be-identical elements?

Good question. Maybe repeated elements should have a CRC ? If a CRC is
wrong (or not found) the parser could look for a copy.

> For a scenario of two differing Info Elements, VLC and FFmpeg use different Info Elements. Which use is correct? Since the use of repeated-identical elements is resilience a deviation between the two could be expected, so we should suggest how the reader should respond.

It was designed for recovery tools. It may not be good to change
players for such cases. It would make them more complex. (unless an
elegant/easy solution is found).

>>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>>
>>> SeekHead and Cluster must be multiple. SeekHead in order to allow moving
>>> a SeekHead to the end of the file while still referencing it from the
>>> start (so that normal players will still find it quickly). Cluster for
>>> obvious reasons.
>>>
>>>> And Cues, Attachments, and Chapters are non-multiple.
>>>
>>> I have no idea why Tags is multiple and these three aren't.
>>>
>>> To me the following would make sense:
>>>
>>> - Info, Tracks – multiple but only if each instance contains the same
>>>  information
>>>
>>> - SeekHead, Cluster – multiple without restrictions
>>>
>>> - Attachments, Chapters, Cues, Tags – single
>
> I can understand Attachments and Tags being multiple as it could allow attachments or tags to be added to a file without having to re-write too many bytes.

Yes. But then there should be a way for the player to know about these
beforehand. Good players scan Matroska files beforehand anyway (unless
it's live streaming).

-- 
Steve Lhomme
Matroska association Chairman