Re: [AVTCORE] Adam Roach's Discuss on draft-ietf-payload-rtp-ttml-03: (with DISCUSS and COMMENT)

James Sandford <james.sandford@bbc.co.uk> Wed, 16 October 2019 12:45 UTC

Return-Path: <james.sandford@bbc.co.uk>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54CE8120934; Wed, 16 Oct 2019 05:45:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 lA8Y-vwN6Pam; Wed, 16 Oct 2019 05:45:12 -0700 (PDT)
Received: from mailout0.cwwtf.bbc.co.uk (mailout0.cwwtf.bbc.co.uk [132.185.160.179]) (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 1BE4212092F; Wed, 16 Oct 2019 05:45:11 -0700 (PDT)
Received: from BGB01XI1008.national.core.bbc.co.uk (bgb01xi1008.national.core.bbc.co.uk [10.161.14.22]) by mailout0.cwwtf.bbc.co.uk (8.15.2/8.15.2) with ESMTP id x9GCiwu7018532; Wed, 16 Oct 2019 13:44:58 +0100 (BST)
Received: from BGB01XUD1001.national.core.bbc.co.uk ([10.184.52.80]) by BGB01XI1008.national.core.bbc.co.uk ([10.161.14.22]) with mapi id 14.03.0408.000; Wed, 16 Oct 2019 13:44:58 +0100
From: James Sandford <james.sandford@bbc.co.uk>
To: Adam Roach <adam@nostrum.com>, The IESG <iesg@ietf.org>
CC: "draft-ietf-payload-rtp-ttml@ietf.org" <draft-ietf-payload-rtp-ttml@ietf.org>, Roni Even <roni.even@huawei.com>, "avtcore-chairs@ietf.org" <avtcore-chairs@ietf.org>, "avt@ietf.org" <avt@ietf.org>
Thread-Topic: Adam Roach's Discuss on draft-ietf-payload-rtp-ttml-03: (with DISCUSS and COMMENT)
Thread-Index: AQHVg+ZfYQgw8vTQ/0WeIklAJNo2wKddNiT0
Date: Wed, 16 Oct 2019 12:44:57 +0000
Message-ID: <734752AF0E88364D983373FE5CEFED5770DE3E79@bgb01xud1001>
References: <157120533756.28095.10649811061659847293.idtracker@ietfa.amsl.com>
In-Reply-To: <157120533756.28095.10649811061659847293.idtracker@ietfa.amsl.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [132.185.132.13]
x-exclaimer-md-config: c91d45b2-6e10-4209-9543-d9970fac71b7
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/PP6psqNw_XUdULdrydUjCWXrFyA>
Subject: Re: [AVTCORE] Adam Roach's Discuss on draft-ietf-payload-rtp-ttml-03: (with DISCUSS and COMMENT)
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Oct 2019 12:45:14 -0000

Responses in-line.

Regards,
James

>----------------------------------------------------------------------
>DISCUSS:
>----------------------------------------------------------------------
>
>Thanks for the work everyone put into this document. I think it's not quite
>ready to publish, due to one ambiguity, one critical missing feature,
>and the lack of guidance around fragmentation. I also have two comments that I
>consider very important, although they don't quite rise to the level of blocking
>publication.
>
>As always, it's possible that my DISCUSS points are off-base, and I'd be
>happy to be corrected if I've misunderstood anything here.
>
>---------------------------------------------------------------------------
>
>§4.1:
>
>
>>     When the document spans more
>>     than one RTP packet, the entire document is obtained by
>>     concatenating User Data Words from each contributing packet in
>>     ascending order of Sequence Number.
>
>This is underspecified, in that it doesn't make it clear whether it would be
>valid to split a single UTF-8 or UTF-16 character between RTP packets, and it
>is nearly certain that different implementations will make different
>assumptions on this point, leading to interop failures. For example, the UTF-8
>encoding of '¢' is 0xC2 0xA2. Would it be valid to place the "0xC2" in one
>packet and the "0xA2" in a subsequent packet?
>
>Without specifying this, it is quite likely that some implementations will
>use, e.g., UTF-8 strings to accumulate the contents of RTP packets; and most
>such libraries will emit errors or exhibit unexpected behavior if units of
>less than a character are added at any time.  (The same point holds for
>splitting a UTF-16 byte across packets).
>
>I don't think it much matters which choice you make (explicitly allowing
>or explicitly forbidding splitting characters between packets), but it
>does need to be explicit. I have a slight personal preference for requiring
>that characters cannot be split (both for ease of implementation on the
>receiving end and to more smoothly handle missing data due to extended packet
>loss), but leave it to the authors and working group to decide.

Thanks for highlighting this. I also have a slight preference for not splitting characters.

>---------------------------------------------------------------------------
>
>Unlike other definitions to convey non-loss-resilient data on RTP streams, this
>document had no defined mechanism to deal with packet loss. This makes it
>unusable on the public Internet, where packet loss is an inevitable feature
>of the network. The existing text-in-RTP specifications define procedures to
>deal with such loss (see, e.g., RFC 4103 section 4 and RFC 4396 section 5).

I think RFC 4396 Section 5 could be adapted for our purposes. The main issue is the TTML payload document currently makes use of the Sequence Number to identify the order of document fragments. A re-transmitted fragment would have a different Sequence Number so there would be no way to match equivalent packets. A potential solution is to use the 16 Reserved bits for a new counter that performs the task of identifying fragment order.

How would this affect the progress of this document? While it represents a major change to the layout of the payload, the mechanisms used will be identical.

>---------------------------------------------------------------------------
>
>This format is rather unique in that it, alone among all other RTP text
>formats, is designed to send monolithic documents that may stretch into the
>multiple kilobyte range.  While fragmentation is mentioned as a possibility,
>the document provides no implementation guidance about when to fragment
>documents, and what sizes each fragment should assume. RFC 4396 section 4.4 is
>an example of the kind of information I would expect to see in a document like
>this, with emphasis on the fact that TTML documents are going to frequently
>exceed the PTMU for a typical network connection.

I would not be opposed to an equivalent section to this. I'll work on adapting the referenced section.

>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>§1:
>
>>  TTML (Timed Text Markup Language)[TTML2] is a media type for
>>  describing timed text such as closed captions (also known as
>>  subtitles) in television workflows or broadcasts as XML.
>
>Although superficially similar, there are important distinctions between
>subtitles (intended to help a hearing audience exclusively with spoken dialog,
>typically because the audio is in a different language or otherwise difficult to
>understand) and closed captions (intended to aid deaf or hard-of-hearing
>viewers by providing a direct, word-for-word transcription of dialog as well
>as descriptions of all other audio present). Calling one "also known as" the
>other is incorrect.
>
>I suggest rephrasing as:
>
>   TTML (Timed Text Markup Language)[TTML2] is a media type for
>   describing timed text such as closed captions and subtitles
>   in television workflows or broadcasts as XML.

This isn't strictly true. At least in the UK, the term subtitles is used as a catch-all term to describe both translation subtitles/those to support unintelligible speech, and subtitles for the deaf and hard of hearing. That said, I have no objection to the alternative wording.

>---------------------------------------------------------------------------
>
>§4.2.1.1:
>
>>  The TTML document instance MUST use the "media" value of the
>>  "ttp:timeBase" parameter attribute on the root element.
>
>This statement makes an assumption that the
>"http://www.w3.org/ns/ttml#parameter" namespace MUST be mapped to the "ttp"
>prefix, which is both bad form and probably not what is intended. I suggest
>rephrasing as:
>
>   The TTML document instance MUST include a "timeBase" element from
>   the "http://www.w3.org/ns/ttml#parameter" namespace containing
>   the value "media".

I have spoken to Nigel Megitt (chair of the W3C Timed Text Working Group) about this. He noted that "timeBase" is an attribute not an element. The following alternative is verbose but unambiguous:

    The TTML document instance's root "tt" element in the "http://www.w3.org/ns/ttml" namespace MUST include a "timeBase" attribute in the "http://www.w3.org/ns/ttml#parameter" namespace containing the value "media".