Re: [rtcweb] Proposal for dealing with CNAMEs and MSIDs for synchronization

Magnus Westerlund <magnus.westerlund@ericsson.com> Thu, 14 February 2013 09:18 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB5A821F8652 for <rtcweb@ietfa.amsl.com>; Thu, 14 Feb 2013 01:18:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.705
X-Spam-Level:
X-Spam-Status: No, score=-105.705 tagged_above=-999 required=5 tests=[AWL=0.544, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rAD43LTgFhQ4 for <rtcweb@ietfa.amsl.com>; Thu, 14 Feb 2013 01:18:03 -0800 (PST)
Received: from mailgw2.ericsson.se (mailgw2.ericsson.se [193.180.251.37]) by ietfa.amsl.com (Postfix) with ESMTP id 23C1C21F86B7 for <rtcweb@ietf.org>; Thu, 14 Feb 2013 01:18:00 -0800 (PST)
X-AuditID: c1b4fb25-b7f366d000004d10-e7-511cabc7ddc1
Received: from esessmw0191.eemea.ericsson.se (Unknown_Domain [153.88.253.124]) by mailgw2.ericsson.se (Symantec Mail Security) with SMTP id F9.88.19728.7CBAC115; Thu, 14 Feb 2013 10:18:00 +0100 (CET)
Received: from [127.0.0.1] (153.88.115.8) by esessmw0191.eemea.ericsson.se (153.88.115.85) with Microsoft SMTP Server id 8.3.279.1; Thu, 14 Feb 2013 10:17:59 +0100
Message-ID: <511CABC6.3050502@ericsson.com>
Date: Thu, 14 Feb 2013 10:17:58 +0100
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: "Timothy B. Terriberry" <tterriberry@mozilla.com>
References: <CABcZeBO105HXWoRAbaAR0fGTCLtDmAyjt-DOM=aKy80sg2SG_Q@mail.gmail.com> <51140038.3040001@ericsson.com> <CABcZeBP_-ce-JT-oDkpkDoRKjrZo+m7NLTcifCOsRBM_qKPTmg@mail.gmail.com> <511407AA.1040501@ericsson.com> <CABcZeBO0oSYw-M-1wVujftiYdBtJ67SBfMp4k5gSm45HFhZ+=A@mail.gmail.com> <92B7E61ADAC1BB4F941F943788C0882804788D71@xmb-aln-x08.cisco.com> <51157034.3020800@alvestrand.no> <51164AFC.80700@ericsson.com> <51165FCA.2040707@alvestrand.no> <511796C6.3050601@ericsson.com> <511820F9.5080806@alvestrand.no> <5118EDC1.2000809@ericsson.com> <5119F155.8090303@alvestrand.no> <511C66BE.7090105@mozilla.com>
In-Reply-To: <511C66BE.7090105@mozilla.com>
X-Enigmail-Version: 1.5
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjluLIzCtJLcpLzFFi42KZGfG3RvfEaplAg/eT2C3W/mtntzj7o5HJ gcljyZKfTB59B7pYA5iiuGxSUnMyy1KL9O0SuDKarvxlKZigUbH7sFQD42mFLkZODgkBE4md L9qZIWwxiQv31rOB2EICJxklXu4W6mLkArKXM0qsfL0ELMEroC2xv30VI4jNIqAq8XR3K1gz m4CFxM0fjWA1ogLBEhsOrmKCqBeUODnzCQuILSJgKvFq4gawGmYBYYkNF9uA4hwcwgIhEisP skLsusMi8eBkA1g9J9CunueXwWokBMQl1rzhgGjVk5hytYURwpaXaN46mxniZm2JhqYO1gmM QrOQbJ6FpGUWkpYFjMyrGNlzEzNz0suNNjECw/Tglt+qOxjvnBM5xCjNwaIkzhvueiFASCA9 sSQ1OzW1ILUovqg0J7X4ECMTBycwBNvkdH9yTMrt3GsaW88f5j5NPcRn6n7J00+clm47uztZ 5fSKm0G7U6pLj058FbGTe0FN/LPPVxdf47UReyY2e3bXY4tE1RqRlDlc2ZuFm4vmtDX0hhQk HtV/yr6+wq8y+V3fNsUbvHpx059uKNCeUhHSnlfweILTaq4VCh+eTTtWmMdWrLyyTomlOCPR UIu5qDgRAC0R0MkhAgAA
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Proposal for dealing with CNAMEs and MSIDs for synchronization
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Feb 2013 09:18:05 -0000

On 2013-02-14 05:23, Timothy B. Terriberry wrote:
> Harald Alvestrand wrote:
>> I don't understand what the problem is here. I may be dumb.
>> If syncing is important to the guy writing the service, (he can't live
>> with them being unsynchronized), he should put them in the same stream.
> 
> The argument goes that if we leave this unspecified, web authors will
> test against browser A which does X, and not against browser B which
> does Y, and users of browser B will suffer when things don't work like
> they did in browser A.
> 
> Personally I'm not convinced this argument applies here. For cases like
> "Do the contents of this table element show up at all when I fail to
> close my <tr>?" it's pretty important, but in reality resynchronization
> is only going to affect things so much... if things get more than a few
> 100 ms out of sync on the wire, the experience is going to be terrible
> no matter what you do (and I'd call them "bad" long before that point).
> 
> The goal of pixel-perfect rendering for webpages might be reasonable,
> but sample-accurate rendering of real-time media will never be possible
> given the limitations of real-world networks, and whether you're forcing
> synchronization or not, the media will still play.

My understanding of the underlying issues why this is important is
discussed in
https://datatracker.ietf.org/doc/draft-burman-rtcweb-mmusic-media-structure/
See Section 4.1.3

Lets start with two media streams from end-point that shares media
sources. Here we encounter another open issue, namely the relation
between media sources, a particular encoding and MediaStreamTrack. To my
knowledge it is not agreed on what should happen if I have two
MediaStreams, each with an audio and video MediaStreamTrack that are the
same media source, i.e. microphone and video camera. Even if no
configuration for encoding has been done, will the peer receive two
copies or are these optimized to send only two RTP streams, one with the
audio, one with the video that is used in both?

If they are then they MUST share the same CNAME in both media streams
all the MediaStreamTracks.

If the audio MediaStreamTrack in each MediaStream actually gets
different encodings, which I think is a waste unless intended due to
encoding requirements, but then we are in fact into Simulcast. IF one
has two different encodings and both are sent, then playing the same
audio source twice without sample accurate synchronization you have just
created an echo effect.

Even if the JS application switches back and forth between the media
streams there could be playback overlapping unless they are in sync.

> 
>> The practical issue I can think of would be a source that had its own
>> clock, not the system clock, but is otherwise a local source. Having the
>> same CNAME would require resynchronizing that source. I don't know if
>> any such sources exist in practice, but again, I don't want to outlaw
>> them.
> 
> I can certainly think of cases where two local streams with, e.g., the
> same sampling rate would advance at different rates measured against a
> global wallclock. For example, a gUM stream running against the
> microphone's clock vs. a <video> tag playing back against the soundcard
> output clock.

Yes, but that should be dealt with locally. It is after all detectable
by using the global wallclock and can be compensated for. In fact RTCP
synchronization mechanism deals with the relative clock drift of
sampling clocks compared to the senders wall clock by updating the
offset in new RTCP Sender Reports.

This might not be implemented correctly in many implementations, but
that is an implementation bug, not a protocol issue. Same goes for the
local playback with the above characteristics.

> 
> Then AFAICT forcing the use of the same CNAME means we will always add
> some additional latency in the receiver to perform the
> resynchronization. In the above situation, I'm not sure that's always
> the best choice.

I think it is important that we are clear on that all media sources that
comes from the same synchronization context must be using the same
CNAME. This implies that media mixing entities track the incoming clocks
and keep the same off-set over multiple RTP streams from the same
synchronization context to maintain synchronization of that context
across the mixing/relaying/video switching.

Yes, it may incur delay, depending on what media operation you are
doing. I think the requirement we are discussing is what the sender MUST
do so that the receiver can ensure synchronization if they want to.

Cheers

Magnus Westerlund

----------------------------------------------------------------------
Multimedia Technologies, Ericsson Research EAB/TVM
----------------------------------------------------------------------
Ericsson AB                | Phone  +46 10 7148287
Färögatan 6                | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden| mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------