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

Steve Lhomme <slhomme@matroska.org> Mon, 29 May 2023 09:43 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 DD9FFC151539 for <cellar@ietfa.amsl.com>; Mon, 29 May 2023 02:43:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 cx9sqG80AsJ4 for <cellar@ietfa.amsl.com>; Mon, 29 May 2023 02:43:23 -0700 (PDT)
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) (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 75E1DC15107F for <cellar@ietf.org>; Mon, 29 May 2023 02:43:23 -0700 (PDT)
Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3f6ef9a928fso17228135e9.3 for <cellar@ietf.org>; Mon, 29 May 2023 02:43:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20221208.gappssmtp.com; s=20221208; t=1685353402; x=1687945402; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=wAVuhyGZ/5KMcU7dW23Z4DkcKnl+L6eOIsuvxpvCnU4=; b=lbe77Ga2ubnDaFpnm6rHRPXOF1ZxmRLescDf1wIfFvUgCslMf/8AOEauWa4Hr1VSBH ZfFZ8FwjWgFCQnwvkVbhlWh1jJ0P58pimT6VmEFpVtwlM0ksI54nIl8LWrWhsH7gvgHY gX0bYaoXwWDpRtHRmIsBIMgAxa/jTfjyT4YZNVFD7YdPTLM6Kw7hcLbelVShzFuK2M7i 1RvrRr17XZ6JdrZvwJqUKhcYQmJyBy+1M1YK0atOVVwJ6AClTzKcXzP8pzEc9xWEor/f EUzx5/8UbXtXgi/rLoZ9AXKy1lBNqSC9PCqu8AEJDkc/upYcjivmUd04atSTZjf6hOxM DiNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685353402; x=1687945402; 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=wAVuhyGZ/5KMcU7dW23Z4DkcKnl+L6eOIsuvxpvCnU4=; b=Kw0NcXjxHNU8BITxJza96F0Zd/4XJIQMo52zW8jyJZUNxk/NGSiS16HdZz4sJLAKvl VaUQSFY7fTWFzSarv7gooSTubU4KeKc7ryN6ia2XdpKa3B1BCicpw1jEyXxdo++QmUO+ eoCWPGN89PUWMsNt6oyE1B1zWmggDKH7wkW07GEJ1H7ehQGfsTmEBZmrAbSbtOJ6/tfe cBT5rTFOzgP4HA+iGtcgFuDUOzfQOjpkm3nBmVy+usIaLcsP3YRU91cZzQHFQS+AECoR hkb6TdnP68NaxuiDdYZL7LJq+bopNCLIglPRBqGV2T4ZzNOfdcf6Cm3AhOAznJBdzvLK ScPA==
X-Gm-Message-State: AC+VfDyHX9JYmQ//6NWgGMLizeugCAmd96U+Ar9E2DiZc8rlpdw2k3rs KA6Axqn+DsM1dky1E2ZRUksZ4A==
X-Google-Smtp-Source: ACHHUZ7v8/BtA2lwlw6B8ZinNZ5IJ5XRcjubL0hYlAKdyrrkD9UMwTEWQ9Ku6vn0LvkB/T6vwWFqaQ==
X-Received: by 2002:a05:600c:2284:b0:3f6:42ce:a384 with SMTP id 4-20020a05600c228400b003f642cea384mr7372587wmf.11.1685353401803; Mon, 29 May 2023 02:43:21 -0700 (PDT)
Received: from smtpclient.apple (2a01cb0c0020e9003c08d3eb3e429df6.ipv6.abo.wanadoo.fr. [2a01:cb0c:20:e900:3c08:d3eb:3e42:9df6]) by smtp.gmail.com with ESMTPSA id a17-20020a5d5091000000b0030aefa3a957sm1434493wrt.28.2023.05.29.02.43.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 May 2023 02:43:21 -0700 (PDT)
From: Steve Lhomme <slhomme@matroska.org>
Message-Id: <DAF8B94E-C600-440F-BAC8-83DE3F6F7197@matroska.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_F09D5E3F-CD81-4AAA-B9A5-9879FE42EF4F"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\))
Date: Mon, 29 May 2023 11:43:10 +0200
In-Reply-To: <DB7PR07MB39952CD9518062E96DF6E7B59F4A9@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> <B9EA2E9C-D848-4210-8B71-A1DC4BA7B7CF@matroska.org> <DB7PR07MB39952CD9518062E96DF6E7B59F4A9@DB7PR07MB3995.eurprd07.prod.outlook.com>
X-Mailer: Apple Mail (2.3731.500.231)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/gQepybQo1H_NgbHU6WES8S1Qbe8>
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 09:43:26 -0000


> On 29 May 2023, at 11:14, Zaheduzzaman Sarker <zaheduzzaman.sarker@ericsson.com> wrote:
> 
>  
>  
> On 2023-05-29, 10:25, "Steve Lhomme" <slhomme@matroska.org <mailto:slhomme@matroska.org>> wrote:
> 
> Hi,
>  
> Thanks for your reply. Comments below:
> 
> 
> On 24 May 2023, at 10:54, Zaheduzzaman Sarker <Zaheduzzaman.Sarker@ericsson.com <mailto: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.
> <781.png>
> Turn the may occur in Segment non normative by robUx4 · Pull Request #781 · ietf-wg-cellar/matroska-specification <https://github.com/ietf-wg-cellar/matroska-specification/pull/781>
> github.com <https://github.com/ietf-wg-cellar/matroska-specification/pull/781>
> 
> 
> That is fine, but then I am wondering if we should also add such statements for each and every element specification in this document or not.

It should really be on a case by case because, for example, this line needs both differentiation between MAY and SHOULD:
A Matroska Reader **MAY** support methods "1" and "2" as possible, and **SHOULD** support other methods.

There are “only” 8 use of MAY in the element descriptions.

> 
> 
> 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.
>  
> Ok, I am however, was suggesting that we write something like below –
>  
>        “Particular error handling is not covered in this specification as this is depends on the goal of the players. It is upto the decision of the players on 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”
>  
> That is If this is really player behavior dependent, let’s just write it. (feel free to change the proposed text)

I used your text, in this Pull Request: https://github.com/ietf-wg-cellar/matroska-specification/pull/787
Thanks a lot!

>  
> //Zahed
>