[rtcweb] 答复: Mute implementations (Re: More Comments ondraft-ietf-rtcweb-use-cases-and-requirements-07)

"Sunyang (Eric)" <eric.sun@huawei.com> Sun, 17 June 2012 09:24 UTC

Return-Path: <eric.sun@huawei.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 2633321F85C3 for <rtcweb@ietfa.amsl.com>; Sun, 17 Jun 2012 02:24:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.619
X-Spam-Level: **
X-Spam-Status: No, score=2.619 tagged_above=-999 required=5 tests=[AWL=0.169, BAYES_00=-2.599, CHARSET_FARAWAY_HEADER=3.2, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, MIME_BASE64_TEXT=1.753, MIME_CHARSET_FARAWAY=2.45, RCVD_IN_DNSWL_MED=-4, SARE_SUB_ENC_GB2312=1.345]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kwP1Cql28Iwf for <rtcweb@ietfa.amsl.com>; Sun, 17 Jun 2012 02:24:14 -0700 (PDT)
Received: from dfwrgout.huawei.com (dfwrgout.huawei.com [206.16.17.72]) by ietfa.amsl.com (Postfix) with ESMTP id 90DD221F857D for <rtcweb@ietf.org>; Sun, 17 Jun 2012 02:24:14 -0700 (PDT)
Received: from 172.18.9.243 (EHLO dfweml202-edg.china.huawei.com) ([172.18.9.243]) by dfwrg01-dlp.huawei.com (MOS 4.2.3-GA FastPath) with ESMTP id AHG06641; Sun, 17 Jun 2012 05:24:13 -0400 (EDT)
Received: from DFWEML405-HUB.china.huawei.com (10.193.5.102) by dfweml202-edg.china.huawei.com (172.18.9.108) with Microsoft SMTP Server (TLS) id 14.1.323.3; Sun, 17 Jun 2012 02:24:07 -0700
Received: from SZXEML417-HUB.china.huawei.com (10.82.67.156) by dfweml405-hub.china.huawei.com (10.193.5.102) with Microsoft SMTP Server (TLS) id 14.1.323.3; Sun, 17 Jun 2012 02:24:06 -0700
Received: from szxeml545-mbx.china.huawei.com ([169.254.1.4]) by szxeml417-hub.china.huawei.com ([10.82.67.156]) with mapi id 14.01.0323.003; Sun, 17 Jun 2012 17:23:57 +0800
From: "Sunyang (Eric)" <eric.sun@huawei.com>
To: Harald Alvestrand <harald@alvestrand.no>, Jim Barnett <Jim.Barnett@genesyslab.com>
Thread-Topic: [rtcweb] Mute implementations (Re: More Comments ondraft-ietf-rtcweb-use-cases-and-requirements-07)
Thread-Index: AQHNS/vFOivG4SSIQUWzgCaW1NPfa5b84LAAgAAXlQCAAKhPAIAAnHVg
Date: Sun, 17 Jun 2012 09:23:57 +0000
Message-ID: <9254B5E6361B1648AFC00BA447E6E8C32AEA9198@szxeml545-mbx.china.huawei.com>
References: <5A2F246E-9D77-4B72-B3F1-681B00FA99FD@cisco.com><AAB6A6B6-BEC7-436C-B1EB-2C117596C7C6@cisco.com><F3D4ABD6AB47084B84337CF4F3446A464B2F2631AC@ESESSCMS0362.eemea.ericsson.se><9F33F40F6F2CD847824537F3C4E37DDF021B53@MCHP04MSX.global-ad.net><CA+9kkMCL1k3x2hYi632nDU2g6CtOq3O7risDi38+7FTeWkxcGA@mail.gmail.com><9F33F40F6F2CD847824537F3C4E37DDF0223ED@MCHP04MSX.global-ad.net><4FD89773.3090506@ericsson.com><9F33F40F6F2CD847824537F3C4E37DDF02594D@MCHP04MSX.global-ad.net><4FD9AD1E.6060504@alvestrand.no> <4FD9E2BE.2080907@ericsson.com><CAOJ7v-18EynuscX3tLRryzqKxyXwYzES9K4zroE-5=FL4o8WzA@mail.gmail.com><4FDB9E20.8070408@jesup.org><CABkgnnVqeyuayFsiA7YD+OFnyCi8tqode6VdypeaHKT+Z73KWw@mail.gmail.com><4FDBA6AC.2080107@jesup.org> <4FDCE4D4.7070909@alvestrand.no> <E17CAD772E76C742B645BD4DC602CD8106581BE5@NAHALD.us.int.genesyslab.com> <4FDCEDC2.2040903@alvestrand.no> <E17CAD772E76C742B645BD4DC602CD8106581BEA@NAHALD.us.int.genesyslab.com> <4FDD8EBA.2040601@alvestrand.no>
In-Reply-To: <4FDD8EBA.2040601@alvestrand.no>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.99.204.240]
Content-Type: multipart/alternative; boundary="_000_9254B5E6361B1648AFC00BA447E6E8C32AEA9198szxeml545mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: [rtcweb] 答复: Mute implementations (Re: More Comments ondraft-ietf-rtcweb-use-cases-and-requirements-07)
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: Sun, 17 Jun 2012 09:24:16 -0000

Do we need add one more scenario:

The same video B2B communication, and switch video stream between front and rear webcam?
The video streams displayed in the same video element, but source changed.

There is on relative scenario in media capture scenarios, “video diary….”, but not not related with above mentioned scenario.

Should we add it?

发件人: rtcweb-bounces@ietf.org [mailto:rtcweb-bounces@ietf.org] 代表 Harald Alvestrand
发送时间: 2012年6月17日 16:01
收件人: Jim Barnett
抄送: rtcweb@ietf.org
主题: Re: [rtcweb] Mute implementations (Re: More Comments ondraft-ietf-rtcweb-use-cases-and-requirements-07)

On 06/16/2012 11:58 PM, Jim Barnett wrote:

It's capturing the requirement accurately that I'm concerned with.  I

think "To be able to change the source of a video stream after its

creation" is too broad, in the sense that someone might interpret it to

mean that the system could shift from the front to the rear camera

without asking permission.
People certainly want to shift from the front to the rear camera, and people want to have the ability to get all that asking-for-permissions stuff out of the way before that.

I recommend the Media Task Force's "additional scenarios" for more usages of "local media".
Jjim, I know you know where this is, but for others:
http://dvcs.w3.org/hg/dap/raw-file/tip/media-stream-capture/scenarios.html



  For mute and hold, we want something like

"switch to a dummy source and back".  The source that we switch to in

cases like this is not a 'first-class' video source, but rather a

place-holder.  That's very different from switching to another live

source.
ObLangDisagreement: Files, images and the output of video processors are very real sources, and should not be "second class".

Switching between live streams (that we have permission to access) is going to be required, but I think this belongs on the Media TF mailing list.







- Jim



-----Original Message-----

From: Harald Alvestrand [mailto:harald@alvestrand.no]

Sent: Saturday, June 16, 2012 4:34 PM

To: Jim Barnett

Cc: rtcweb@ietf.org<mailto:rtcweb@ietf.org>

Subject: Re: [rtcweb] Mute implementations (Re: More Comments

ondraft-ietf-rtcweb-use-cases-and-requirements-07)



On 06/16/2012 10:07 PM, Jim Barnett wrote:

Harald,

   Your description below makes me nervous:  with getUserMedia, the

user grants permission to _specific_ media streams (for example audio,



or front camera, but not rear).

Yes, he grants permission to use of the camera. That permission persists

until <we have to define this point in time>. There's some interesting

language there now about "strong" and "weak" references to video

streams.



   If the system wants " to change the source of a video stream after

its creation", shouldn't it be required to ask permission again?  In

this case,  common sense says that it's not necessary, but that's

because we're not changing to an arbitrary alternative the source

(e.g., suddenly switching on the rear camera) but rather substituting

some sort of 'null' or 'dummy' source.  Can we think of a different

way to phrase it?

There are multiple ways to implement a requirement, as always.



One possibility is the simple one:



getUserMedia(..., function(strream) {

       outgoingstream = stream;

})

getStreamFromPicture(image, function(stream) {



outgoingstream.videoStreams(0).replaceContent(stream.videoStreams(0));

}..)



whatever the "replace" call does.

There may be a requirement that we keep a reference around that keeps

the video stream, so that we can restore it, in order that the camera

not close and can be used later:



getUserMedia(..., function(strream) {

       copyOfCameraStream = stream;

       outgoingstream = MediaStream(stream.audioTracks,

stream.videoTracks);



})



getStreamFromPicture(image, function(stream) {



outgoingstream.videoStreams(0).replaceContent(stream.videoStreams(0));

}..)



restorePicture = function() {



outgoingtstream.videoStreams(0).replaceContent(copyOfCameraStream.video.

Streams(0));

}



But there are surely multiple other ways to define it. What I want to

make sure we have done first is to capture the requirement accurately.





- Jim



-----Original Message-----

From: rtcweb-bounces@ietf.org<mailto:rtcweb-bounces@ietf.org> [mailto:rtcweb-bounces@ietf.org] On

Behalf Of Harald Alvestrand

Sent: Saturday, June 16, 2012 3:56 PM

To: rtcweb@ietf.org<mailto:rtcweb@ietf.org>

Subject: Re: [rtcweb] Mute implementations (Re: More Comments

ondraft-ietf-rtcweb-use-cases-and-requirements-07)



On 06/15/2012 11:18 PM, Randell Jesup wrote:

On 6/15/2012 4:49 PM, Martin Thomson wrote:

On 15 June 2012 13:42, Randell Jesup<randell-ietf@jesup.org><mailto:randell-ietf@jesup.org>

wrote:

I would also suggest that for video-mute that instead of stopping

video or sending black, the application should send a "mute image".

The question I have is whether there is: a) a fixed image/video that



is serialized to RTP b) video "comfort noise", or c) local mute

image/video playback.  If it can't be c, then you might need to

explain yourself.

Either we build it into the system (which I dislike - SetMuteImage()

or whathaveyou, though we could), or we put it in the application

domain and suggest or assist implementation.



The simple way to handle Mute is to revector the input to a "mute" or



"hold" source, and they may not be the same (hold would have "Please

Hold" and music, perhaps; mute would have silence and "Muted" or a

camera with a circle/slash, etc).  You can also signal that out of

band to let the other end take smart action (remove muted video

image, display "muted" next to a name, etc).  This can be done via

DataChannels, for example.  You may then reinvite for Hold to make it



one-way, but that's mostly optional.

The resulting requirements seem to me to be:



1) To be able to use a still image as source for a video stream

2) To be able to change the source of a video stream after its

creation



Both are requirements on the GetUserMedia API. Can we link these to a

specific use case, or do we need to modify the use case document so

that the requirements are clear?



               Harald









_______________________________________________

rtcweb mailing list

rtcweb@ietf.org<mailto:rtcweb@ietf.org>

https://www.ietf.org/mailman/listinfo/rtcweb