A synchronous choice getUserMedia options. Problem RTCPeerConnection requires MediaStreams (and MediaStreamTracks) in order to negotiate streams MediaStreams.

Slides:



Advertisements
Similar presentations
Generating Ideas #1: Research Patterns
Advertisements

Chapter 5 Errors Bjarne Stroustrup
SIP Interconnect Guidelines draft-hancock-sip-interconnect-guidelines-02 David Hancock, Daryl Malas.
EFRONT V4 EXTENSIONS ARCHITECTURE. The goal  To offer more flexibility to 3 rd party users to modify eFront functionality  To further extend eFront.
My first computer: The Apple ][ It wanted to be programmed.
11/10/04 AIPP Lecture 6: Built-in Predicates1 Combining Lists & Built-in Predicates Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture.
Reza hooshangi ( ). short history  One of the last major challenges for the web is to enable human communication via voice and video: Real Time.
Sex Ratios and the Power of Game Theory. The sex ratio is the ratio of males to females in a population.
Nonholonomic Multibody Mobile Robots: Controllability and Motion Planning in the Presence of Obstacles (1991) Jerome Barraquand Jean-Claude Latombe.
One App for All Coding for different iOS variants Mike Oliver iOS Team Lead
ICE Jonathan Rosenberg dynamicsoft. Issue 1: Port Restricted Flow This case does not work well with ICE right now Race condition –Works if message 13.
From Module Breakdown to Interface Specifications Completing the architectural design of Map Schematizer.
Given Connections Solution
Taking the Headache out of. Reach your sphere of influence on a daily basis – AT NO COST? Reconnect with friends and stay in touch with family – AT NO.
Exceptions. Many problems in code are handled when the code is compiled, but not all Some are impossible to catch before the program is run  Must run.
Installing and Troubleshooting Hardware Device and Drivers Chapter 6 powered by dj.
Software Engineering 1 Object-oriented Analysis and Design Chap 30 Relating Use Cases.
July 10, 2006rtpsec BOF IETF-661 Best Effort SRTP Phil Zimmermann Alan Johnston.
RTCWEB Signaling Matthew Kaufman. Scope Web Server Browser.
Q and A for Ch , 15 CS-332, 2014, and Victor Norman.
ECE 2799 “The Engineering Design Process” Prof. Bitar and Prof. Michalson Last Update – 3/18/15.
1 HAN Device Status Report Storyboard Smart Meter Texas Release 4.0 Requirements February 21, 2012 DRAFT.
Feasibility Analysis What is feasibility and when should feasibility checkpoints occur? What are the four types of feasibility and what is the description.
Exceptions: Checked versus Unchecked Exceptions.
Curtsy Web
Approaching a Problem Where do we start? How do we proceed?
Designing & Testing Information Systems Notes Information Systems Design & Development: Purpose, features functionality, users & Testing.
Java Threads. What is a Thread? A thread can be loosely defined as a separate stream of execution that takes place simultaneously with and independently.
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
May 8, USB Client Driver Etiquette Jay Senior Windows Base Developer Microsoft.
Don’t Believe Everything You See!. What do you see? What’s happening in the image? Is this a painting, photograph, drawing, or some other type of image?
Improving Networks Worldwide. UNH InterOperability Lab Serial ATA (SATA) Clause 8: OOB and Phy Power States.
Writing Persuasive Proposals Chapters 9 and 16. Objectives  To define persuasion and proposals  To understand the persuasive process  To identify the.
Motivation Supervisory control of systems –composed of (synchronized) modules –too large to fit in memory/be computed –modules change with time: (dis)appear.
The Singleton Pattern SE-2811 Dr. Mark L. Hornick 1.
IDNAbis and Security Protocols or Internationalization Issues with Short Strings John C Klensin SAAG – 26 July 2007.
Parallelizing Spacetime Discontinuous Galerkin Methods Jonathan Booth University of Illinois at Urbana/Champaign In conjunction with: L. Kale, R. Haber,
Adding and Subtracting Decimals © Math As A Second Language All Rights Reserved next #8 Taking the Fear out of Math 8.25 – 3.5.
RHS Tech Ed The Engineering Design Process. What Is Design?
SAPR QUICK REFERENCE GUIDE 3/C PCA. Objectives Define bystander intervention and understand the factors that may inhibit intervention from a bystander.
SMART Tip Sheets Maryland February 2008 IGSR Technical Support: Client Referral Consent Referral Accepting Referrals This tip sheet focuses.
07/10/04 AIPP Lecture 5: List Processing1 List Processing Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture 5 07/10/04.
Call Completion using BFCP draft-roach-sipping-callcomp-bfcp IETF 67 – San Diego November 7, 2006.
Lecture 17 Page 1 Advanced Network Security Network Denial of Service Attacks Advanced Network Security Peter Reiher August, 2014.
Financial Modeling in Excel Day 2. Speed vs. Flexibility Tradeoff What we’re making flexible: – Long Term and Short Term Scooter Market Growth – Our Market.
Author: DoanNX Time: 45’.  OOP concepts  OOP in Java.
SharePoint Workflow Prepared By: Eng. Rasha Farouk.
Choosing an AS in a NutShell J.MOLIERE Who am I ? ► Independant author/consultant  Cahiers du programmeur Java – tome 2 – Eyrolles 2003  Cahiers.
MULTIPLICATION STRATEGIES
This tip sheet focuses on how to share client records and make client referrals using SMART. Total Pages: 6 Client Consent and Referral Consent Referral.
Apache ZooKeeper CMSC 491 Hadoop-Based Distributed Computing Spring 2016 Adam Shook.
Discussion about Interoperability (&versioning) Group Name: PRO & ARC Source: FUJITSU Meeting Date: Agenda Item: TS-0004.
MediaStream ● Overview ● Definitions ● getUserMedia() ● Recording ● Cloning/composition.
 Read o Identify facts and clue words o Identify the question o Understand the vocabulary.
MediaStream ● Definitions ● Common operations with example code (recording, cloning,...) ● Topics for discussion ● I prepared a few ● Suggestions from.
FAIR CONGRESSIONAL DISTRICTS FOR OHIO
The Object-Oriented Thought Process Chapter 03
Session 5 – Questionnaire Checklists
FAIR CONGRESSIONAL DISTRICTS FOR OHIO
Full Page Watermarking
How to Solve TiVo Error Codes on Your Streaming Devices?
Quantitative Stock Selection: Low Tracking Error Selection
BRINGING REALTIME MEDIA CAPABILITIES TO YOUR INTERFACE WITH WEBRTC
Hotmail Customer Help Hotmail customer helpHotmail customer help provides technical or non technical help to all user. If user face any type of issue and.
Subroutines Idea: useful code can be saved and re-used, with different data values Example: Our function to find the largest element of an array might.
Open on the student drive
Solving for a Variable In a Formula
Error Handling.
Promises.
Chapter 4 Test Review First day
Presentation transcript:

a synchronous choice getUserMedia options

Problem RTCPeerConnection requires MediaStreams (and MediaStreamTracks) in order to negotiate streams MediaStreams can currently only exist when the user has provided consent This leads to a problem where negotiation can’t continue without consent, which leads to clipping on answer

Proposed Solution (Common) Provide placeholder MediaStreams that can be used as a basis for negotiation – The object is real, but unconnected or disabled somehow prior to the user providing consent – The SSRCs that can be generated are stable [sic] – Negotiation can continue prior to consent being granted using the placeholder

Option 1 getUserMedia returns streams that do not start until consent is granted. var stream = navigator.getUserMedia(constraints); stream.audioTracks[0].onstart = grantedCb; stream.audioTracks[0].onend = deniedCb; pc.addStream(stream); Consent events are communicated on the tracks – A new started event is added to tracks. – The reasons for the end event are expanded to include all the error conditions for getUserMedia: nodevice, permissiondenied, deviceerror

Option 2 As option 1, except the return value is a wrapper: var streamBucket = navigator.getUserMedia(constraints); streamBucket.onsuccess = grantedCb; streamBucket.onfailure = deniedCb; pc.addStream(streamBucket.stream); Returned tracks are ‘muted’ until consent is granted Extra arguments to gUM create a signature that is identical in usage to existing asynchronous gUM – also possible with Option 1

Option 3 Stream placeholders are instantiated and “connected” to devices by getUserMedia var audioTrack = new AudioMediaStreamTrack(constraints); var stream = new MediaStream(audioTrack); navigator.getUserMedia(stream, grantedCb, deniedCb); pc.addStream(stream); Constraints are attached directly to tracks – Nascent until the device is connected – Turn into settings once the device is connected Backward compat (if desired) with overload

Option 4 Leave it asynchronous Don’t change anything Ensures that users don’t get an object that isn’t “working” Avoid programmer errors that arise due to bad assumptions about consent, device availability, constraints, etc…

Preferences Synchronous Option 3: – 3 fits better with the new settings work – 1 and 2 are functionally equivalent, with some stylistic differences, and some usability issues – 4 doesn’t solve the problem No backward compatibility hack – Overloading gUM might be possible to replicate old behavior, but that’s just extra API cruft