Re: [Cellar] Zaheduzzaman Sarker's Discuss on draft-ietf-cellar-matroska-16: (with DISCUSS)

Steve Lhomme <slhomme@matroska.org> Mon, 29 May 2023 08:25 UTC

Return-Path: <slhomme@matroska.org>
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 0210AC151996 for <cellar@ietfa.amsl.com>; Mon, 29 May 2023 01:25:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=matroska-org.20221208.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XstAC0U5R9dR for <cellar@ietfa.amsl.com>; Mon, 29 May 2023 01:25:45 -0700 (PDT)
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6110C151991 for <cellar@ietf.org>; Mon, 29 May 2023 01:25:44 -0700 (PDT)
Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3f623adec61so31148735e9.0 for <cellar@ietf.org>; Mon, 29 May 2023 01:25:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20221208.gappssmtp.com; s=20221208; t=1685348743; x=1687940743; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=fCV702KAZgTRoFxXcIonIwo01p96QDmbWrO0lMc/PHQ=; b=otiZwjodejjwHb8rnUbT24mt0kgOpsd0q9G3H8tNfQ7gpNBTQ5YHW/l4bfHl79ypYS i4MjfHYxNiRnDQGKjZAPTv0BNjAIviSCVf4cN6aOUOZdn4RAxKVLLskRMeyaVoprwFw+ 4KtnCPxlcw2izcpnGtlQs2nlsSpRDibEqv5F7mbJXH6tHPlUyUodlfgsMFbiGU/kfydE sWdUsFbUIyrRJYXQOGkWeTOByx9vcwLed7awHFFdGy5+Ti159F1jGipWL0FgE8TC19Oh ooSiV/F//6grZuBU+qraCVr3gL36o21wllUw3scwaxxlf0KLzReXtgW+EpPs0Sqg2Zfo cCYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685348743; x=1687940743; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fCV702KAZgTRoFxXcIonIwo01p96QDmbWrO0lMc/PHQ=; b=J6B+i9XYcp4K/EIDrDsdy9rCmn2dP3VlIR7bfBnLY3r8Bedcp8WPNhafNqSn1LzPCL lnVcqAYphwJ1kmY7cn/3frjB/3D9mzUfEYIikKSljZg1475sZJVZgUIgjSBHavK+IeP8 fqEeccljCgkultZzOzVNoh6bbmiwjE77pSVf4m0S0T3/QJFPBv2dkM40xRKa8XuipNiJ WQkfOfXGTmsfXbyFHKNT9jco9czaBw3nl2xhFNhOIwXPYRTiZti9SWFEl8MnrvXNcERw zQr2EBdzlJq6KrGREpVz0SUrjyzt4WGid7BfVjpt7UxYMXM4kDrjzIE4uJQ0JgKbOtou 2elg==
X-Gm-Message-State: AC+VfDyj2UVINnd4Sf/9Z2Bl5/2SHQ9PisbVwFonkA5+bpJYN6buDs8T xppMeIaxGrqq4TXx0oHX1/PQ2g==
X-Google-Smtp-Source: ACHHUZ7TaJ0ZhznDUlX4gyMo8kKkxvNIslNKFRTx0IFs6n2USenX5LsnZGxJ7N4E8kyironTNhLJuQ==
X-Received: by 2002:a7b:c40f:0:b0:3f6:cf3:dba8 with SMTP id k15-20020a7bc40f000000b003f60cf3dba8mr8626608wmi.34.1685348743086; Mon, 29 May 2023 01:25:43 -0700 (PDT)
Received: from smtpclient.apple (2a01cb0c0020e900ddb63085e2251c0d.ipv6.abo.wanadoo.fr. [2a01:cb0c:20:e900:ddb6:3085:e225:1c0d]) by smtp.gmail.com with ESMTPSA id x16-20020a5d6510000000b0030ae6f2e696sm4337869wru.115.2023.05.29.01.25.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 May 2023 01:25:42 -0700 (PDT)
From: Steve Lhomme <slhomme@matroska.org>
Message-Id: <B9EA2E9C-D848-4210-8B71-A1DC4BA7B7CF@matroska.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_2BE712BC-AF5A-41B3-A455-E929A7EEF422"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\))
Date: Mon, 29 May 2023 10:25:31 +0200
In-Reply-To: <DB7PR07MB399565AF33CFBABAF120C0169F419@DB7PR07MB3995.eurprd07.prod.outlook.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, The IESG <iesg@ietf.org>, "draft-ietf-cellar-matroska@ietf.org" <draft-ietf-cellar-matroska@ietf.org>, "cellar-chairs@ietf.org" <cellar-chairs@ietf.org>, "cellar@ietf.org" <cellar@ietf.org>
To: Zaheduzzaman Sarker <Zaheduzzaman.Sarker@ericsson.com>
References: <168439355241.19722.16048295663626160603@ietfa.amsl.com> <25458.1684432850@localhost> <CEF5EAE7-E600-4F4B-B978-E082EC66A53B@matroska.org> <DB7PR07MB399565AF33CFBABAF120C0169F419@DB7PR07MB3995.eurprd07.prod.outlook.com>
X-Mailer: Apple Mail (2.3731.500.231)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/hVfeBeJlt03S4Bgg6DHn91boRkc>
Subject: Re: [Cellar] Zaheduzzaman Sarker's Discuss on draft-ietf-cellar-matroska-16: (with DISCUSS)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.39
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, 29 May 2023 08:25:48 -0000

Hi,

Thanks for your reply. Comments below:

> On 24 May 2023, at 10:54, Zaheduzzaman Sarker <Zaheduzzaman.Sarker@ericsson.com> wrote:
> 
> Hi Steve, Hi Michael,
>  
> Please see my replies below (I hope the formatting holds in your view)
>  
> On 2023-05-21, 13:17, "Steve Lhomme" <slhomme@matroska.org <mailto:slhomme@matroska.org>> wrote:
>  
> Hi,
> 
> First of all, thanks for your feedback :)
> 
> > On 18 May 2023, at 20:00, Michael Richardson <mcr+ietf@sandelman.ca <mailto:mcr+ietf@sandelman.ca>> wrote:
> > 
> > 
> > Zaheduzzaman Sarker via Datatracker <noreply@ietf.org <mailto:noreply@ietf.org>> wrote:
> >>    - Top-Level Elements are optional fields in the segment. While
> >> segment is a MUST part in the container but segments values (elements)
> >> are MAY, this to me says one can just put a dummy segment in the
> >> container and it will be fine. is that correct interpretation? however,
> >> there is a RECOMMENDED segment element, so how should we interpret the
> >> statement that Top-level Elements are all MAY?
> > 
> > We struggled a lot with getting this text right.
> > 
> > To make an analogy; when you sit down to eat, it's mandatory that you eat,
> > and you MUST pick something from the menu, no actual individual item from the
> > menu is mandatory to be present. (Distinguish "present" from MTI)
> 
> Actually, the \Segment\Info element is always mandatory (minOccurs = 1, maxOccurs = 1). It is also mentioned in Paragraph 6.1. You can’t have a Segment with nothing in it, the Info element MUST be there and some of its elements MUST be set (mandatory with no default values) like MuxingApp and WritingApp.
>  
> Right, so this also makes the statement – “Matroska defines several Top-Level Elements which MAY occur within the Segment.” not accurate. It seems like we will be in better position if we remove that statement and add MUST, RECOMMENDED, MAY for each of the top-level elements defined. This way we can also make sure the future extensions/versions are not impacted by this specification. 

I removed the normative MAY in the text. It doesn’t need to be normative. Also this section doesn’t go into detail of what is mandatory and in what context. This is rather part of each element specification to know if they are mandatory or not.
https://github.com/ietf-wg-cellar/matroska-specification/pull/781
Turn the may occur in Segment non normative by robUx4 · Pull Request #781 · ietf-wg-cellar/matroska-specification
github.com

> 
> 
> It is true that apart from that you could put nothing in the file and it would be valid, although pretty useless. Originally it was designed to also allow non-multimedia usage, for example using the Attachment part as a .tar replacement. It is also usable from a multimedia perspective to a Segment with just chapters referencing other Segments (Medium Linking) and no content in that one.
> 
> > 
> >>    - Even if the Top-Level Elements MAY be available in the container,
> >> some of the elements has MUST parts when they are present. However, I
> >> have not notices description of the consequences or error handling is
> >> those MUST parts are not available in the elements. I wonder what would
> >> be the course of action if the MUST parts of a certain element is not
> >> there. In general, I was expecting error handling in this specification
> >> which is not there and would like to discuss the reasoning behind it.
> > 
> > Then the file is invalid :-)
> > 
> > Whether it can be played anyway depends a lot upon the goals of the "player"
> > If it's subtitles which are in a format your player can't do, then you don't
> > get subtitles, but you might get A+V.  OTH, if it's a converter from A->B
> > (avconvert, aka "ffmpeg" ) then it could be that you can just copy stuff you
> > don't understand anyway.
> > 
> > If it's a database doing indexing for an archive, then maybe all that matters
> > is that the subtitles are good, and who cares if the V format is something
> > unknown to the indexer.
> > 
> > To make another analogy: some of this is asking what should the
> > *TCP-state-machine* do if the content is flow is a version of Flash that the
> > browser does not understand.  The answer is: they aren't really related,
> > until of course, the browser notices it hates that content and pre-emptively
> > closes the socket while there is still unacknowledged data in the Q.
> 
> The error handling is a good question. And as Michael said, it depends on the goal of the player. We can’t decide for players how to handle the errors, if they are recoverable in their code or not. For example if the checksum of the \Segment\Tracks is invalid some could decide to try to read the data anyway, some will just reject the file, most will not even check it.
> 
> IMO we can tell what is valid and invalid, but we can’t force a certain design on the receivers. Also the format has been around for 2 decades with lots of implementations. We can’t start now telling them they are not handling the errors has they should be.
>  
> Here my point is we completely ignored the error handling part and I think we have enough expertise to say something about it. In fact, a short summery of what you and Michael wrote here is good information to have in this document. After all this container is in use for a long time. Can we add that to this document?
>  
> On the other hand, if this container is there for a long time and everyone knows what exactly to do then one can say there is a very little value of creating this specification now. However, as we are long way here now trying to publish the specification, I would not give that comment much value.

I tried to write something as you suggested. However it all falls down to rules that derive from EBML error handling. There’s not really something specific to Matroska here.