6
6
< meta content ="DREAM " name ="w3c-status ">
7
7
< link href ="https://www.w3.org/StyleSheets/TR/2016/W3C-DREAM " rel ="stylesheet ">
8
8
< link href ="https://www.w3.org/2008/site/images/favicon.ico " rel ="icon ">
9
- < meta content ="Bikeshed version 86a39676f08870ba1210b97fe65ff62bd4e723c9 " name ="generator ">
9
+ < meta content ="Bikeshed version ae6def1cbca03b321b2ad730ac2f51eeba21ed81 " name ="generator ">
10
10
< link href ="https://alvestrand.github.io/webrtc-media-streams/ " rel ="canonical ">
11
11
< style > /* style-md-lists */
12
12
254
254
< div class ="head ">
255
255
< p data-fill-with ="logo "> < a class ="logo " href ="https://www.w3.org/ "> < img alt ="W3C " height ="48 " src ="https://www.w3.org/StyleSheets/TR/2016/logos/W3C " width ="72 "> </ a > </ p >
256
256
< h1 class ="p-name no-ref " id ="title "> WebRTC Insertable Media using Streams</ h1 >
257
- < h2 class ="no-num no-toc no-ref heading settled " id ="subtitle "> < span class ="content "> A Collection of Interesting Ideas, < time class ="dt-updated " datetime ="2019-10-14 " > 14 October 2019 </ time > </ span > </ h2 >
257
+ < h2 class ="no-num no-toc no-ref heading settled " id ="subtitle "> < span class ="content "> A Collection of Interesting Ideas, < time class ="dt-updated " datetime ="2020-02-21 " > 21 February 2020 </ time > </ span > </ h2 >
258
258
< div data-fill-with ="spec-metadata ">
259
259
< dl >
260
260
< dt > This version:
@@ -266,7 +266,7 @@ <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="cont
266
266
</ dl >
267
267
</ div >
268
268
< div data-fill-with ="warning "> </ div >
269
- < p class ="copyright " data-fill-with ="copyright "> < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#Copyright "> Copyright</ a > © 2019 < a href ="https://www.w3.org/ "> < abbr title ="World Wide Web Consortium "> W3C</ abbr > </ a > < sup > ®</ sup > (< a href ="https://www.csail.mit.edu/ "> < abbr title ="Massachusetts Institute of Technology "> MIT</ abbr > </ a > , < a href ="https://www.ercim.eu/ "> < abbr title ="European Research Consortium for Informatics and Mathematics "> ERCIM</ abbr > </ a > , < a href ="https://www.keio.ac.jp/ "> Keio</ a > , < a href ="https://ev.buaa.edu.cn/ "> Beihang</ a > ). W3C < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer "> liability</ a > , < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks "> trademark</ a > and < a href ="https://www.w3.org/Consortium/Legal/copyright-documents "> document use</ a > rules apply. </ p >
269
+ < p class ="copyright " data-fill-with ="copyright "> < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#Copyright "> Copyright</ a > © 2020 < a href ="https://www.w3.org/ "> < abbr title ="World Wide Web Consortium "> W3C</ abbr > </ a > < sup > ®</ sup > (< a href ="https://www.csail.mit.edu/ "> < abbr title ="Massachusetts Institute of Technology "> MIT</ abbr > </ a > , < a href ="https://www.ercim.eu/ "> < abbr title ="European Research Consortium for Informatics and Mathematics "> ERCIM</ abbr > </ a > , < a href ="https://www.keio.ac.jp/ "> Keio</ a > , < a href ="https://ev.buaa.edu.cn/ "> Beihang</ a > ). W3C < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer "> liability</ a > , < a href ="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks "> trademark</ a > and < a href ="https://www.w3.org/Consortium/Legal/copyright-documents "> document use</ a > rules apply. </ p >
270
270
< hr title ="Separator for header ">
271
271
</ div >
272
272
< div class ="p-summary " data-fill-with ="abstract ">
@@ -283,15 +283,15 @@ <h2 class="no-num no-toc no-ref heading settled" id="sotd"><span class="content"
283
283
< nav data-fill-with ="table-of-contents " id ="toc ">
284
284
< h2 class ="no-num no-toc no-ref " id ="contents "> Table of Contents</ h2 >
285
285
< ol class ="toc " role ="directory ">
286
- < li > < a href ="#introduction "> < span class ="secno "> 1</ span > < span class ="content "> Introduction {#introduction} </ span > </ a >
287
- < li > < a href ="#terminology "> < span class ="secno "> 2</ span > < span class ="content "> Terminology {#terminology} </ span > </ a >
286
+ < li > < a href ="#introduction "> < span class ="secno "> 1</ span > < span class ="content "> Introduction</ span > </ a >
287
+ < li > < a href ="#terminology "> < span class ="secno "> 2</ span > < span class ="content "> Terminology</ span > </ a >
288
288
< li >
289
- < a href ="#specification "> < span class ="secno "> 3</ span > < span class ="content "> Specification {#specification} </ span > </ a >
289
+ < a href ="#specification "> < span class ="secno "> 3</ span > < span class ="content "> Specification</ span > </ a >
290
290
< ol class ="toc ">
291
- < li > < a href ="#operation "> < span class ="secno "> 3.1</ span > < span class ="content "> Extension operation {#operation}</ span > </ a >
291
+ < li > < a href ="#operation "> < span class ="secno "> 3.1</ span > < span class ="content "> Extension operation # {#operation}</ span > </ a >
292
292
</ ol >
293
- < li > < a href ="#privacy "> < span class ="secno "> 4</ span > < span class ="content "> Privacy and security considerations {#privacy} </ span > </ a >
294
- < li > < a href ="#examples "> < span class ="secno "> 5</ span > < span class ="content "> Examples {#examples} </ span > </ a >
293
+ < li > < a href ="#privacy "> < span class ="secno "> 4</ span > < span class ="content "> Privacy and security considerations</ span > </ a >
294
+ < li > < a href ="#examples "> < span class ="secno "> 5</ span > < span class ="content "> Examples</ span > </ a >
295
295
< li > < a href ="#conformance "> < span class ="secno "> </ span > < span class ="content "> Conformance</ span > </ a >
296
296
< li >
297
297
< a href ="#index "> < span class ="secno "> </ span > < span class ="content "> Index</ span > </ a >
@@ -309,7 +309,7 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
309
309
</ ol >
310
310
</ nav >
311
311
< main >
312
- < h2 class ="heading settled " data-level ="1 " id ="introduction "> < span class ="secno "> 1. </ span > < span class ="content "> Introduction {#introduction} </ span > < a class ="self-link " href ="#introduction "> </ a > </ h2 >
312
+ < h2 class ="heading settled " data-level ="1 " id ="introduction "> < span class ="secno "> 1. </ span > < span class ="content "> Introduction</ span > < a class ="self-link " href ="#introduction "> </ a > </ h2 >
313
313
< p > The < a data-link-type ="biblio " href ="#biblio-webrtc-nv-use-cases "> [WEBRTC-NV-USE-CASES]</ a > document describes several functions that
314
314
can only be achieved by access to media (requirements N20-N22),
315
315
including, but not limited to:</ p >
@@ -329,9 +329,9 @@ <h2 class="heading settled" data-level="1" id="introduction"><span class="secno"
329
329
< p > This specification gives an interface that builds on < a data-link-type ="biblio " href ="#biblio-web-codecs "> [WEB-CODECS]</ a > to
330
330
provide access to such functionality while retaining the setup flow of
331
331
RTCPeerConnection.</ p >
332
- < h2 class ="heading settled " data-level ="2 " id ="terminology "> < span class ="secno "> 2. </ span > < span class ="content "> Terminology {#terminology} </ span > < a class ="self-link " href ="#terminology "> </ a > </ h2 >
332
+ < h2 class ="heading settled " data-level ="2 " id ="terminology "> < span class ="secno "> 2. </ span > < span class ="content "> Terminology</ span > < a class ="self-link " href ="#terminology "> </ a > </ h2 >
333
333
< p > The IDL terms < dfn data-dfn-type ="dfn " data-noexport id ="audioencoder " type ="idl-name "> AudioEncoder< a class ="self-link " href ="#audioencoder "> </ a > </ dfn > , < dfn data-dfn-type ="dfn " data-noexport id ="videoencoder "> VideoEncoder< a class ="self-link " href ="#videoencoder "> </ a > </ dfn > , < dfn data-dfn-type ="dfn " data-noexport id ="audiodecoder "> AudioDecoder< a class ="self-link " href ="#audiodecoder "> </ a > </ dfn > , < dfn data-dfn-type ="dfn " data-noexport id ="videodecoder "> VideoDecoder< a class ="self-link " href ="#videodecoder "> </ a > </ dfn > are defined in < a data-link-type ="biblio " href ="#biblio-web-codecs "> [WEB-CODECS]</ a > . </ p >
334
- < h2 class ="heading settled " data-level ="3 " id ="specification "> < span class ="secno "> 3. </ span > < span class ="content "> Specification {#specification} </ span > < a class ="self-link " href ="#specification "> </ a > </ h2 >
334
+ < h2 class ="heading settled " data-level ="3 " id ="specification "> < span class ="secno "> 3. </ span > < span class ="content "> Specification</ span > < a class ="self-link " href ="#specification "> </ a > </ h2 >
335
335
< p > The Streams definition doesn’t use WebIDL much, but the WebRTC spec does.
336
336
This specification shows the IDL extensions for WebRTC.</ p >
337
337
< p > It uses an extension to RTCConfiguration in order to pass the extra
@@ -351,7 +351,7 @@ <h2 class="heading settled" data-level="3" id="specification"><span class="secno
351
351
< a class ="n " data-link-type ="idl-name " href ="#callbackdef-decoderdecorator " id ="ref-for-callbackdef-decoderdecorator "> < c- n > DecoderDecorator</ c- > </ a > < dfn class ="idl-code " data-dfn-for ="RTCConfiguration " data-dfn-type ="dict-member " data-export data-type ="DecoderDecorator " id ="dom-rtcconfiguration-decoderfactory "> < code > < c- g > decoderFactory</ c- > </ code > < a class ="self-link " href ="#dom-rtcconfiguration-decoderfactory "> </ a > </ dfn > ;
352
352
};
353
353
</ pre >
354
- < h3 class ="heading settled " data-level ="3.1 " id ="operation "> < span class ="secno "> 3.1. </ span > < span class ="content "> Extension operation {#operation}</ span > < a class ="self-link " href ="#operation "> </ a > </ h3 >
354
+ < h3 class ="heading settled " data-level ="3.1 " id ="operation "> < span class ="secno "> 3.1. </ span > < span class ="content "> Extension operation # {#operation}</ span > < a class ="self-link " href ="#operation "> </ a > </ h3 >
355
355
At creation of an RTCPeerConnection, the following steps are added to
356
356
the creation algorithm:
357
357
< ul >
@@ -389,12 +389,12 @@ <h3 class="heading settled" data-level="3.1" id="operation"><span class="secno">
389
389
< p > If "encoder" has an attribute "writable", pipe "source" to it. Otherwise, pipe "source" to the "internalEncoder"'s "writable".</ p >
390
390
</ ul >
391
391
< p > The media will then be processed according to the rules of < a data-link-type ="biblio " href ="#biblio-web-codecs "> [WEB-CODECS]</ a > .</ p >
392
- < h2 class ="heading settled " data-level ="4 " id ="privacy "> < span class ="secno "> 4. </ span > < span class ="content "> Privacy and security considerations {#privacy} </ span > < a class ="self-link " href ="#privacy "> </ a > </ h2 >
392
+ < h2 class ="heading settled " data-level ="4 " id ="privacy "> < span class ="secno "> 4. </ span > < span class ="content "> Privacy and security considerations</ span > < a class ="self-link " href ="#privacy "> </ a > </ h2 >
393
393
< p > This API gives Javascript access to the content of media streams. This
394
394
is also available from other sources, such as Canvas and WebAudio.</ p >
395
395
< p > However, streams that are isolated (as specified in < a data-link-type ="biblio " href ="#biblio-webrtc-identity "> [WEBRTC-IDENTITY]</ a > ) or tainted with another origin, cannot be
396
396
accessed using this API, since that would break the isolation rule.</ p >
397
- < h2 class ="heading settled " data-level ="5 " id ="examples "> < span class ="secno "> 5. </ span > < span class ="content "> Examples {#examples} </ span > < a class ="self-link " href ="#examples "> </ a > </ h2 >
397
+ < h2 class ="heading settled " data-level ="5 " id ="examples "> < span class ="secno "> 5. </ span > < span class ="content "> Examples</ span > < a class ="self-link " href ="#examples "> </ a > </ h2 >
398
398
</ main >
399
399
< div data-fill-with ="conformance ">
400
400
< h2 class ="no-ref no-num heading settled " id ="conformance "> < span class ="content "> Conformance</ span > < a class ="self-link " href ="#conformance "> </ a > </ h2 >
@@ -560,37 +560,37 @@ <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="c
560
560
< aside class ="dfn-panel " data-for ="term-for-dom-audiodecoder ">
561
561
< a href ="https://github.com/WICG/web-codecs/#dom-audiodecoder "> https://github.com/WICG/web-codecs/#dom-audiodecoder</ a > < b > Referenced in:</ b >
562
562
< ul >
563
- < li > < a href ="#ref-for-dom-audiodecoder "> 3. Specification {#specification} </ a >
563
+ < li > < a href ="#ref-for-dom-audiodecoder "> 3. Specification</ a >
564
564
</ ul >
565
565
</ aside >
566
566
< aside class ="dfn-panel " data-for ="term-for-dom-audioencoder ">
567
567
< a href ="https://github.com/WICG/web-codecs/#dom-audioencoder "> https://github.com/WICG/web-codecs/#dom-audioencoder</ a > < b > Referenced in:</ b >
568
568
< ul >
569
- < li > < a href ="#ref-for-dom-audioencoder "> 3. Specification {#specification} </ a >
569
+ < li > < a href ="#ref-for-dom-audioencoder "> 3. Specification</ a >
570
570
</ ul >
571
571
</ aside >
572
572
< aside class ="dfn-panel " data-for ="term-for-dom-videodecoder ">
573
573
< a href ="https://github.com/WICG/web-codecs/#dom-videodecoder "> https://github.com/WICG/web-codecs/#dom-videodecoder</ a > < b > Referenced in:</ b >
574
574
< ul >
575
- < li > < a href ="#ref-for-dom-videodecoder "> 3. Specification {#specification} </ a >
575
+ < li > < a href ="#ref-for-dom-videodecoder "> 3. Specification</ a >
576
576
</ ul >
577
577
</ aside >
578
578
< aside class ="dfn-panel " data-for ="term-for-dom-videoencoder ">
579
579
< a href ="https://github.com/WICG/web-codecs/#dom-videoencoder "> https://github.com/WICG/web-codecs/#dom-videoencoder</ a > < b > Referenced in:</ b >
580
580
< ul >
581
- < li > < a href ="#ref-for-dom-videoencoder "> 3. Specification {#specification} </ a >
581
+ < li > < a href ="#ref-for-dom-videoencoder "> 3. Specification</ a >
582
582
</ ul >
583
583
</ aside >
584
584
< aside class ="dfn-panel " data-for ="term-for-dom-rtcconfiguration ">
585
585
< a href ="https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration "> https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration</ a > < b > Referenced in:</ b >
586
586
< ul >
587
- < li > < a href ="#ref-for-dom-rtcconfiguration "> 3. Specification {#specification} </ a >
587
+ < li > < a href ="#ref-for-dom-rtcconfiguration "> 3. Specification</ a >
588
588
</ ul >
589
589
</ aside >
590
590
< aside class ="dfn-panel " data-for ="term-for-dom-rtcpeerconnection ">
591
591
< a href ="https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection "> https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection</ a > < b > Referenced in:</ b >
592
592
< ul >
593
- < li > < a href ="#ref-for-dom-rtcpeerconnection "> 3. Specification {#specification} </ a >
593
+ < li > < a href ="#ref-for-dom-rtcpeerconnection "> 3. Specification</ a >
594
594
</ ul >
595
595
</ aside >
596
596
< h3 class ="no-num no-ref heading settled " id ="index-defined-elsewhere "> < span class ="content "> Terms defined by reference</ span > < a class ="self-link " href ="#index-defined-elsewhere "> </ a > </ h3 >
@@ -618,7 +618,7 @@ <h3 class="no-num no-ref heading settled" id="normative"><span class="content">N
618
618
< dt id ="biblio-web-codecs "> [WEB-CODECS]
619
619
< dd > < a href ="https://github.com/WICG/web-codecs/blob/master/explainer.md "> Web Codecs explainer</ a > . URL: < a href ="https://github.com/WICG/web-codecs/blob/master/explainer.md "> https://github.com/WICG/web-codecs/blob/master/explainer.md</ a >
620
620
< dt id ="biblio-webrtc "> [WEBRTC]
621
- < dd > Adam Bergkvist ; et al. < a href ="https://www.w3.org/TR/webrtc/ "> WebRTC 1.0: Real-time Communication Between Browsers</ a > . 27 September 2018 . CR. URL: < a href ="https://www.w3.org/TR/webrtc/ "> https://www.w3.org/TR/webrtc/</ a >
621
+ < dd > Cullen Jennings ; et al. < a href ="https://www.w3.org/TR/webrtc/ "> WebRTC 1.0: Real-time Communication Between Browsers</ a > . 13 December 2019 . CR. URL: < a href ="https://www.w3.org/TR/webrtc/ "> https://www.w3.org/TR/webrtc/</ a >
622
622
</ dl >
623
623
< h3 class ="no-num no-ref heading settled " id ="informative "> < span class ="content "> Informative References</ span > < a class ="self-link " href ="#informative "> </ a > </ h3 >
624
624
< dl >
@@ -647,31 +647,31 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
647
647
< aside class ="dfn-panel " data-for ="typedefdef-encoder ">
648
648
< b > < a href ="#typedefdef-encoder "> #typedefdef-encoder</ a > </ b > < b > Referenced in:</ b >
649
649
< ul >
650
- < li > < a href ="#ref-for-typedefdef-encoder "> 3. Specification {#specification} </ a > < a href ="#ref-for-typedefdef-encoder① "> (2)</ a >
650
+ < li > < a href ="#ref-for-typedefdef-encoder "> 3. Specification</ a > < a href ="#ref-for-typedefdef-encoder① "> (2)</ a >
651
651
</ ul >
652
652
</ aside >
653
653
< aside class ="dfn-panel " data-for ="typedefdef-decoder ">
654
654
< b > < a href ="#typedefdef-decoder "> #typedefdef-decoder</ a > </ b > < b > Referenced in:</ b >
655
655
< ul >
656
- < li > < a href ="#ref-for-typedefdef-decoder "> 3. Specification {#specification} </ a > < a href ="#ref-for-typedefdef-decoder① "> (2)</ a >
656
+ < li > < a href ="#ref-for-typedefdef-decoder "> 3. Specification</ a > < a href ="#ref-for-typedefdef-decoder① "> (2)</ a >
657
657
</ ul >
658
658
</ aside >
659
659
< aside class ="dfn-panel " data-for ="dictdef-config ">
660
660
< b > < a href ="#dictdef-config "> #dictdef-config</ a > </ b > < b > Referenced in:</ b >
661
661
< ul >
662
- < li > < a href ="#ref-for-dictdef-config "> 3. Specification {#specification} </ a > < a href ="#ref-for-dictdef-config① "> (2)</ a >
662
+ < li > < a href ="#ref-for-dictdef-config "> 3. Specification</ a > < a href ="#ref-for-dictdef-config① "> (2)</ a >
663
663
</ ul >
664
664
</ aside >
665
665
< aside class ="dfn-panel " data-for ="callbackdef-encoderdecorator ">
666
666
< b > < a href ="#callbackdef-encoderdecorator "> #callbackdef-encoderdecorator</ a > </ b > < b > Referenced in:</ b >
667
667
< ul >
668
- < li > < a href ="#ref-for-callbackdef-encoderdecorator "> 3. Specification {#specification} </ a >
668
+ < li > < a href ="#ref-for-callbackdef-encoderdecorator "> 3. Specification</ a >
669
669
</ ul >
670
670
</ aside >
671
671
< aside class ="dfn-panel " data-for ="callbackdef-decoderdecorator ">
672
672
< b > < a href ="#callbackdef-decoderdecorator "> #callbackdef-decoderdecorator</ a > </ b > < b > Referenced in:</ b >
673
673
< ul >
674
- < li > < a href ="#ref-for-callbackdef-decoderdecorator "> 3. Specification {#specification} </ a >
674
+ < li > < a href ="#ref-for-callbackdef-decoderdecorator "> 3. Specification</ a >
675
675
</ ul >
676
676
</ aside >
677
677
< script > /* script-dfn-panel */
0 commit comments