https://wiki.mozilla.org/api.php?action=feedcontributions&user=Mreavy&feedformat=atomMozillaWiki - User contributions [en]2024-03-28T10:44:19ZUser contributionsMediaWiki 1.27.4https://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1201632Platform/GFX/Quantum Render2018-09-27T00:56:57Z<p>Mreavy: /* Vital stats */ priority defs</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}: https://mzl.la/2wlbV2s </li> <br />
<li>Blocking Beta: P1s on {{bug|1386669}} https://mzl.la/2LA1Ljm </li> <br />
<li>Blocking Release - looking for owners now: P2s on {{bug|1386669}} https://mzl.la/2CnYS5F </li><br />
<li>Blocking Release - will get moved to P2 when existing P2s are fixed : P3s on {{bug|1386669}} https://mzl.la/2wLNsmn </li><br />
<li>Need a priority call if they block: P4s on {{bug|1386669}}: https://mzl.la/2QWWLsO </li> <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|1386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
<ul><br />
<li>very important - looking to find owners and land fixes asap <br />
<li>could be blocking other WR development or solid use of the feature<br />
<li>can't get into beta with these unresolved.<br />
</ul><br />
</li><br />
<li>P2 & P3: block "riding into release" <br />
<ul><br />
<li>not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
<li>We can ride into beta with these, but they need to be fixed before we ride-to-release <br />
<li>P2s should be the list developers look at to find their next WR bug<br />
<li>If there are no currently unassigned P2 bugs, ping mreavy in #gfx on irc<br />
</ul><br />
</li><br />
<li>P4: needs a call to determine if they should block MVP (we are typically waiting on info to make a decision)<br />
</ul><br />
Meta bugs for follow-on work:<br />
<ul><br />
<li>Blocking Next (bugs blocking next release after MVP): {{Bug|1386674}}</li><br />
<br />
<li>Blocking Android bugs: {{Bug|1485449}}</li><br />
<br />
<li>Blocking Mac bugs: {{Bug|1479789}}<br />
<br />
<li>Blocking Linux: {{Bug|1491303}}<br />
</ul><br />
Triage info: https://gist.github.com/Gankro/b05d5bb8c91faff6d23e1d2549e26fe4<br />
<br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. There is a [https://github.com/servo/webrender/wiki wiki] with several informative documents on the architecture of WebRender. In particular, [https://github.com/servo/webrender/wiki/Debugging-WebRender Debugging WebRender] document can be useful to get familiar with the tools and tricks regularly employed by developers. There is also a tutorial-style [https://github.com/servo/webrender/issues/3070 issue 3070] describing a step-by-step process of investigating and fixing a particular rendering issue.<br />
<br />
Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1201204Platform/GFX/Quantum Render2018-09-18T22:02:42Z<p>Mreavy: Added linux blocking bug and minor formatting changes</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}: https://mzl.la/2wlbV2s </li> <br />
<li>Blocking Beta: P1s on {{bug|1386669}} https://mzl.la/2LA1Ljm </li> <br />
<li>Blocking Release: P2s on {{bug|1386669}} https://mzl.la/2CnYS5F </li><br />
<li>Need a priority call if they block: P3s on {{bug|1386669}}: https://mzl.la/2wLNsmn </li> <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|1386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
<ul><br />
<li>very important - looking to find owners and land fixes asap <br />
<li>could be blocking other WR development or solid use of the feature<br />
<li>can't get into beta with these unresolved.<br />
</ul><br />
</li><br />
<li>P2: block "riding into release" <br />
<ul><br />
<li>not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
<li>We can ride into beta with these, but they need to be fixed before we ride-to-release <br />
</ul><br />
</li><br />
<li>P3: needs a call to determine if they should block MVP (bugs here will graduate to P2 or move to Next)<br />
</ul><br />
Meta bugs for follow-on work:<br />
<ul><br />
<li>Blocking Next (bugs blocking next release after MVP): {{Bug|1386674}}</li><br />
<br />
<li>Blocking Android bugs: {{Bug|1485449}}</li><br />
<br />
<li>Blocking Mac bugs: {{Bug|1479789}}<br />
<br />
<li>Blocking Linux: {{Bug|1491303}}<br />
</ul><br />
Triage info: https://gist.github.com/Gankro/b05d5bb8c91faff6d23e1d2549e26fe4<br />
<br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1200738Platform/GFX/Quantum Render2018-09-09T03:44:17Z<p>Mreavy: /* Vital stats */ spelling fix</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}</li> <br />
<li>Blocking Beta: P1s on {{bug|1386669}} </li> <br />
<li>Blocking Release: P2s on {{bug|1386669}} <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|1386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
very important - looking to find owners and land fixes asap <br />
could be blocking other WR development or solid use of the feature<br />
can't get into beta with these unresolved.</li><br />
<li>P2: block "riding into release" <br />
not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
We can ride into beta with these, but they need to be fixed before we ride-to-release </li><br />
<li>P3: needs a call to determine if they should block MVP (bugs here will graduate to P2 or move to Next)<br />
</ul><br />
Meta bugs for follow-on work:<br />
<ul><br />
<li>Blocking Next (bugs blocking next release after MVP): {{Bug|1386674}}</li><br />
<br />
<li>Blocking Android bugs: {{Bug|1485449}}</li><br />
<br />
<li>Blocking Mac bugs: {{Bug|1479789}}<br />
</ul><br />
Triage info: https://gist.github.com/Gankro/b05d5bb8c91faff6d23e1d2549e26fe4<br />
<br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1200737Platform/GFX/Quantum Render2018-09-09T03:16:41Z<p>Mreavy: /* Vital stats */</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}</li> <br />
<li>Blocking Beta: P1s on {{bug|1386669}} </li> <br />
<li>Blocking Release: P2s on {{bug|1386669}} <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|1386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
very important - looking to find owners and land fixes asap <br />
could be blocking other WR development or solid use of the feature<br />
can't get into beta with these unresolved.</li><br />
<li>P2: block "riding into release" <br />
not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
We can ride into beta with these, but they need to be fixed before we ride-to-release </li><br />
<li>P3: needs a call to determine if they should block MVP (bugs here will graduate to P2 or move to Next)<br />
</ul><br />
Meta bugs for follow on work:<br />
<ul><br />
<li>Blocking Next (bugs blocking next release after MVP): {{Bug|1386674}}</li><br />
<br />
<li>Blocking Android bugs: {{Bug|1485449}}</li><br />
<br />
<li>Blocking Mac bugs: {{Bug|1479789}}<br />
</ul><br />
Triage info: https://gist.github.com/Gankro/b05d5bb8c91faff6d23e1d2549e26fe4<br />
<br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1200736Platform/GFX/Quantum Render2018-09-09T03:15:29Z<p>Mreavy: /* Vital stats */ Added additional metabugs</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}</li> <br />
<li>Blocking Beta: P1s on {{bug|11386669}} </li> <br />
<li>Blocking Release: P2s on {{bug|11386669}} <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|11386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
very important - looking to find owners and land fixes asap <br />
could be blocking other WR development or solid use of the feature<br />
can't get into beta with these unresolved.</li><br />
<li>P2: block "riding into release" <br />
not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
We can ride into beta with these, but they need to be fixed before we ride-to-release </li><br />
<li>P3: needs a call to determine if they should block MVP (bugs here will graduate to P2 or move to Next)<br />
</ul><br />
Meta bugs for follow on work:<br />
<ul><br />
<li>Blocking Next (bugs blocking next release after MVP): {{Bug|1386674}}</li><br />
<br />
<li>Blocking Android bugs: {{Bug|1485449}}</li><br />
<br />
<li>Blocking Mac bugs: {{Bug|1479789}}<br />
</ul><br />
Triage info: https://gist.github.com/Gankro/b05d5bb8c91faff6d23e1d2549e26fe4<br />
<br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/WebRender&diff=1200735Platform/GFX/WebRender2018-09-09T03:09:24Z<p>Mreavy: Created page with "The WebRender project within Firefox is sometimes called [https://wiki.mozilla.org/Platform/GFX/Quantum_Render Quantum Render]. <br/> Please visit the [https://wiki.mozilla.or..."</p>
<hr />
<div>The WebRender project within Firefox is sometimes called [https://wiki.mozilla.org/Platform/GFX/Quantum_Render Quantum Render]. <br/> Please visit the [https://wiki.mozilla.org/Platform/GFX/Quantum_Render Quantum Render wikipage] for more details on the project.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1200734Platform/GFX/Quantum Render2018-09-09T02:53:59Z<p>Mreavy: /* Vital stats */ Updated metabugs and priority definitions</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabugs: <br/><br />
<ul><br />
<li>Blocking Nightly : {{bug|1386665}}</li> <br />
<li>Blocking Beta: P1s on {{bug|11386669}} </li> <br />
<li>Blocking Release: P2s on {{bug|11386669}} <br />
</ul><br />
General prioritization metric for our stage-wr-trains bug ({{bug|11386669}}) is:<br />
<ul><br />
<li>P1: block "riding into beta"<br />
very important - looking to find owners and land fixes asap <br />
could be blocking other WR development or solid use of the feature<br />
can't get into beta with these unresolved.</li><br />
<li>P2: block "riding into release" <br />
not blocking other developers or solid use of the feature, but it shows a regression or correctness problem that we can't ship with. <br />
We can ride into beta with these, but they need to be fixed before we ride-to-release </li><br />
<li>P3: needs a call to determine if they should block MVP (bugs here will graduate to P2 or move to Next)<br />
Bugs <br />
</ul><br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Platform/GFX/Quantum_Render&diff=1200643Platform/GFX/Quantum Render2018-09-06T03:29:15Z<p>Mreavy: /* Vital stats */</p>
<hr />
<div>== What is it ==<br />
<br />
The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox. It will replace Gecko's existing compositor, interfacing with Gecko's main-thread layout code. As WebRender is written in Rust and uses a very different design approach, we expect to get stability and performance benefits from this switch.<br />
<br />
== Vital stats ==<br />
<br />
Canonical code repository: https://hg.mozilla.org/mozilla-central <br/><br />
Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender Core :: Graphics: WebRender] <br/><br />
Tracking metabug: {{bug|1311790}} <br/><br />
Mailing list: [https://lists.mozilla.org/listinfo/dev-tech-gfx dev-tech-gfx@lists.mozilla.org] <br/><br />
IRC channel: #gfx <br/><br />
Project owner: Maire Reavy <br/><br />
<br />
== Getting the code ==<br />
<br />
The work for the Quantum Render project is in mozilla-central and uses the normal gecko development workflow.<br />
<br />
== Build instructions ==<br />
<br />
Building is the same as building a regular mozilla-central build. In fact, any regular mozilla-central build should have WebRender built in, unless you explicitly disable it via <tt>ac_add_options --disable-webrender</tt>. However, WebRender will be disabled by default at runtime. You can enable it one of three ways:<br />
* Add <tt>ac_add_options --enable-webrender</tt> to your mozconfig. All this does is build with the <tt>gfx.webrender.enabled</tt> pref turned on by default instead of turned off by default.<br />
* Manually flip the <tt>gfx.webrender.enabled</tt> pref. You can do this from about:config, and it requires restarting the browser to take effect.<br />
* Run firefox with <tt>MOZ_WEBRENDER=1</tt> as an environment variable. This will attempt to enable WebRender at runtime.<br />
<br />
<b>Note:</b> WebRender may still be disabled by other runtime conditions. Common conditions include a disabled GPU process (on Windows) or disabled hardware acceleration. You can check the WebRender status by going to about:support and looking at the WebRender line in the graphics section. On Linux hardware acceleration is disabled by default, so set <tt>layers.acceleration.force-enabled</tt> to true in about:config (restart required), or run with <tt>MOZ_ACCELERATED=1</tt> in the environment to ensure HWA is enabled and doesn't block WebRender.<br />
<br />
=== Testing third-party rust library changes ===<br />
<br />
Sometimes when hacking on Quantum Render, you'll need to make a change to one of the upstream dependencies of the webrender library (say for example [https://github.com/servo/euclid euclid]). However, you may need to test out your changes in the QR build. The way to do this is not obvious, because the QR build uses the vendored copy of euclid (in third_party/rust/euclid) which you can't directly modify without violating the checksum checks. Instead, what you need to do is this:<br />
<br />
* First we make a copy of the vendored euclid repo<br />
cd $MOZILLA_ROOT/third_party/rust<br />
cp -R euclid euclid_modified<br />
* Then, make your desired changes to euclid_modified.<br />
* Then, we need to tell the build system to use euclid_modified instead of euclid. Note that for this to work, the version numbers in the Cargo.toml files should be the same in euclid and euclid_modified. The following steps add a [replace] section to the top-level libgkrust Cargo.toml file to use the modified euclid. See http://doc.crates.io/manifest.html#the-replace-section for details. You'll need to replace the <tt>0.10.3</tt> in the command below with whatever the library version in (as of this writing euclid is at v0.10.3 in the graphics repo).<br />
cd $MOZILLA_ROOT/toolkit/library/rust/<br />
echo -e '[replace]\n"euclid:0.10.3" = { path = "../../../third_party/rust/euclid_modified" }" >> Cargo.toml<br />
cargo update -p euclid # This updates Cargo.lock<br />
* And then build with your modified euclid:<br />
cd $MOZILLA_ROOT<br />
mach build<br />
<br />
== Hacking ==<br />
<br />
There are lots of places to help hack on Quantum Render. See the sections below for some info on where to get started.<br />
<br />
=== On WebRender ===<br />
<br />
A good overview of WebRender and what it is can be found in [http://www.masonchang.com/blog/2016/7/18/a-short-walkthrough-of-webrender-2 this blog post]. WebRender is developed as a standalone library in the [https://github.com/servo/webrender WebRender github repo]. Look through the issues list to find things to work on. Some WebRender bugs that are good for new contributors are tagged on GitHub:<br />
<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.<br />
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.<br />
<br />
=== On Gecko integration ===<br />
<br />
(Note: the description below applies to the "layers mode" integration with WebRender, which is deprecated now. We are in the process of transitioning to the "layers-free mode", where Gecko display items are directly converted to WebRender commands via their CreateWebRenderCommands functions. Some of the content below still applies though; in particular we still create a WebRenderLayerManager, which manages the conversion from Gecko display items to WebRender display items.)<br />
<br />
If you are familiar with the way Gecko normally works, the Quantum Render changes should be relatively straightforward. Instead of using a ClientLayerManager, we create a [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderLayerManager.cpp WebRenderLayerManager] instance. This layer manager creates its own layer instances, and when those layers have their Render() function called, they generate WebRender-specific commands. These commands are sent over the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/ipc/PWebRenderBridge.ipdl PWebRenderBridge] IPDL channel, which is conceptually similar to PLayerTransaction in Gecko. The commands are received in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/layers/wr/WebRenderBridgeParent.cpp WebRenderBridgeParent] which interprets the messages, and talks to the core WebRender library using the API in [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/webrender_ffi.h webrender_ffi.h] (via various wrapper abstractions in <tt>gfx/webrender_bindings/</tt>). The API is implemented in the [https://hg.mozilla.org/projects/graphics/file/tip/gfx/webrender_bindings/src/bindings.rs webrender_bindings] crate, which is written in Rust.<br />
<br />
Look through [https://bugzilla.mozilla.org/buglist.cgi?component=Graphics%3A%20WebRender&product=Core&bug_status=__open__&list_id=13349798 open unassigned bugs] (with no open dependencies) in the WebRender bugzilla component to find things to work on.<br />
<br />
=== On reftests ===<br />
<br />
Many of the existing gecko reftests (over 13000 of them) are passing with Quantum Render. However, there are still around 140 failing reftests. These are listed in [https://docs.google.com/spreadsheets/d/1DcqaMvt3I38HIl3-RDS_6aiX67nQWItNcwmVt5utbDk/edit?usp=sharing this Google sheet]. You're welcome to work on getting these passing - please follow the procedure below:<br />
* Identify a single reftest you wish to work on. Try to pick one that sounds unrelated to other reftests that people are working on, because often one patch will fix multiple related reftests.<br />
* File a bug for that reftest, and mark it as blocking {{bug|1322815}} (webrender-reftests).<br />
* Work on the fix. The best way to do this is to remove the fails-if or skip-if annotation in your local checkout and run the reftest using <tt>mach reftest</tt>. Debug and fix as needed. Note that you can likely work on the bug on Windows/OS X locally, but we only run the tests on Linux64 in automation. So for best results, prefer working on Linux locally when possible.<br />
* If you need to do try pushes, use syntax <tt>try: -b do -p linux64 -u all[linux64-qr] -t none</tt>. You should do at least one try push after writing your fix to verify it works in automation, as well as to identify any other tests that are fixed by your patch. Make sure to update the annotations for all newly-passing tests as part of your final commit. Try not to introduce regressions, although breaking a small number of tests to make a larger number pass might be acceptable.<br />
* Land your fix after getting review as appropriate.<br />
<br />
In general, tests that are marked <tt>skip-if(webrender)</tt> are the worst, because they cause the reftest run to crash or hang and prevent other reftests from running. Slightly better than this are the <tt>random-if(webrender)</tt> tests - these can intermittently fail or pass, and so mean that there is a race condition somewhere. Slighly better than this are the <tt>fail-if(webrender)</tt> tests - these fail, but at least they do so consistently. Best of all are the ones with no webrender annotation at all, which means they behave the same as a Gecko build would.<br />
<br />
== Testing ==<br />
<br />
=== Locally ===<br />
<br />
If you want to run tests locally, you can use <tt>mach</tt> to run them as you would for Gecko normally. Just be sure to set <tt>MOZ_WEBRENDER=1</tt> when running to enable WebRender. On Linux, you should also set <tt>MOZ_ACCELERATED=1</tt> to enable hardware acceleration, without which WebRender will be disabled at runtime. For example, to run the sanity reftests which is a good smoketest that you didn't horribly break everything, you can do this:<br />
<br />
MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 ./mach reftest layout/reftests/reftest-sanity/<br />
<br />
=== Try syntax ===<br />
<br />
You can (and are encouraged to) push changes to tryserver to test them out before landing them. For linux64, the tests will run using a regular linux64 build. However, you need to specify <tt>linux64-qr</tt> as the test platform to have QR enabled during testing. The same goes for windows10-64. So, for example, to run all the available tests on QuantumRender-enabled builds, you could use this trychooser syntax:<br />
try: -b do -p linux64,win64,macosx64 -u all[linux64-qr,windows10-64-qr,macosx64-qr] -t all[linux64-qr,windows10-64-qr,macosx64-qr]<br />
<br />
=== Automation ===<br />
<br />
The integration branches (inbound and autoland) run a subset of QuantumRender tests on every push. The mozilla-central branch runs all that, plus a few extra tests that are not yet marked as tier-1.<br />
<br />
== Further reading ==<br />
<br />
There is more information at the following locations:<br />
* https://public.etherpad-mozilla.org/p/gfx</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/Bugs&diff=1181491Media/Bugs2017-09-30T17:04:33Z<p>Mreavy: Updated definitions of priorities</p>
<hr />
<div>==Media Bugs - Common Searches to see Product Backlog ==<br />
<p> </p><br />
<br />
'''[https://mzl.la/2nxVkSy "Real-time Media" Bugs] that have landed during Firefox 55'''<br />
<br />
'''[https://mzl.la/2ny2tlV "Playback" Bugs"] that have landed during Firefox 55'''<br />
<br />
===WebRTC, WebAudio, Cubeb, MediaStreamGraph and Media Recording (combined)===<br />
* [http://mzl.la/1U5l5GE Un-triaged bugs]<br />
* [http://mzl.la/1U5ltES Unconfirmed bugs]<br />
* [http://mzl.la/1XhyImX P1 bugs]<br />
* [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Crashes in WebRTC, MediaStreamGraph, cubeb, MediaRecorder]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&version=53.0a1&version=53.0a2&version=54.0a1&version=54.0b1&version=55.0a1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Just in 53/54/55 (Note: URL will need updates occasionally)]<br />
* WebAudio: Note that this has to be split due to URL-length limits in the server<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~WebAudio&proto_signature=~AudioNode&proto_signature=~AudioContext&proto_signature=~BufferDecoder&proto_signature=~OscillatorNode&proto_signature=~AudioDestination&proto_signature=~ScriptProcessorNode&proto_signature=~DelayNode&proto_signature=~AudioScheduled&proto_signature=~CompressorNode&proto_signature=~AudioListener&proto_signature=~ConstantSource&proto_signature=~PannerNode&proto_signature=~FilterNode&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- first half]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~DelayBuffer&proto_signature=~GainNode&proto_signature=~ShaperNode&proto_signature=~AudioSourceNode&proto_signature=~AudioEvent&proto_signature=~AudioProcessing&proto_signature=~ConvolverNode&proto_signature=~AudioParam&proto_signature=~HRTF&proto_signature=~WebCore&proto_signature=~AudioBuffer&proto_signature=~AnalyserNode&product=Firefox&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- 2nd half]<br />
<br />
===Core::Audio/Video (Main Component) Queries===<br />
<br />
* [http://mzl.la/1h3slCq Un-triaged Audio/Video bugs]<br />
** Help us triage. Any bug found in this search needs to be moved to one of the other media components (shown below)<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Playback Queries===<br />
<br />
* [https://goo.gl/wu0VGr Untriaged Playback bugs]<br />
* [https://goo.gl/RoZiEn P1 Playback bugs]<br />
* [https://is.gd/media_playback_p3 P3 Playback bugs]<br />
* [https://is.gd/media_playback_p5 P5 Playback bugs]<br />
* [https://is.gd/media_playback_triaged Open Playback bugs]<br />
** Anthony Jones (kentuckyfriedtakahe on irc) leads Playback. Please reach out to them directly if you have suggestions/questions about Playback bugs.<br />
<p> </p><br />
<br />
===Core::Audio/Video - MediaStreamGraph Bugzilla Queries===<br />
<br />
* [http://mzl.la/1RC0aXs Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RC0fug Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1RC0oxP Bugzilla Ranked "P3 to P5 list] <br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority.<br />
* [http://mzl.la/1RBZUb6 Un-triaged MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
* [http://mzl.la/1RC02r8 Unconfirmed MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Cubeb Bugzilla Queries===<br />
<br />
* [http://mzl.la/1HjtQrV Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjtUIj Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1HjtW2Y Bugzilla Ranked "P3 to P5 list] <br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority.<br />
* [http://mzl.la/1Hju0Qg Un-triaged Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
* [http://mzl.la/1Hju7Lu Unconfirmed Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - GMP (Gecko Media Plugin) Bugzilla Queries===<br />
<br />
* [http://mzl.la/1Q3CLBo Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjuaXK Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results <br />
* [http://mzl.la/1NceYey Bugzilla Ranked "P3 to P5 list] <br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority.<br />
* [http://mzl.la/1Hjujui Un-triaged GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
* [http://mzl.la/1HjuoOK Unconfirmed GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Recording Bugzilla Queries===<br />
<br />
* [http://mzl.la/1jXz16N Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1M0rudk Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEvYw Bugzilla Ranked "P3 to P5 list] <br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority. <br />
* [http://mzl.la/1iH134R Un-triaged Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1M0qXZ2 Unconfirmed Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===Web Audio Bugzilla Queries===<br />
<br />
* [http://mzl.la/1MTEa8b Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1MTEbsR Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEbJp Bugzilla Ranked "P3 to P5 list] <br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority. <br />
* [http://mzl.la/1M0izbQ Un-triaged Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1MTEggc Unconfirmed Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===WebRTC Bugzilla Queries===<br />
<br />
* [http://mzl.la/1S1PrWF Bugzilla Ranked "P1" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RPW8tq Bugzilla Ranked "P2" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1Cos5lF Bugzilla Ranked "P3 to P5 - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
** P3 bugs are unlikely to be fixed within the next 6 months; patches are welcome. P4 and P5 bugs will not get engineering time, but we will accept patches for P4 bugs. If you need a bug fixed sooner and can't contribute a patch or if you disagree with how a bug is prioritized, please needinfo the triage owner of that bug about raising the priority.<br />
* [http://mzl.la/1h2L6WT Un-triaged WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1S1RN7L Unconfirmed WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1MUt9bh Parking-lot bugs]<br />
** Search based on Open WebRTC bugs that have the parking-lot flag set]<br />
** NOTE: parking-lot bugs are the same as P5 bugs; we will not be dedicating time to fixing these. If you need a parking-lot bug fixed, please needinfo the triage owner of that bug about raising the priority.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC&diff=1181490Media/WebRTC2017-09-30T16:57:09Z<p>Mreavy: /* Triage Guidelines */ Added search link back in</p>
<hr />
<div>WebRTC is a free, open project that will bring peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]]. Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for interesting links and details. <br />
<br />
==Releases & Notes==<br />
*[https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Schedule Calendar]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/40 Firefox 40 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/41 Firefox 41 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/42 Firefox 42 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/43 Firefox 43 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/44 Firefox 44 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/45 Firefox 45 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46 Firefox 46 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/47 Firefox 47 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/48 Firefox 48 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/49 Firefox 49 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/50 Firefox 50 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/51 Firefox 51 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/52 Firefox 52 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/53 Firefox 53 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/54 Firefox 54 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/55 Firefox 55 WebRTC & Web Audio Release Notes]<br />
<br />
===Triage Guidelines===<br />
The Product Backlog is continually maintained to ensure relative priorities are understood. <br />
<br />
* Priorities follow the Firefox Desktop Standard:<br />
Go to [https://wiki.mozilla.org/Media/Bugs#WebRTC_Bugzilla_Queries WebRTC bugs] to search for all open WebRTC bugs (including untriaged and unconfirmed bugs).<br />
<br />
** Priority 1 - Blocker, must-fix before shipping. Almost by definition of P1, the "affected" flags and "tracking" flags for the bug should be set when it's triaged. <br />
** Priority 2 - High priority backlog (bugs we are currently working on or will be working on next)<br />
** Priority 3 - Lower priority backlog <br />
** Priority 4 - Bugs we will accept patches for<br />
** Priority 5 - Parking lot (Bugs we do not plan to spend any time on)<br />
<br />
*RANK: The Rank field lets us prioritize bugs within a priority bucket (P2, P3, etc) in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - the triager will default to mid-range value.<br />
** P1 Rank options=0-9, default 5<br />
** P2 Rank options=10-19, default 15<br />
** P3 Rank options=20-29, default 25<br />
** P4 Rank options=30-39, default 35<br />
** P5 Rank options=40-49, default 45<br />
*** Note: P5 and "parking-lot"-labelled bugs are treated identically. We no longer use "parking-lot"; it is a legacy classification.<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"<br />
** After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank<br />
*If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+<br />
**Before it can be given a Rank it should:<br />
*** be in an actionable state<br />
*** for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing<br />
*** for feature requests or enhancements, it means that there's a clear problem statement or suggestion<br />
*** has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months<br />
<p> </p><br />
<br />
'''Contributor Engagement'''<br />
* Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness<br />
* Add Whiteboard tag of [good first bug] for contributors to pick up<br />
<br />
==Project Status ==<br />
*[https://mozilla.aha.io/published/b40393012432847d857ee68299a8a82f?page=2 Detailed Roadmap], noting that the further out the more lose the targets are]<br />
<br />
==Contacts and Useful Links==<br />
*[https://mozilla.github.io/webrtc-landing/gum_test.html Click here] to try WebRTC features in the Firefox browser<br />
*[https://wiki.mozilla.org/Webrtc/contacts Contacts for WebRTC]<br />
*[https://wiki.mozilla.org/Webrtc/links Useful Links for WebRTC]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Tests Running tests for WebRTC in Firefox]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Logging Getting WebRTC logs in Firefox]<br />
<br />
==Meetings==<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Weekly Stand-up" || Wednesday || 6:00AM - 6:30AM & 1:30 - 2:00 PM || 9:00AM - 9:30PM & 4:30 - 5:00 PM || 3:00PM - 3:30PM & - 10:30PM-11:00PM || webRTC-Apps || [https://etherpad.mozilla.org/webrtcweekly etherpad]<br />
|-<br />
|}<br />
* Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked. Bring-up topics for longer Discussion at end if needed.<br />
** Developers and active contributors only need to attend one of the two sessions each week. We have 2 sessions due to the number of very different time zones throughout the team.<br />
** please update the [https://etherpad.mozilla.org/webrtcweekly Stand-up Notes etherpad] if you cannot make the meeting (even if it's just to say you're on PTO)<br />
* [http://ietf.org/ IETF Standards Meetings]<br />
<br />
==Archived==<br />
===Notes===<br />
*[https://wiki.mozilla.org/Media/WebRTC/archived Archived notes]<br />
<br />
<br />
<br />
----</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Webrtc/contacts&diff=1181489Webrtc/contacts2017-09-30T16:54:39Z<p>Mreavy: /* Roles and Responsibilities for webRTC contributors */ Updated info for Pehrsons, drno, jib and removed emeritus contributors</p>
<hr />
<div>==Roles and Responsibilities for webRTC contributors==<br />
This list is not exhaustive of everyone contributing to these projects. It is a place to get started if you need to locate someone in a related team.<br />
{| class="wikitable fullwidth-table"<br />
! Team !! Contacts !!<br />
|-<br />
<br />
| webRTC Engineering <br />
* Self-organizing and self-managing; team determines how much work they can commit to<br />
* Report impediments to during stand-up or to Engineering Manager<br />
* IRC Channel #media<br />
* Team mailing list: dev-media-request@lists.mozilla.org <br />
| <br />
* [https://mozillians.org/u/mreavy/ Maire Reavy, Sr Engineering Manager]<br />
* [https://mozillians.org/u/rjesup/ Randell Jesup, Module Owner]<br />
* [https://mozillians.org/en-US/u/docfaraday/ Byron Campen - signalling/ICE/networking submodule owner]<br />
* [https://mozillians.org/u/padenot/ Paul Adenot - media / web audio/ libcubeb /streaming]<br />
* [https://mozillians.org/u/baku/ Andrea Marchesini - Web Audio]<br />
* [https://mozillians.org/u/jib/ Jan-Ivar Bruaroey - WebRTC media lead & manager (getUserMedia, constraints, etc)]<br />
* [https://mozillians.org/en-US/u/nohlmeier/ Nils Ohlmeier - WebRTC networking lead & manager (signaling/ICE/networking)]<br />
* [https://mozillians.org/u/mfroman/ Michael Froman - signaling/ICE] <br />
* [https://mozillians.org/u/achronop/ Alex Chronopolous - WebRTC media, libcubeb]<br />
* [https://mozillians.org/u/ngrunbaum/ Nico Grunbaum - WebRTC stats]<br />
* [https://mozillians.org/u/dminor/ Dan Minor - Automation, Web Audio, WebRTC media ]<br />
* [https://mozillians.org/en-US/u/pehrsons/ Andreas Pehrson - MediaStreamGraph, WebRTC media ]<br />
* Paul Jones, Cisco, tech lead coordinator<br />
* Hank Peng, Cisco (specializing in OpenH264)<br />
* David Benham, Director at Cisco<br />
|- <br />
<br />
|}<br />
<p> </p></div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC&diff=1181488Media/WebRTC2017-09-30T16:50:09Z<p>Mreavy: Removed unnecessary sentence that could be confusing</p>
<hr />
<div>WebRTC is a free, open project that will bring peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]]. Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for interesting links and details. <br />
<br />
==Releases & Notes==<br />
*[https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Schedule Calendar]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/40 Firefox 40 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/41 Firefox 41 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/42 Firefox 42 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/43 Firefox 43 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/44 Firefox 44 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/45 Firefox 45 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46 Firefox 46 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/47 Firefox 47 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/48 Firefox 48 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/49 Firefox 49 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/50 Firefox 50 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/51 Firefox 51 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/52 Firefox 52 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/53 Firefox 53 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/54 Firefox 54 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/55 Firefox 55 WebRTC & Web Audio Release Notes]<br />
<br />
===Triage Guidelines===<br />
The Product Backlog is continually maintained to ensure relative priorities are understood. <br />
<br />
* Priorities follow the Firefox Desktop Standard:<br />
** Priority 1 - Blocker, must-fix before shipping. Almost by definition of P1, the "affected" flags and "tracking" flags for the bug should be set when it's triaged. <br />
** Priority 2 - High priority backlog (bugs we are currently working on or will be working on next)<br />
** Priority 3 - Lower priority backlog <br />
** Priority 4 - Bugs we will accept patches for<br />
** Priority 5 - Parking lot (Bugs we do not plan to spend any time on)<br />
<br />
*RANK: The Rank field lets us prioritize bugs within a priority bucket (P2, P3, etc) in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - the triager will default to mid-range value.<br />
** P1 Rank options=0-9, default 5<br />
** P2 Rank options=10-19, default 15<br />
** P3 Rank options=20-29, default 25<br />
** P4 Rank options=30-39, default 35<br />
** P5 Rank options=40-49, default 45<br />
*** Note: P5 and "parking-lot"-labelled bugs are treated identically. We no longer use "parking-lot"; it is a legacy classification.<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"<br />
** After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank<br />
*If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+<br />
**Before it can be given a Rank it should:<br />
*** be in an actionable state<br />
*** for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing<br />
*** for feature requests or enhancements, it means that there's a clear problem statement or suggestion<br />
*** has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months<br />
<p> </p><br />
<br />
'''Contributor Engagement'''<br />
* Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness<br />
* Add Whiteboard tag of [good first bug] for contributors to pick up<br />
<br />
==Project Status ==<br />
*[https://mozilla.aha.io/published/b40393012432847d857ee68299a8a82f?page=2 Detailed Roadmap], noting that the further out the more lose the targets are]<br />
<br />
==Contacts and Useful Links==<br />
*[https://mozilla.github.io/webrtc-landing/gum_test.html Click here] to try WebRTC features in the Firefox browser<br />
*[https://wiki.mozilla.org/Webrtc/contacts Contacts for WebRTC]<br />
*[https://wiki.mozilla.org/Webrtc/links Useful Links for WebRTC]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Tests Running tests for WebRTC in Firefox]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Logging Getting WebRTC logs in Firefox]<br />
<br />
==Meetings==<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Weekly Stand-up" || Wednesday || 6:00AM - 6:30AM & 1:30 - 2:00 PM || 9:00AM - 9:30PM & 4:30 - 5:00 PM || 3:00PM - 3:30PM & - 10:30PM-11:00PM || webRTC-Apps || [https://etherpad.mozilla.org/webrtcweekly etherpad]<br />
|-<br />
|}<br />
* Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked. Bring-up topics for longer Discussion at end if needed.<br />
** Developers and active contributors only need to attend one of the two sessions each week. We have 2 sessions due to the number of very different time zones throughout the team.<br />
** please update the [https://etherpad.mozilla.org/webrtcweekly Stand-up Notes etherpad] if you cannot make the meeting (even if it's just to say you're on PTO)<br />
* [http://ietf.org/ IETF Standards Meetings]<br />
<br />
==Archived==<br />
===Notes===<br />
*[https://wiki.mozilla.org/Media/WebRTC/archived Archived notes]<br />
<br />
<br />
<br />
----</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC&diff=1181487Media/WebRTC2017-09-30T16:48:58Z<p>Mreavy: Updated triage guidelines</p>
<hr />
<div>WebRTC is a free, open project that will bring peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]]. Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for interesting links and details. <br />
<br />
==Releases & Notes==<br />
*[https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Schedule Calendar]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/40 Firefox 40 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/41 Firefox 41 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/42 Firefox 42 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/43 Firefox 43 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/44 Firefox 44 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/45 Firefox 45 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46 Firefox 46 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/47 Firefox 47 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/48 Firefox 48 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/49 Firefox 49 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/50 Firefox 50 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/51 Firefox 51 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/52 Firefox 52 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/53 Firefox 53 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/54 Firefox 54 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/55 Firefox 55 WebRTC & Web Audio Release Notes]<br />
<br />
===Triage Guidelines===<br />
The Product Backlog is continually maintained to ensure relative priorities are understood. Individual priority may vary based circumstance.<br />
* Priorities follow the Firefox Desktop Standard:<br />
** Priority 1 - Blocker, must-fix before shipping. Almost by definition of P1, the "affected" flags and "tracking" flags for the bug should be set when it's triaged. <br />
** Priority 2 - High priority backlog (bugs we are currently working on or will be working on next)<br />
** Priority 3 - Lower priority backlog <br />
** Priority 4 - Bugs we will accept patches for<br />
** Priority 5 - Parking lot (Bugs we do not plan to spend any time on)<br />
<br />
*RANK: The Rank field lets us prioritize bugs within a priority bucket (P2, P3, etc) in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - the triager will default to mid-range value.<br />
** P1 Rank options=0-9, default 5<br />
** P2 Rank options=10-19, default 15<br />
** P3 Rank options=20-29, default 25<br />
** P4 Rank options=30-39, default 35<br />
** P5 Rank options=40-49, default 45<br />
*** Note: P5 and "parking-lot"-labelled bugs are treated identically. We no longer use "parking-lot"; it is a legacy classification.<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"<br />
** After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank<br />
*If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+<br />
**Before it can be given a Rank it should:<br />
*** be in an actionable state<br />
*** for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing<br />
*** for feature requests or enhancements, it means that there's a clear problem statement or suggestion<br />
*** has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months<br />
<p> </p><br />
<br />
'''Contributor Engagement'''<br />
* Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness<br />
* Add Whiteboard tag of [good first bug] for contributors to pick up<br />
<br />
==Project Status ==<br />
*[https://mozilla.aha.io/published/b40393012432847d857ee68299a8a82f?page=2 Detailed Roadmap], noting that the further out the more lose the targets are]<br />
<br />
==Contacts and Useful Links==<br />
*[https://mozilla.github.io/webrtc-landing/gum_test.html Click here] to try WebRTC features in the Firefox browser<br />
*[https://wiki.mozilla.org/Webrtc/contacts Contacts for WebRTC]<br />
*[https://wiki.mozilla.org/Webrtc/links Useful Links for WebRTC]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Tests Running tests for WebRTC in Firefox]<br />
*[https://wiki.mozilla.org/Media/WebRTC/Logging Getting WebRTC logs in Firefox]<br />
<br />
==Meetings==<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Weekly Stand-up" || Wednesday || 6:00AM - 6:30AM & 1:30 - 2:00 PM || 9:00AM - 9:30PM & 4:30 - 5:00 PM || 3:00PM - 3:30PM & - 10:30PM-11:00PM || webRTC-Apps || [https://etherpad.mozilla.org/webrtcweekly etherpad]<br />
|-<br />
|}<br />
* Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked. Bring-up topics for longer Discussion at end if needed.<br />
** Developers and active contributors only need to attend one of the two sessions each week. We have 2 sessions due to the number of very different time zones throughout the team.<br />
** please update the [https://etherpad.mozilla.org/webrtcweekly Stand-up Notes etherpad] if you cannot make the meeting (even if it's just to say you're on PTO)<br />
* [http://ietf.org/ IETF Standards Meetings]<br />
<br />
==Archived==<br />
===Notes===<br />
*[https://wiki.mozilla.org/Media/WebRTC/archived Archived notes]<br />
<br />
<br />
<br />
----</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/Bugs&diff=1167355Media/Bugs2017-04-03T00:59:07Z<p>Mreavy: /* Media Bugs - Common Searches to see Product Backlog */ Updated search to Fx55</p>
<hr />
<div>==Media Bugs - Common Searches to see Product Backlog ==<br />
<p> </p><br />
<br />
'''[https://mzl.la/2nxVkSy "Real-time Media" Bugs] that have landed during Firefox 55'''<br />
<br />
'''[https://mzl.la/2ny2tlV "Playback" Bugs"] that have landed during Firefox 55'''<br />
<br />
===WebRTC, WebAudio, Cubeb, MediaStreamGraph and Media Recording (combined)===<br />
* [http://mzl.la/1U5l5GE Un-triaged bugs]<br />
* [http://mzl.la/1U5ltES Unconfirmed bugs]<br />
* [http://mzl.la/1XhyImX P1 bugs]<br />
* [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Crashes in WebRTC, MediaStreamGraph, cubeb, MediaRecorder]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&version=53.0a1&version=53.0a2&version=54.0a1&version=54.0b1&version=55.0a1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Just in 53/54/55 (Note: URL will need updates occasionally)]<br />
* WebAudio: Note that this has to be split due to URL-length limits in the server<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~WebAudio&proto_signature=~AudioNode&proto_signature=~AudioContext&proto_signature=~BufferDecoder&proto_signature=~OscillatorNode&proto_signature=~AudioDestination&proto_signature=~ScriptProcessorNode&proto_signature=~DelayNode&proto_signature=~AudioScheduled&proto_signature=~CompressorNode&proto_signature=~AudioListener&proto_signature=~ConstantSource&proto_signature=~PannerNode&proto_signature=~FilterNode&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- first half]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~DelayBuffer&proto_signature=~GainNode&proto_signature=~ShaperNode&proto_signature=~AudioSourceNode&proto_signature=~AudioEvent&proto_signature=~AudioProcessing&proto_signature=~ConvolverNode&proto_signature=~AudioParam&proto_signature=~HRTF&proto_signature=~WebCore&proto_signature=~AudioBuffer&proto_signature=~AnalyserNode&product=Firefox&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- 2nd half]<br />
<br />
===Core::Audio/Video (Main Component) Queries===<br />
<br />
* [http://mzl.la/1h3slCq Un-triaged Audio/Video bugs]<br />
** Help us triage. Any bug found in this search needs to be moved to one of the other media components (shown below)<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Playback Queries===<br />
<br />
* [https://is.gd/media_playback_triage Untriaged Playback bugs]<br />
* [https://is.gd/media_playback_p1 P1 Playback bugs]<br />
* [https://is.gd/media_playback_p3 P3 Playback bugs]<br />
* [https://is.gd/media_playback_p5 P5 Playback bugs]<br />
* [https://is.gd/media_playback_triaged Open Playback bugs]<br />
** Anthony Jones (kentuckyfriedtakahe on irc) and Chris Pearce (cpearce) lead Playback. Please reach out to them directly if you have suggestions/questions about Playback bugs.<br />
<p> </p><br />
<br />
===Core::Audio/Video - MediaStreamGraph Bugzilla Queries===<br />
<br />
* [http://mzl.la/1RC0aXs Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RC0fug Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1RC0oxP Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1RBZUb6 Un-triaged MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
* [http://mzl.la/1RC02r8 Unconfirmed MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Cubeb Bugzilla Queries===<br />
<br />
* [http://mzl.la/1HjtQrV Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjtUIj Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1HjtW2Y Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hju0Qg Un-triaged Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
* [http://mzl.la/1Hju7Lu Unconfirmed Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - GMP (Gecko Media Plugin) Bugzilla Queries===<br />
<br />
* [http://mzl.la/1Q3CLBo Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjuaXK Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results <br />
* [http://mzl.la/1NceYey Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hjujui Un-triaged GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
* [http://mzl.la/1HjuoOK Unconfirmed GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Recording Bugzilla Queries===<br />
<br />
* [http://mzl.la/1jXz16N Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1M0rudk Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEvYw Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1iH134R Un-triaged Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1M0qXZ2 Unconfirmed Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===Web Audio Bugzilla Queries===<br />
<br />
* [http://mzl.la/1MTEa8b Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1MTEbsR Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEbJp Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1M0izbQ Un-triaged Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1MTEggc Unconfirmed Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===WebRTC Bugzilla Queries===<br />
<br />
* [http://mzl.la/1S1PrWF Bugzilla Ranked "P1" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RPW8tq Bugzilla Ranked "P2" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1Cos5lF Bugzilla Ranked "P3 to P5 - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1h2L6WT Un-triaged WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1S1RN7L Unconfirmed WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1MUt9bh Parking-lot bugs]<br />
** Search based on Open WebRTC bugs that have the parking-lot flag set]<br />
** NOTE: parking-lot bugs are ones we will take patches for, but will not be fixing for a long time (if ever, depending on the bug). If you care about a bug in parking-lot, please contribute a patch or talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about getting it prioritized.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/Bugs&diff=1162899Media/Bugs2017-02-14T14:28:58Z<p>Mreavy: /* Media Bugs - Common Searches to see Product Backlog */ Updated search to Fx54</p>
<hr />
<div>==Media Bugs - Common Searches to see Product Backlog ==<br />
<p> </p><br />
<br />
'''[https://mzl.la/2lfx21m "Real-time Media" Bugs] that have landed during Firefox 54'''<br />
<br />
'''[https://mzl.la/2lfxa0Q "Playback" Bugs"] that have landed during Firefox 54'''<br />
<br />
===WebRTC, WebAudio, Cubeb, MediaStreamGraph and Media Recording (combined)===<br />
* [http://mzl.la/1U5l5GE Un-triaged bugs]<br />
* [http://mzl.la/1U5ltES Unconfirmed bugs]<br />
* [http://mzl.la/1XhyImX P1 bugs]<br />
* [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Crashes in WebRTC, MediaStreamGraph, cubeb, MediaRecorder]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~Webrtc&proto_signature=~webrtc&proto_signature=~jsep&proto_signature=~VideoConduit&proto_signature=~MediaRecorder&proto_signature=~MediaStreamGraph&proto_signature=~rtc%3A%3A&proto_signature=~cubeb&proto_signature=~MediaEncoder&proto_signature=~MediaEngine&proto_signature=~MediaManager&product=Firefox&version=53.0a1&version=53.0a2&version=54.0a1&date=%3E%3D2017-01-24T14%3A42%3A00.000Z&date=%3C2017-01-31T14%3A42%3A00.000Z&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Just in 53 and 54 (Note: URL will need updates occasionally)]<br />
* WebAudio: Note that this has to be split due to URL-length limits in the server<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~WebAudio&proto_signature=~AudioNode&proto_signature=~AudioContext&proto_signature=~BufferDecoder&proto_signature=~OscillatorNode&proto_signature=~AudioDestination&proto_signature=~ScriptProcessorNode&proto_signature=~DelayNode&proto_signature=~AudioScheduled&proto_signature=~CompressorNode&proto_signature=~AudioListener&proto_signature=~ConstantSource&proto_signature=~PannerNode&proto_signature=~FilterNode&product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- first half]<br />
** [https://crash-stats.mozilla.com/search/?proto_signature=~DelayBuffer&proto_signature=~GainNode&proto_signature=~ShaperNode&proto_signature=~AudioSourceNode&proto_signature=~AudioEvent&proto_signature=~AudioProcessing&proto_signature=~ConvolverNode&proto_signature=~AudioParam&proto_signature=~HRTF&proto_signature=~WebCore&proto_signature=~AudioBuffer&proto_signature=~AnalyserNode&product=Firefox&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature WebAudio crashes -- 2nd half]<br />
<br />
===Core::Audio/Video (Main Component) Queries===<br />
<br />
* [http://mzl.la/1h3slCq Un-triaged Audio/Video bugs]<br />
** Help us triage. Any bug found in this search needs to be moved to one of the other media components (shown below)<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Playback Queries===<br />
<br />
* [https://is.gd/media_playback_triage Untriaged Playback bugs]<br />
* [https://is.gd/media_playback_p1 P1 Playback bugs]<br />
* [https://is.gd/media_playback_p3 P3 Playback bugs]<br />
* [https://is.gd/media_playback_p5 P5 Playback bugs]<br />
* [https://is.gd/media_playback_triaged Open Playback bugs]<br />
** Anthony Jones (kentuckyfriedtakahe on irc) and Chris Pearce (cpearce) lead Playback. Please reach out to them directly if you have suggestions/questions about Playback bugs.<br />
<p> </p><br />
<br />
===Core::Audio/Video - MediaStreamGraph Bugzilla Queries===<br />
<br />
* [http://mzl.la/1RC0aXs Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RC0fug Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1RC0oxP Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1RBZUb6 Un-triaged MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
* [http://mzl.la/1RC02r8 Unconfirmed MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Cubeb Bugzilla Queries===<br />
<br />
* [http://mzl.la/1HjtQrV Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjtUIj Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1HjtW2Y Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hju0Qg Un-triaged Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
* [http://mzl.la/1Hju7Lu Unconfirmed Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - GMP (Gecko Media Plugin) Bugzilla Queries===<br />
<br />
* [http://mzl.la/1Q3CLBo Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjuaXK Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results <br />
* [http://mzl.la/1NceYey Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hjujui Un-triaged GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
* [http://mzl.la/1HjuoOK Unconfirmed GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Recording Bugzilla Queries===<br />
<br />
* [http://mzl.la/1jXz16N Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1M0rudk Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEvYw Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1iH134R Un-triaged Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1M0qXZ2 Unconfirmed Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===Web Audio Bugzilla Queries===<br />
<br />
* [http://mzl.la/1MTEa8b Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1MTEbsR Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEbJp Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1M0izbQ Un-triaged Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1MTEggc Unconfirmed Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===WebRTC Bugzilla Queries===<br />
<br />
* [http://mzl.la/1S1PrWF Bugzilla Ranked "P1" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RPW8tq Bugzilla Ranked "P2" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1Cos5lF Bugzilla Ranked "P3 to P5 - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1h2L6WT Un-triaged WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1S1RN7L Unconfirmed WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1MUt9bh Parking-lot bugs]<br />
** Search based on Open WebRTC bugs that have the parking-lot flag set]<br />
** NOTE: parking-lot bugs are ones we will take patches for, but will not be fixing for a long time (if ever, depending on the bug). If you care about a bug in parking-lot, please contribute a patch or talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about getting it prioritized.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/53&diff=1162896Media/WebRTC/ReleaseNotes/532017-02-14T14:26:27Z<p>Mreavy: /* Noteworthy Changes: */ clean up</p>
<hr />
<div>=Firefox 53 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 53:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 53] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/ Bugzilla search for WebAudio bugs marked Fixed in Firefox 53]<br />
<br />
== Noteworthy Changes: ==<br />
* Updated core webrtc.org code to stable branch 49<br />
** Required major rewrite of interfaces for for video<br />
* Updated libvpx to 1.6.1 (major update)<br />
** Our thanks to Johann Koenig of Google for contributing the patches to update it and improve the update and build process!<br />
* TURN/TLS is now supported<br />
* MediaRecorder improvements - supports >30fps, significantly improved encoding quality<br />
* Full-duplex audio for android is landed and available; currently pref'd on by default in 54<br />
* Resolved TIAS bitrate limit issues after renegotiation<br />
* Fixed RTCStatsType to be spec-compatible (missing hyphens in most enum names)<br />
<br />
==Bug tickets fixed in Firefox 53 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
<br />
{{Bug|1310224}} OOM crash in output-only scenario on Windows/WASAPI<br />
<br />
{{Bug|1314514}} gtestify the cubeb unit tests<br />
<br />
{{Bug|1317234}} audiounit_stream_init() sometimes gets stuck forever on OSX 10.10<br />
<br />
{{Bug|1318619}} Update cubeb from upstream to 7f74039f92<br />
<br />
{{Bug|1319623}} Valgrind reports uninitialized memory use in pulse_stream_set_panning running cubeb.run_panning_volume_test_short gtest<br />
<br />
{{Bug|1221574}} Write a full-duplex Android OpenSL ES cubeb backend<br />
<br />
{{Bug|1331869}} Update cubeb from upstream to d96e35f02d<br />
<br />
{{Bug|1326176}} Crash in jemalloc_crash | arena_dalloc_small | je_free | `anonymous namespace''::wasapi_stream_render_loop<br />
<br />
{{Bug|1332354}} Allow enabling cubeb log by flipping a pref<br />
<br />
{{Bug|1332905}} Crash in abort | `anonymous namespace''::wasapi_stream_init<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
<br />
{{Bug|1273372}} [EME] Crash in mozilla::gmp::GMPChild::ProcessingError<br />
<br />
{{Bug|1313258}} Intermittent FATAL ERROR: AsyncShutdown timeout in xpcom-will-shutdown Conditions: [{"name":"MediaShutdownManager: shutdown","state":"(none)","filename":"/builds/slave/autoland-m64-d-000000000000000/build/src/dom/media/MediaShutdownManager.cpp","lineNumbe<br />
<br />
{{Bug|1316215}} Convert GMPService to MozPromise<br />
<br />
{{Bug|1317473}} GMPServiceParent::AddOnGMPThread(path) can't handle a mixture of dir separators in path<br />
<br />
{{Bug|1317822}} Move GMPCrashHelper into its own file<br />
<br />
{{Bug|1318965}} Convert gmp-clearkey to use Chromium ContentDecryptionModule8 interface<br />
<br />
{{Bug|1319197}} Remove audio decoding from gmp-clearkey<br />
<br />
{{Bug|1325185}} Fix operator precedence in GMPUtils' ToHexString()<br />
<br />
{{Bug|1331829}} Remove GMP async shutdown<br />
<br />
{{Bug|1332149}} Don't expose plugin-container or sandbox vouchers to GMPs.<br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
<br />
{{Bug|1305949}} Do some cleaning around direct listeners and video sinks<br />
<br />
{{Bug|1314886}} Intermittent dom/media/test/test_streams_element_capture_reset.html | checking vout has not ended - got true, expected false<br />
<br />
{{Bug|1319445}} Disable direct audio listeners for RTCPeerConnection with full duplex<br />
<br />
{{Bug|1321235}} Can not remove a stopped media track using removeTrack on Firefox version 52 onwards<br />
<br />
{{Bug|1329075}} Null-deref in [@ HTMLMediaElement::StreamCaptureTrackSource::GetCORSMode]<br />
<br />
{{Bug|1330212}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamTrackClone.html | application crashed [@ mozilla::CycleCollectedJSContext::ProcessMetastableStateQueue]<br />
<br />
{{Bug|1330696}} Add profiler labels to Canvas frame capturing<br />
<br />
{{Bug|1330919}} Set proper timestamps on video frames from canvas.captureStream()<br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
<br />
{{Bug|1231848}} CanvasStream + MediaRecorder does not create variable framerate video<br />
<br />
{{Bug|1322745}} VP8TrackEncoder::GetSourceSurface can be improved<br />
<br />
{{Bug|1326311}} The Media Recorder API crash when we do a lot of stop/start and we destroy the Session. It also leaks a Listener<br />
<br />
{{Bug|1330676}} MediaRecorder's CBR setting causes really bad perceived video quality<br />
<br />
{{Bug|1330918}} Make MediaRecorder use timestamps for video<br />
<br />
{{Bug|1332584}} MediaRecorder doesn't record the last frame of a video track<br />
<br />
{{Bug|1332585}} Add some VideoTrackEncoder unit tests<br />
<br />
{{Bug|1332598}} Improve logging of VP8TrackEncoder<br />
<br />
<br />
===Core (General) WebRTC:=== <br />
<br />
{{Bug|1197021}} Remove last remnants of already retired backwards compatible RTCOfferOptions<br />
<br />
{{Bug|1250356}} Update WebRTC code to webrtc.org stable branch 49<br />
<br />
{{Bug|1263312}} Have addIceCandidate, setLocalDescription et al take dictionary (spec update)<br />
<br />
{{Bug|1308481}} TIAS bitrate limitation does not work when resolution changes<br />
<br />
{{Bug|1310355}} Improve resiliency for using webrtc permission hooks<br />
<br />
{{Bug|1313966}} RTCSessionDescription interface doesn't match spec<br />
<br />
{{Bug|1318163}} Remove unimplemented and non-spec getStreamById from RTCPeerConnection.<br />
<br />
{{Bug|1319268}} Extend WebRTC ICE Telemetry probes<br />
<br />
{{Bug|1319542}} Update pc.createDataChannel's RTCDataChannelInit dict to spec.<br />
<br />
{{Bug|1320891}} Make some webrtc tests build with gcc 7.0 and --enable-warnings-as-errors<br />
<br />
{{Bug|1322274}} Overhaul PeerConnection.js with modern JavaScript<br />
<br />
{{Bug|1322338}} Point out lack of STUN/TURN server in ICE failure message<br />
<br />
{{Bug|1322503}} Firefox's RTCStatsType is not spec-compatible (missing hyphens in most enum names)<br />
<br />
{{Bug|1322659}} Too many STUN/TURN servers don't help with conectivity<br />
<br />
{{Bug|1323079}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1323095}} Add deprecation warnings to callback-based pc.getStats()<br />
<br />
{{Bug|1326011}} webrtc/trunk/webrtc/base/platform_thread.cc:44:47: error: cast from 'pthread_t {aka pthread*}' to 'pid_t {aka int}' loses precision [-fpermissive]<br />
<br />
{{Bug|1328440}} Legacy PeerConnection.getStats should return a legacy stats compatible object<br />
<br />
{{Bug|1329193}} More overhaul PeerConnection.js with modern JavaScript<br />
<br />
{{Bug|1329762}} Strengthen deprecation warning of legacy PeerConnection.getStats<br />
<br />
{{Bug|1330091}} Renegotiation doesn't actually change the codec configuration after 49 update landing<br />
<br />
{{Bug|1331158}} Renegotiation doesn't actually change the receive codec configuration after 49 update landing<br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1223692}} Update libvpx to 1.6.0<br />
<br />
{{Bug|1270572}} While page already has a live track, getUserMedia should allow un-prompted re-access to same device.<br />
<br />
{{Bug|1277037}} MOZ_CRASH: Could not start cubeb stream for MSG.<br />
<br />
{{Bug|1306359}} Stop using Scoped.h NSS types in RTCCertificate.(cpp|h)<br />
<br />
{{Bug|1307754}} Webrtc. FF Beta 50.0b4. No signal from microphone.<br />
<br />
{{Bug|1313758}} WebRTC getUserMedia mediaSource 'browser' broken: Cause: webrtcUI.jsm (listScreenShareDevices) ==> getString() NS_ERROR_FAILURE<br />
<br />
{{Bug|1317660}} Fix CID 1394336: Resource leaks in TestAudioPacketizer.cpp<br />
<br />
{{Bug|1317714}} port mediaconduit_unittests to xul gtest<br />
<br />
{{Bug|1318132}} Coverity issue in CamerasChild<br />
<br />
{{Bug|1319566}} Crash in nsTArray_Impl<T>::DestructRange | nsTArray_Impl<T>::RemoveElementsAt | mozilla::MediaEngineSource::Deallocate<br />
<br />
{{Bug|1321609}} PeerConnection tests sometimes expect media flow on received tracks that ended due to renegotiation<br />
<br />
{{Bug|1326288}} VP9 decoding broken by webrtc.org 49 update - YCbCr pointers are off<br />
<br />
{{Bug|1326386}} webrtc.org 49 update mismerged away a mochitest<br />
<br />
{{Bug|1326442}} VideoConduit code should simply reconfigure the VideoSendStream when possible on a configuration change<br />
<br />
{{Bug|1326463}} Build failure in webrtc with sndio after bug 1250356<br />
<br />
{{Bug|1328330}} vp8 error concealment should be removed<br />
<br />
{{Bug|1329562}} Remove WebRTC checks for Windows Vista<br />
<br />
{{Bug|1329976}} getUserMedia(audio, video) when already capturing audio fails<br />
<br />
{{Bug|1329922}} [DTMF] Tones are not heard when duration is set to lowest (70)<br />
<br />
{{Bug|1320101}} Setting b=TIAS caps us at 2kbps<br />
<br />
{{Bug|1330318}} Setting b=TIAS caps us at 2kbps<br />
<br />
{{Bug|1331498}} Update libvpx to 1.6.1<br />
<br />
{{Bug|1332139}} Drop ifdefs in webrtc vp9 interface code for handling old versions of libvpx<br />
<br />
<br />
===WebRTC:Networking:=== <br />
<br />
{{Bug|1056934}} Support TURN TLS in WebRTC<br />
<br />
{{Bug|1266667}} [e10s] active ICE TCP fails because multiple connections with identical TCP SRC port fail<br />
<br />
{{Bug|1316261}} System CA's cause big and fragmented DTLS messages<br />
<br />
{{Bug|1318180}} Cannot createOffer after network change<br />
<br />
{{Bug|1318803}} Provide IPC reason for STUN filter blocking<br />
<br />
{{Bug|1320150}} ICE consent signals connected too earlier for non bundled transports<br />
<br />
{{Bug|1321628}} add ice restart and rollback counts to about:webrtc<br />
<br />
{{Bug|1322438}} Change ICE failed message depending on presence of relay candidates<br />
<br />
{{Bug|1322546}} Cannot compile nrappkit with WINVER=0x0600 or later<br />
<br />
{{Bug|1323998}} Stop using Scoped.h NSS types in dtlsidentity.(cpp|h) and nricectx.cpp<br />
<br />
{{Bug|1324608}} RtpStreamId RTP header extension indicates incorrect header length<br />
<br />
{{Bug|1324995}} Crash in jemalloc_crash | je_free | r_free | stun_get_win32_addrs<br />
<br />
{{Bug|1329932}} Remove unneeded nsXPCOMGlue includes<br />
<br />
===WebRTC:Signaling:=== <br />
<br />
{{Bug|1193731}} onicegatheringstatechange doesn't work<br />
<br />
{{Bug|1271681}} Move SDP-related test cases from signaling_unittests to sdp_unittest<br />
<br />
{{Bug|1271682}} Move JSEP-related tests from signaling_unittests to jsep_session_unittest<br />
<br />
{{Bug|1316886}} Port sdp_file_parser unit test to standalone binary<br />
<br />
{{Bug|1316888}} Port sdp_unittest to xul gtest<br />
<br />
{{Bug|1317009}} Port jsep_session_unittest and jsep_track_unittest to xul gtest<br />
<br />
{{Bug|1317044}} Intermittent mediapipeline_unittest | test failed with return code -139 due to MediaPipelineTest.TestAudioSendNoMux failure<br />
<br />
{{Bug|1317726}} sdp_file_parser still depends upon xpcom glue<br />
<br />
{{Bug|1317764}} --disable-tests fails to build: media/webrtc/signaling/fuzztest/sdp_file_parser.cpp:12:25: fatal error: gtest/gtest.h: No such file or directory<br />
<br />
{{Bug|1322707}} Stop building signaling_unittest and mediapipeline_unittests<br />
<br />
{{Bug|1328142}} Webrtc.org 49 update broke simulcast<br />
<br />
{{Bug|1328429}} When no redundant encodings are specified for RED in offer, do not output "empty" fmtp line for RED payload type in answer<br />
<br />
{{Bug|1307461}} Intermittent mediapipeline_unittest | test failed with return code 1 due to MediaPipelineTest.TestAudioSendMux failure</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/Bugs&diff=1156479Media/Bugs2016-12-05T19:29:19Z<p>Mreavy: /* Media Bugs - Common Searches to see Product Backlog */ Updated search to Fx53</p>
<hr />
<div>==Media Bugs - Common Searches to see Product Backlog ==<br />
<p> </p><br />
<br />
'''[https://mzl.la/2h7CrCu "Real-time Media" Bugs] that have landed during Firefox 53'''<br />
<br />
'''[https://mzl.la/2h7IzdT "Playback" Bugs"] that have landed during Firefox 53'''<br />
<br />
===WebRTC, WebAudio, Cubeb, MediaStreamGraph and Media Recording (combined)===<br />
* [http://mzl.la/1U5l5GE Un-triaged bugs]<br />
* [http://mzl.la/1U5ltES Unconfirmed bugs]<br />
* [http://mzl.la/1XhyImX P1 bugs]<br />
<br />
===Core::Audio/Video (Main Component) Queries===<br />
<br />
* [http://mzl.la/1h3slCq Un-triaged Audio/Video bugs]<br />
** Help us triage. Any bug found in this search needs to be moved to one of the other media components (shown below)<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Playback Queries===<br />
<br />
* [https://is.gd/media_playback_triage Untriaged Playback bugs]<br />
* [https://is.gd/media_playback_p1 P1 Playback bugs]<br />
* [https://is.gd/media_playback_triaged Open Playback bugs]<br />
** Anthony Jones (kentuckyfriedtakahe on irc) and Chris Pearce (cpearce) lead Playback. Please reach out to them directly if you have suggestions/questions about Playback bugs.<br />
<p> </p><br />
<br />
===Core::Audio/Video - MediaStreamGraph Bugzilla Queries===<br />
<br />
* [http://mzl.la/1RC0aXs Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RC0fug Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1RC0oxP Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1RBZUb6 Un-triaged MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
* [http://mzl.la/1RC02r8 Unconfirmed MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Cubeb Bugzilla Queries===<br />
<br />
* [http://mzl.la/1HjtQrV Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjtUIj Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1HjtW2Y Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hju0Qg Un-triaged Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
* [http://mzl.la/1Hju7Lu Unconfirmed Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - GMP (Gecko Media Plugin) Bugzilla Queries===<br />
<br />
* [http://mzl.la/1Q3CLBo Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjuaXK Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results <br />
* [http://mzl.la/1NceYey Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hjujui Un-triaged GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
* [http://mzl.la/1HjuoOK Unconfirmed GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Recording Bugzilla Queries===<br />
<br />
* [http://mzl.la/1jXz16N Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1M0rudk Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEvYw Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1iH134R Un-triaged Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1M0qXZ2 Unconfirmed Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===Web Audio Bugzilla Queries===<br />
<br />
* [http://mzl.la/1MTEa8b Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1MTEbsR Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEbJp Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1M0izbQ Un-triaged Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1MTEggc Unconfirmed Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===WebRTC Bugzilla Queries===<br />
<br />
* [http://mzl.la/1S1PrWF Bugzilla Ranked "P1" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RPW8tq Bugzilla Ranked "P2" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1Cos5lF Bugzilla Ranked "P3 to P5 - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1h2L6WT Un-triaged WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1S1RN7L Unconfirmed WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1MUt9bh Parking-lot bugs]<br />
** Search based on Open WebRTC bugs that have the parking-lot flag set]<br />
** NOTE: parking-lot bugs are ones we will take patches for, but will not be fixing for a long time (if ever, depending on the bug). If you care about a bug in parking-lot, please contribute a patch or talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about getting it prioritized.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156418Media/WebRTC/ReleaseNotes/522016-12-02T18:49:20Z<p>Mreavy: done</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* '''IMPORTANT:''' The Screensharing whitelist is no longer needed to share your screen or windows. Please let us know if you find any problems!<br />
** Much of this work was front-end, UX/UI changes, including support to let the UI know what streams are "scary" to share (see {{bug|1284910}}). See the meta {{bug|1127522}} for all the work that went into this. <br />
** Please read Jan-Ivar's blog post explaining the risks that users need to know about when sharing their screen or windows: https://blog.mozilla.org/webrtc/share-browser-windows-entire-screen-sites-trust/. <br />
** The new UI permission dialog for screensharing links to a SUMO article which is currently identical to Jan-Ivar's post, but our SUMO team will be tailoring it to a less technical user before Fx 52 goes to Beta. <br />
<br />
* Added DTMF support. See {{bug|1291715}}, {{bug|1291714}}, {{bug|1313406}}<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Renegotiation and track replacement were dropping the video resolution to CIF in previous releases. That is fixed by {{bug|1303279}} and {{bug|1307507}}<br />
<br />
* Firefox now monitors continuing consent and will return a state of disconnected if it notices the connection is dead. See {{bug|852665}}<br />
<br />
* Added mediaDevices.ondevicechange support to Windows and Linux and enabled it by default. See {{bug|1297337}} and {{bug|1300468}. (NOTE: Support for Mac was added in Fx51, but it's not ready to be enabled by default). <br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156417Media/WebRTC/ReleaseNotes/522016-12-02T18:46:29Z<p>Mreavy: bold</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* '''IMPORTANT:''' The Screensharing whitelist is no longer needed to share your screen or windows. Please let us know if you find any problems!<br />
** Much of this work was front-end, UX/UI changes, including support to let the UI know what streams are "scary" to share (see {{bug|1284910}}). See the meta {{bug|1127522}} for all the work that went into this. <br />
** Please read Jan-Ivar's blog post explaining the risks that users need to know about when sharing their screen or windows: https://blog.mozilla.org/webrtc/share-browser-windows-entire-screen-sites-trust/. <br />
** The new UI permission dialog for screensharing links to a SUMO article which is currently identical to Jan-Ivar's post, but our SUMO team will be tailoring it to a less technical user before Fx 52 goes to Beta. <br />
<br />
* Added DTMF support. See {{bug|1291715}}, {{bug|1291714}}, {{bug|1313406}}<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Renegotiation and track replacement were dropping the video resolution to CIF in previous releases. That is fixed by {{bug|1303279}} and {{bug|1307507}}<br />
<br />
* Firefox now monitors continuing consent and will return a state of disconnected if it notices the connection is dead. See {{bug|852665}}<br />
<br />
* Added mediaDevices.ondevicechange support to Windows and Linux and enabled it by default. See {{bug|1297337}} and {{bug|1300468}. (NOTE: Support for Mac was added in Fx51, but it's not ready to be enabled by default). <br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156412Media/WebRTC/ReleaseNotes/522016-12-02T18:28:47Z<p>Mreavy: /* Noteworthy Changes: */ more noteworthy changes</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* IMPORTANT: The Screensharing whitelist is no longer needed to share your screen or windows. Please let us know if you find any problems!<br />
** Much of this work was front-end, UX/UI changes, including support to let the UI know what streams are "scary" to share (see {{bug|1284910}}). See the meta {{bug|1127522}} for all the work that went into this. <br />
** Please read Jan-Ivar's blog post explaining the risks that users need to know about when sharing their screen or windows: https://blog.mozilla.org/webrtc/share-browser-windows-entire-screen-sites-trust/. <br />
** The new UI permission dialog for screensharing links to a SUMO article which is currently identical to Jan-Ivar's post, but our SUMO team will be tailoring it to a less technical user before Fx 52 goes to Beta. <br />
<br />
* Added DTMF support. See {{bug|1291715}}, {{bug|1291714}}, {{bug|1313406}}<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Renegotiation and track replacement were dropping the video resolution to CIF in previous releases. That is fixed by {{bug|1303279}} and {{bug|1307507}}<br />
<br />
* Firefox now monitors continuing consent and will return a state of disconnected if it notices the connection is dead. See {{bug|852665}}<br />
<br />
* Added mediaDevices.ondevicechange support to Windows and Linux and enabled it by default. See {{bug|1297337}} and {{bug|1300468}. (NOTE: Support for Mac was added in Fx51, but it's not ready to be enabled by default). <br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156410Media/WebRTC/ReleaseNotes/522016-12-02T18:18:59Z<p>Mreavy: /* Noteworthy Changes: */ more noteworthy changes</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* IMPORTANT: The Screensharing whitelist is no longer needed to share your screen or windows. Please let us know if you find any problems!<br />
** Much of this work was front-end, UX/UI changes, including support to let the UI know what streams are "scary" to share (see {{bug|1284910}}). See the meta {{bug|1127522}} for all the work that went into this. <br />
** Please read Jan-Ivar's blog post explaining the risks that users need to know about when sharing their screen or windows: https://blog.mozilla.org/webrtc/share-browser-windows-entire-screen-sites-trust/. <br />
** The new UI permission dialog for screensharing links to a SUMO article which is currently identical to Jan-Ivar's post, but our SUMO team will be tailoring it to a less technical user before Fx 52 goes to Beta. <br />
<br />
* Added DTMF support. See {{bug|1291715}}, {{bug|1291714}}, {{bug|1313406}}<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Added mediaDevices.ondevicechange support to Windows and Linux and enabled it by default. See {{bug|1297337}} and {{bug|1300468}. (NOTE: Support for Mac was added in Fx51, but it's not ready to be enabled by default). <br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156409Media/WebRTC/ReleaseNotes/522016-12-02T18:07:29Z<p>Mreavy: /* Firefox 52 WebRTC/WebAudio Release Notes: */ further noteworthy changes</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* IMPORTANT: The Screensharing whitelist is no longer needed to share your screen or windows. Please let us know if you find any problems!<br />
** Much of this work was front-end, UX/UI changes, including support to let the UI know what streams are "scary" to share (see {{bug|1284910}}). See the meta {{bug|1127522}} for all the work that went into this. <br />
** Please read Jan-Ivar's blog post explaining the risks that users need to know about when sharing their screen or windows: https://blog.mozilla.org/webrtc/share-browser-windows-entire-screen-sites-trust/. <br />
** The new UI permission dialog for screensharing links to a SUMO article which is currently identical to Jan-Ivar's post, but our SUMO team will be tailoring it to a less technical user before Fx 52 goes to Beta. <br />
<br />
* Added DTMF support. See {{bug|1291715}}, {{bug|1291714}}, {{bug|1313406}}<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156405Media/WebRTC/ReleaseNotes/522016-12-02T17:42:41Z<p>Mreavy: /* Core (General) WebRTC: */ added uplift note</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* IMPORTANT: The Screensharing whitelist is no longer needed to share your screen or windows. Much of this work was front-end, UX/UI changes. <br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane --> uplifted to Fx 51 (Fx 50 unaffected)<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156404Media/WebRTC/ReleaseNotes/522016-12-02T17:41:24Z<p>Mreavy: /* Noteworthy Changes: */ more noteworthy changes</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* IMPORTANT: The Screensharing whitelist is no longer needed to share your screen or windows. Much of this work was front-end, UX/UI changes. <br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* Implemented 2 updates to match updates to the Web Audio spec: one to use linear interpolation when computing SetValueCurveAtTime events ({{bug|1265401}}) and the other to support ConstantSourceNode ({{bug|1308432}}<br />
<br />
* We fixed a lot of our WebRTCintermittent failures (too many to list here, but they are all listed below), but we believe this will make the product more stable for users<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156403Media/WebRTC/ReleaseNotes/522016-12-02T17:18:43Z<p>Mreavy: /* WebAudio: */ uplift note added</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* <br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time) --> uplifted to Fx 50<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156402Media/WebRTC/ReleaseNotes/522016-12-02T17:07:12Z<p>Mreavy: /* Firefox 52 WebRTC/WebAudio Release Notes: */ partial update to noteworthy changes</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* Make Pulse Audio a hard dependency on Linux so that we reduce the problems and maintenance associated with maintaining multiple audio backends. See {{bug|1247056}}.<br />
<br />
* Almost all of the cubeb landings are to address issues with libcubeb on Mac and Windows or to improve debugging on future problems<br />
<br />
* Implemented active/inactive state for MediaStreams and support for stopping all MediaStreamTracks. See {{bug|1208316}} and {{bug|1301675}}, respectively. <br />
<br />
* <br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time)<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest <br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156304Media/WebRTC/ReleaseNotes/522016-12-01T23:20:03Z<p>Mreavy: /* Noteworthy Changes: */ WIP</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* WIP -- Check back at end of day on Dec 2, 2016.<br />
<br />
* <br />
<br />
* <br />
<br />
*<br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time)<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest <br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/52&diff=1156303Media/WebRTC/ReleaseNotes/522016-12-01T23:19:00Z<p>Mreavy: /*initial version*/</p>
<hr />
<div>=Firefox 52 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 52:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2gLRGnZ Bugzilla search for WebRTC related bugs marked Fixed in Firefox 52] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2gLPHQx Bugzilla search for WebAudio bugs marked Fixed in Firefox 52]<br />
<br />
== Noteworthy Changes: ==<br />
* <br />
<br />
* <br />
<br />
* <br />
<br />
* <br />
<br />
==Bug tickets fixed in Firefox 52 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1247056}} Require PulseAudio to play sound on Linux<br />
<br />
{{Bug|1286041}} 1,700 instances of "data callback fires before cubeb_stream_start() is called" emitted from dom/media/AudioStream.cpp during linux64 debug testing<br />
<br />
{{Bug|1301648}} Add a pref to be able to control the AudioCallbackDriver requested latency<br />
<br />
{{Bug|1306570}} Cherry-pick cubeb revision 6ae23a63<br />
<br />
{{Bug|1307724}} Cherry-pick cubeb revision 50d92c<br />
<br />
{{Bug|1311340}} Wire cubeb log to MOZ_LOG<br />
<br />
{{Bug|1311346}} Update cubeb to revision 9eacd<br />
<br />
{{Bug|1311911}} 1.5 second delay on Logitech c920 microphone in OSX (regression)<br />
<br />
{{Bug|1312684}} Cubeb logging logs odd integer values<br />
<br />
{{Bug|1314085}} Change cubeb MOZ_LOG error level<br />
<br />
{{Bug|1314316}} Update cubeb from upstream to 352c0bed012<br />
<br />
{{Bug|1314496}} Uplift libcubeb allocator mismatch fixes<br />
<br />
{{Bug|1315495}} Uplift WASAPI leak fix from PR 183<br />
<br />
{{Bug|1315928}} Update cubeb from upstream to f8467510a8b <br />
<br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1279612}} Near permafailing mda tests on Win7 debug on beta in test_webvtt_disabled.html | application crashed [@ mozalloc_abort(char const * const)]<br />
<br />
{{Bug|1300654}} Remove MOZ_EME build option and make EME disabled by preferences.<br />
<br />
{{Bug|1302881}} Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread()<br />
<br />
{{Bug|1309171}} Reduce an unnecessary copy by using universal reference<br />
<br />
{{Bug|1312540}} PContent::Msg_GetGMPPluginVersionForAPI sends a sync IPC message to the parent and causes main thread IO<br />
<br />
{{Bug|1313878}} Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp<br />
<br />
{{Bug|1314445}} Remove GMPService::GetPluginVersionForAPI<br />
<br />
{{Bug|1314797}} "Nightly is installing components..." notification box doesn't disappear when CDM download completes <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1208316}} Implement active/inactive state for MediaStreams<br />
<br />
{{Bug|1301675}} Allow stopping all MediaStreamTracks<br />
<br />
{{Bug|1302612}} Intermittent dom/media/test/test_new_audio.html | Test timed out.<br />
<br />
{{Bug|1304270}} Intermittent dom/media/tests/mochitest/test_peerConnection_addtrack_removetrack_events.html | Test timed out.<br />
<br />
{{Bug|1304504}} Check the return value of GetIntPref() properly or an initialized bogus value may be used<br />
<br />
{{Bug|1305336}} Intermittent dom/media/test/test_streams_autoplay.html | TypeError: v.mozDumpDebugInfo is not a function<br />
<br />
{{Bug|1306209}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaStreamClone.html | Assertion count 1 is greater than expected range 0-0 assertions. <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1304950}} Intermittent dom/media/test/test_mediarecorder_record_timeslice.html | onstop unexpectedly fired before ondataavailable<br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|957024}} Web Audio sources don't play when connected to PannerNodes with position 0,0,0<br />
<br />
{{Bug|1130010}} Implement the new AudioNode.disconnect methods<br />
<br />
{{Bug|1228226}} clicks with new playing AudioContext<br />
<br />
{{Bug|1265401}} Perform linear interpolation when computing the SetValueCurveAtTime events<br />
<br />
{{Bug|1300818}} Performance is bad for somewhat complex web audio chains (specially if other things are happening on the page at the same time)<br />
<br />
{{Bug|1308427}} Allow a setTargetAtTime TimeConstant to be 0<br />
<br />
{{Bug|1308432}} Implement ConstantSourceNode<br />
<br />
{{Bug|1313058}} SetValueCurveAtTime interpolation is incorrect<br />
<br />
{{Bug|1314556}} Convert TestAudioEventTimeline.cpp to a gtest <br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1239161}} Intermittent test_peerConnection_addDataChannelNoBundle.html | Test timed out.<br />
<br />
{{Bug|1256079}} Intermittent test_getUserMedia_loadedmetadata.html | Test timed out<br />
<br />
{{Bug|1273314}} Intermittent test_peerConnection_captureStream_canvas_2d.html | Test timed out.<br />
<br />
{{Bug|1284102}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | recording-device-events notification unexpected - Got 1, expected 0<br />
<br />
{{Bug|1292771}} Intermittent dom/media/tests/mochitest/test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out.<br />
<br />
{{Bug|1292917}} Intermittent TEST-UNEXPECTED-TIMEOUT | dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | application timed out after 330 seconds with no output after Assertion failure: mChannels && mFrames && mSampleRate (Mix not called for this cycle?)<br />
<br />
{{Bug|1293531}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioPcmaPcmuOnly.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1299047}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_audio.html | Test timed out.<br />
<br />
{{Bug|1304798}} Can't share video at talky.io, if you've previously granted "always allow"<br />
<br />
{{Bug|1305506}} Remove some cruft from a webrtc gyp file<br />
<br />
{{Bug|1305601}} Intermittent dom/media/tests/mochitest/test_getUserMedia_mediaElementCapture_tracks.html | Test failed: Error: No event<br />
<br />
{{Bug|1306290}} Build fails with --disable-webrtc on trunk<br />
<br />
{{Bug|1306631}} Remove old Loop telemetry hooks from WebRTC<br />
<br />
{{Bug|1306782}} Remove B2G from WebRTC mochitests<br />
<br />
{{Bug|1306821}} Intermittent dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html | Test timed out.<br />
<br />
{{Bug|1307155}} JsepSessionImpl.cpp:292:15: warning: 4 enumeration values not handled in switch: 'kAudio', 'kText', 'kApplication'... [-Wswitch]<br />
<br />
{{Bug|1307300}} Typo in trickle ICE SDP verification<br />
<br />
{{Bug|1309641}} Multiple pre-answer binding requests result in excessive memory usage<br />
<br />
{{Bug|1313246}} Empty username and/or credential in RTCPeerConnection constructor throw when they shouldn't<br />
<br />
{{Bug|1315288}} Crash in memcpy | copy_and_extend_plane<br />
<br />
{{Bug|1316657}} Clean up webrtc gtest entries in toolkit.mozbuild <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1273734}} [AVFoundation] Expose different FPS range as discrete capability<br />
<br />
{{Bug|1275554}} MediaEngine's mImage value is sometimes released too late in shutdown (final-CC)<br />
<br />
{{Bug|1284910}} Platform support to let the UI know which streams are scary to share<br />
<br />
{{Bug|1291715}} Enable voice/audio support for DTMF in WebRTC<br />
<br />
{{Bug|1294605}} Cloning a stopped track causes gUM capture to remain on until GC.<br />
<br />
{{Bug|1295352}} Update media tests to not leave active gUM streams behind.<br />
<br />
{{Bug|1297337}} Implement mediaDevices.ondevicechange for Linux<br />
<br />
{{Bug|1299324}} Switching microphones in Firefox 49 hangs video feed, returns error<br />
<br />
{{Bug|1300468}} Implement mediaDevices.ondevicechange for Windows<br />
<br />
{{Bug|1302059}} Linux getUserMedia does not support all modes of a camera<br />
<br />
{{Bug|1303279}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1304558}} media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h:18: fatal error: sys/inotify.h: No such file or directory<br />
<br />
{{Bug|1307042}} Make fake audio implementation operate off NotifyPull, avoiding timers and underruns<br />
<br />
{{Bug|1307507}} Resolution for outbound video stream drops to 352x288 on replacing video track during webrtc call.<br />
<br />
{{Bug|1307533}} getUserMedia facingmode does not work on Surface Book<br />
<br />
{{Bug|1307630}} Media with both audio and video tracks return the audio settings for the video track's getSettings()<br />
<br />
{{Bug|1308114}} devicechange event is not fired if the script doesn't call getusermedia or enumerateDevices<br />
<br />
{{Bug|1308115}} set the pref media.ondevicechange.enabled default true<br />
<br />
{{Bug|1308298}} Remove duration and interToneGap attributes from RTCDTMFSender<br />
<br />
{{Bug|1308412}} Webcams based on CoreMedia I/O plugin don't work since FF switch to AVFoundation<br />
<br />
{{Bug|1308605}} Regression from OverconstrainedError to InternalError on failure of applyConstraints and some getUserMedia calls<br />
<br />
{{Bug|1308792}} Crash in webrtc::ViEInputManager::RegisterObserver<br />
<br />
{{Bug|1309886}} Received tracks don't end after removal and renegotiation<br />
<br />
{{Bug|1311048}} Detect Firefox windows in window and application capture code.<br />
<br />
{{Bug|1312030}} sIPCServingParent does not seem to be multi-content-process e10s compatible<br />
<br />
{{Bug|1312304}} Crash in mozilla::NrIceCtx::Initialize<br />
<br />
{{Bug|1312332}} Bad `stopVideo` check in GUMCallbackMediaStreamListener::NotifyChromeOfTrackStops<br />
<br />
{{Bug|1312413}} `mDefaultDevice` should be an index in `mDeviceIndexes`<br />
<br />
{{Bug|1313406}} Enable DTMF by default<br />
<br />
{{Bug|1315283}} Intermittent video glitches on AppRTC calls<br />
<br />
{{Bug|1315737}} Remove platform checking of screensharing whitelist<br />
<br />
{{Bug|1315858}} Test ability to detect screensharing sources that are firefox. <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|852665}} Report WebRTC transport termination (e.g. iceConnectionState=disconnected)<br />
<br />
{{Bug|1280041}} Crash in mozilla::DataChannel::GetBufferedAmount<br />
<br />
{{Bug|1288904}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1290049}} Intermittent test_peerConnection_restartIceLocalAndRemoteRollback.html | iceconnectionstate event 'connected' matches expected state 'checking' - got "connected", expected "checking"<br />
<br />
{{Bug|1304568}} A peculiar class hierarchy with NrSocketBase as a root<br />
<br />
{{Bug|1304920}} Non ICE binding requests include fingerprint<br />
<br />
{{Bug|1306714}} Implement RFC 7983 when demuxing DTLS<br />
<br />
{{Bug|1306873}} Firefox sending unannounced SSRCs in simulcast, may not be sending RID<br />
<br />
{{Bug|1307433}} WebRTC: implement RFC6051 ("Rapid Synchronisation of RTP Flows" )<br />
<br />
{{Bug|1309129}} Redirect nICEr logging to NSPR<br />
<br />
{{Bug|1309585}} GetAdaptersAddresses failure results in call failure on Win<br />
<br />
{{Bug|1310305}} Crash in nr_stun_message_has_attribute<br />
<br />
{{Bug|1311383}} Stop using Scoped.h NSS types in transportlayerdtls.(cpp|h)<br />
<br />
{{Bug|1315470}} DataChannel.send() never throws exceptions <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1285646}} Cleanup the repetitive code in sdp_parse_attr_fmtp from sdp_attr.c<br />
<br />
{{Bug|1291714}} Add signaling support for DTMF in WebRTC<br />
<br />
{{Bug|1304165}} Multiple renegotiations leads to crash in ActivateOrRemoveTransports<br />
<br />
{{Bug|1306594}} test_peerConnection_audioRenegotiationInactiveAnswer.html is permafailing when tested properly<br />
<br />
{{Bug|1306777}} RTP continues to send when track switches to inactive<br />
<br />
{{Bug|1312306}} Treat expires=0 on RTCPeerConnection.generateCertificate() as 0<br />
<br />
{{Bug|1313527}} red parser goes into endless loop on broken SDP<br />
<br />
{{Bug|1313905}} Fix -Wincompatible-pointer-types-discards-qualifiers warnings in webrtc/signaling<br />
<br />
{{Bug|1315318}} sdpUtils.js verifySdp has reversed info statements for requiresTrickleIce</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151508Media/WebRTC/ReleaseNotes/512016-10-17T14:54:28Z<p>Mreavy: /* Noteworthy Changes: */ Changed Fx to Firefox</p>
<hr />
<div>=Firefox 51 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51. (See {{bug|1302935}} for details.) <br />
<br />
* Implemented draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}} for details.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Firefox 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}} for details.)<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151507Media/WebRTC/ReleaseNotes/512016-10-17T14:53:34Z<p>Mreavy: /* Noteworthy Changes: */ Minor edit</p>
<hr />
<div>=Firefox 51 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51. (See {{bug|1302935}} for details.) <br />
<br />
* Implemented draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}} for details.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Fx 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}} for details.)<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151506Media/WebRTC/ReleaseNotes/512016-10-17T14:52:41Z<p>Mreavy: /* Noteworthy Changes: */ Removed important since this is a short list</p>
<hr />
<div>=Firefox 51 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51. (See {{bug|1302935}} for details.) <br />
<br />
* We implement draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}} for details.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Fx 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}} for details.)<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151505Media/WebRTC/ReleaseNotes/512016-10-17T14:51:15Z<p>Mreavy: /* Firefox 51 WebRTC/WebAudio Release Notes: */ Fixed a typo</p>
<hr />
<div>=Firefox 51 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* IMPORTANT - VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51. (See {{bug|1302935}} for details.) <br />
<br />
* We implement draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}} for details.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Fx 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}} for details.)<br />
<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/Bugs&diff=1151080Media/Bugs2016-10-12T14:42:20Z<p>Mreavy: /* Media Bugs - Common Searches to see Product Backlog */ Updated search to Fx52</p>
<hr />
<div>==Media Bugs - Common Searches to see Product Backlog ==<br />
<p> </p><br />
<br />
'''[https://mzl.la/2dXkKaw "Real-time Media" Bugs] that have landed during Firefox 52'''<br />
<br />
'''[https://mzl.la/2dXiCzT "Playback" Bugs"] that have landed during Firefox 52'''<br />
<br />
===WebRTC, WebAudio, Cubeb, MediaStreamGraph and Media Recording (combined)===<br />
* [http://mzl.la/1U5l5GE Un-triaged bugs]<br />
* [http://mzl.la/1U5ltES Unconfirmed bugs]<br />
* [http://mzl.la/1XhyImX P1 bugs]<br />
<br />
===Core::Audio/Video (Main Component) Queries===<br />
<br />
* [http://mzl.la/1h3slCq Un-triaged Audio/Video bugs]<br />
** Help us triage. Any bug found in this search needs to be moved to one of the other media components (shown below)<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Playback Queries===<br />
<br />
* [https://is.gd/media_playback_triage Untriaged Playback bugs]<br />
* [https://is.gd/media_playback_p1 P1 Playback bugs]<br />
* [https://is.gd/media_playback_triaged Open Playback bugs]<br />
** Anthony Jones (kentuckyfriedtakahe on irc) and Chris Pearce (cpearce) lead Playback. Please reach out to them directly if you have suggestions/questions about Playback bugs.<br />
<p> </p><br />
<br />
===Core::Audio/Video - MediaStreamGraph Bugzilla Queries===<br />
<br />
* [http://mzl.la/1RC0aXs Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RC0fug Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1RC0oxP Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1RBZUb6 Un-triaged MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
* [http://mzl.la/1RC02r8 Unconfirmed MediaStreamGraph bugs]<br />
**Search based on Open MediaStreamGraph component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Cubeb Bugzilla Queries===<br />
<br />
* [http://mzl.la/1HjtQrV Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjtUIj Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1HjtW2Y Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hju0Qg Un-triaged Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
* [http://mzl.la/1Hju7Lu Unconfirmed Cubeb bugs]<br />
**Search based on Open Cubeb component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - GMP (Gecko Media Plugin) Bugzilla Queries===<br />
<br />
* [http://mzl.la/1Q3CLBo Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1HjuaXK Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results <br />
* [http://mzl.la/1NceYey Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1Hjujui Un-triaged GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
* [http://mzl.la/1HjuoOK Unconfirmed GMP bugs]<br />
**Search based on Open GMP component bugs that have priority flag set]<br />
<br />
<p> </p><br />
<br />
===Core::Audio/Video - Recording Bugzilla Queries===<br />
<br />
* [http://mzl.la/1jXz16N Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1M0rudk Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEvYw Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1iH134R Un-triaged Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1M0qXZ2 Unconfirmed Recording bugs]<br />
**Search based on Open Recording component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===Web Audio Bugzilla Queries===<br />
<br />
* [http://mzl.la/1MTEa8b Bugzilla Ranked "P1"" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1MTEbsR Bugzilla Ranked "P2" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
* [http://mzl.la/1MTEbJp Bugzilla Ranked "P3 to P5 list] <br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1M0izbQ Un-triaged Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
* [http://mzl.la/1MTEggc Unconfirmed Web Audio bugs]<br />
**Search based on Open WebAudio component bugs that have no Backlog flag being set]<br />
<br />
<p> </p><br />
<br />
===WebRTC Bugzilla Queries===<br />
<br />
* [http://mzl.la/1S1PrWF Bugzilla Ranked "P1" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1RPW8tq Bugzilla Ranked "P2" - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
* [http://mzl.la/1Cos5lF Bugzilla Ranked "P3 to P5 - backlog="webRTC+" or "backlog"="tech-debt" list] <br />
**Add the "Rank" Column to your results and sort on Rank <br />
***The option to "Change columns" is at bottom of search results<br />
** These bugs (P3 to P5) are unlikely to be fixed within the next 6 months. Patches are welcome. If you need a bug fixed sooner and can't contribute a patch, talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about raising the priority. <br />
* [http://mzl.la/1h2L6WT Un-triaged WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1S1RN7L Unconfirmed WebRTC bugs]<br />
**Search based on Open WebRTC bugs that have no Backlog flag set]<br />
* [http://mzl.la/1MUt9bh Parking-lot bugs]<br />
** Search based on Open WebRTC bugs that have the parking-lot flag set]<br />
** NOTE: parking-lot bugs are ones we will take patches for, but will not be fixing for a long time (if ever, depending on the bug). If you care about a bug in parking-lot, please contribute a patch or talk with [mailto:mreavy@mozilla.com Maire] (mreavy on irc) about getting it prioritized.</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151044Media/WebRTC/ReleaseNotes/512016-10-12T04:21:28Z<p>Mreavy: formatting</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* IMPORTANT - VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51. (See {{bug|1302935}} for details.) <br />
<br />
* We implement draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}} for details.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Fx 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}} for details.)<br />
<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/51&diff=1151043Media/WebRTC/ReleaseNotes/512016-10-12T04:20:14Z<p>Mreavy: /* Initial draft */</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox51:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSz0RX Bugzilla search for WebRTC related bugs marked Fixed in Firefox 51] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2dSvI17 Bugzilla search for WebAudio bugs marked Fixed in Firefox 51]<br />
<br />
== Noteworthy Changes: ==<br />
* IMPORTANT - VP9 is now supported in this release. We don't prefer VP9 (yet), but we do accept and negotiate it. (See {{bug|1302935}}.) Please help us test and report any bugs you find. Our plan is to keep this enabled into Release for Firefox 51.<br />
<br />
* We implement draft-ietf-rtcweb-ip-handling, which adds prefs to limit IP address exposure. (See {{bug|1297416}}.) <br />
<br />
* Implemented mediaDevices.ondevicechange for Mac. Support for Windows and Linux will be in Fx 52. (See {{bug|1286429}} for details.)<br />
<br />
* Removed RTCPeerConnection.removeStream. (See {{bug|1213441}}.)<br />
<br />
<br />
==Bug tickets fixed in Firefox 51 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :=== <br />
{{Bug|1300446}} Check cubeb_init so that a null context is not actually used<br />
<br />
{{Bug|1278612}} OS X sound output device doesn't update when OS output device is changed<br />
<br />
{{Bug|1274479}} Crash in shutdownhang | stuck in winmm_stream_destroy and winmm_buffer_thread<br />
<br />
{{Bug|1302348}} Report cubeb context init failures via telemetry <br />
<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):=== <br />
{{Bug|1293194}} Building with --disable-eme fails with GMPDecoderModule.cpp:15:30: fatal error: mozilla/EMEUtils.h: No such file or directory<br />
<br />
{{Bug|1290830}} Make Decryptor APIs reusable by not only GMP framework<br />
<br />
{{Bug|1286480}} [10.12] Widevine CDM always crashes on Amazon since upgrade to macOS Sierra <br />
<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):=== <br />
{{Bug|1293015}} Intermittent dom/media/test/test_bug879717.html | v3 (Stream of 320x240.ogv) should have gotten the 'loadeddata' event callback<br />
<br />
{{Bug|1292335}} Intermittent dom/media/test/test_streams_capture_origin.html | expected black - got "255,255,0,255", expected "0,0,0,255"<br />
<br />
{{Bug|1297083}} Distorted/slowed-down audio with getUserMedia simultaneously in two tabs<br />
<br />
{{Bug|1299172}} Intermittent dom/media/test/test_bug879717.html | application crashed [@ mozilla::MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(already_AddRefed<nsIRunnable>)]<br />
<br />
{{Bug|1299451}} HTMLMediaElement's mozCaptureStream may result in no output<br />
<br />
{{Bug|1298698}} EnsureNextIteration() may leave MediaStreamGraph asleep<br />
<br />
{{Bug|1300529}} HTMLMediaElement::CaptureStreamInternal called incorrectly<br />
<br />
{{Bug|1298515}} Intermittent dom/media/tests/mochitest/test_getUserMedia_audioCapture.html | Assertion count 50 is greater than expected range 0-0 assertions.<br />
<br />
{{Bug|1300871}} MediaRecorder video and audio are very out of sync on win10 if setting media.navigator.audio.full_duplex=false<br />
<br />
{{Bug|1201363}} Stop buffering video in the MediaStreamGraph<br />
<br />
{{Bug|1259788}} video.mozCaptureStream doesn't work with a MediaStream src<br />
<br />
{{Bug|1255737}} Async shutdown crash with "MediaStreamGraph shutdown: blocking on msg thread" <br />
<br />
<br />
===Audio/Video:Media Recording: === <br />
{{Bug|1272877}} Autophone - Intermittent Android 6.0 - PROCESS-CRASH | dom/media/test/test_mediarecorder_bitrate.html | application crashed [@ mozilla::gl::GLBlitHelper::InitTexQuadProgram]<br />
<br />
{{Bug|1299714}} Add back the missing timeout protection back to |VideoTrackEncoder::Init|.<br />
<br />
{{Bug|1294753}} MediaRecorder sometimes records broken audio timestamps. (Uplifted for Fx 50 and Fx 49.) <br />
<br />
<br />
===WebAudio:=== <br />
{{Bug|{{Bug}}|1113634}} [Web Audio API] automation is ignored with same timing but different type event<br />
<br />
{{Bug|1281382}} setTargetAtTime uses incorrect starting value when earlier event is skipped<br />
<br />
{{Bug|1295296}} Video is silenced when using createMediaElementSource(videoElem)<br />
<br />
{{Bug|1017704}} Don't call DropJSObjects() in AudioBuffer::ClearJSChannels()<br />
<br />
{{Bug|1301518}} Opus 255 channel mapping family not playable<br />
<br />
{{Bug|1296275}} Intermittent webaudio/test/test_audioParamTimelineDestinationOffset.html,test_mediaDecoding.html | application crashed [@ js::CompartmentChecker::check] after Assertion failure: IsInsideNursery(obj) || !obj->asTenured().isMarked(gc::GRAY)<br />
<br />
{{Bug|1288359}} Pref to disable Web Audio API <br />
<br />
<br />
===Core (General) WebRTC:=== <br />
{{Bug|1278113}} Intermittent test_peerConnection_verifyAudioAfterRenegotiation.html | Test timed out<br />
<br />
{{Bug|1293206}} Intermittent dom/media/tests/mochitest/test_peerConnection_basicAudioNATRelay.html | application crashed [@ libc-2.23.so + 0x35418]<br />
<br />
{{Bug|1295687}} media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h:213:8: warning: private field 'pretty_' is not used [-Wunused-private-field]<br />
<br />
{{Bug|1197328}} remove PR_snprintf calls in media/{webrtc,mtransport}/<br />
<br />
{{Bug|1297101}} Improve green-ness of Android VMs<br />
<br />
{{Bug|1284038}} Intermittent browser/base/content/test/webrtc/browser_devices_get_user_media.js | expected notification recording-device-events - Got 2, expected 1<br />
<br />
{{Bug|1302935}} WebRTC VP9 support doesn't set the gof field correctly due to use of old libvpx<br />
<br />
{{Bug|1298586}} Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOffer.html | sink is 1/2 width of source - got 50, expected 25<br />
<br />
{{Bug|1300600}} Intermittent dom/media/tests/mochitest/test_getUserMedia_basicAudio.html | Test timed out.<br />
<br />
{{Bug|1213441}} Remove RTCPeerConnection.removeStream for good. <br />
<br />
<br />
===WebRTC:Audio/Video:=== <br />
{{Bug|1290629}} nightly 20160729 compile fails without webrtc, fatal error: webrtc/video_engine/include/vie_capture.h: No such file or directory<br />
<br />
{{Bug|1290866}} aOutHandle not passed out of MediaDevice Allocate() functions<br />
<br />
{{Bug|1290075}} Can't open audio inputs via GetUserMedia() in Android (or desktop without full_duplex)<br />
<br />
{{Bug|1293422}} [openh264] Mode 0 crashes FF >= 50 immediately<br />
<br />
{{Bug|1295415}} Two coverity issues in MediaEngineWebRTC<br />
<br />
{{Bug|1284683}} Unable to use device ids from the content process to call getUserMedia on the chrome process<br />
<br />
{{Bug|1271585}} Back out and rewrite the resampling bypass code and WebRTCEngine to MSG code<br />
<br />
{{Bug|1296684}} "MediaEngine.h:14:10: fatal error: 'DeviceChangeCallback.h' file not found" with --disable-webrtc<br />
<br />
{{Bug|1297911}} Followup to bug 1286429 - if block needs to be braced<br />
<br />
{{Bug|1279135}} RTCPeerConnection.removeTrack causes freezing video when removing an audio track<br />
<br />
{{Bug|1284909}} Need to write code for observing deviceId constraints for screensharing<br />
<br />
{{Bug|1300810}} Log enumeration results from cubeb in GetUserMedia<br />
<br />
{{Bug|1297058}} Don't send FEC for H.264 with NACK enabled<br />
<br />
{{Bug|1303411}} VideoConduit.cpp:747:26: warning: '&&' within '||' [-Wlogical-op-parentheses]<br />
<br />
{{Bug|1303419}} Crash in mozilla::MediaEngineWebRTCMicrophoneSource::FreeChannel<br />
<br />
{{Bug|1286429}} Implement mediaDevices.ondevicechange for Mac OSX <br />
<br />
<br />
===WebRTC:Networking:=== <br />
{{Bug|1293172}} Improve the DTLS handshake error log message<br />
<br />
{{Bug|1290365}} TURN/TCP with hostnames doesn't work on Linux. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1255371}} Invalid RTCP SR sent by Firefox when h264 is used<br />
<br />
{{Bug|1295552}} no relay candidates after ice restarts. (Uplifted for Fx 50 and Fx 49.)<br />
<br />
{{Bug|1275461}} Intermittent test_peerConnection_simulcastOffer.html | Error in test execution: Error: Timed out waiting for frames timeout/<@http://mochi.test:8888/tests/dom/media/tests/mochitest/head.js:462:63 ... promise callback*timeout@http://mochi.test:8888/tests/d<br />
<br />
{{Bug|1302481}} New ICE unit test no NAT <-> sym NAT<br />
<br />
{{Bug|1297416}} Implement draft-ietf-rtcweb-ip-handling<br />
<br />
{{Bug|1298991}} nICEr creates duplicated prflx candidate pairs <br />
<br />
<br />
===WebRTC:Signaling:=== <br />
{{Bug|1295690}} Bug detecting red/ulpfec codecs in JsepTrack<br />
<br />
{{Bug|1298189}} Logging broken in media/webrtc/signaling/test</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1150810Media/WebRTC/ReleaseNotes/502016-10-10T21:53:58Z<p>Mreavy: /* Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50: */ fixed search URL</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2dSzibr Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. The current plan is to ship Mac full duplex and Windows full duplex to release in Fx 50. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode 0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} [Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC&diff=1144764Media/WebRTC2016-08-19T18:55:44Z<p>Mreavy: /* Releases & Notes */ Added 48, 49, 50 links</p>
<hr />
<div>WebRTC is a free, open project that will bring peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]]. Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for interesting links and details. <br />
<br />
==Releases & Notes==<br />
*[https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Schedule Calendar]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/40 Firefox 40 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/41 Firefox 41 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/42 Firefox 42 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/43 Firefox 43 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/44 Firefox 44 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/45 Firefox 45 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46 Firefox 46 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/47 Firefox 47 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/48 Firefox 48 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/49 Firefox 49 WebRTC & Web Audio Release Notes]<br />
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/50 Firefox 50 WebRTC & Web Audio Release Notes]<br />
<br />
==Product Backlog==<br />
Go to [https://wiki.mozilla.org/Media/Bugs#WebRTC_Bugzilla_Queries WebRTC bugs] to search for all open WebRTC bugs (including untriaged and unconfirmed bugs).<br />
<br />
===Triage Guidelines===<br />
The Product Backlog is continually maintained to ensure relative priorities are understood. Individual priority may vary based circumstance.<br />
* Priorities follow the Firefox Desktop Standard:<br />
** Priority 1 - Blocker, must-fix before shipping. <br />
** Priority 2 - Major impact, considering severity × probability. Not a blocker for shipping.<br />
** Priority 3 - Average Bug. definitely a problem, but doesn't stop someone from using the product. <br />
** Priority 4 - Minor or polish bugs that are real issues (especially in aggregate) and annoying.<br />
** Priority 5 - Low-impact. something we'd fix, but mostly only bothers the discerning user. Little impact on usability.<br />
<br />
*RANK: As priority buckets start to have a large amount of bugs in them, the Rank field can be used to call attention to higher or lower rank and provide a way to sort easily in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - default to mid-range value.<br />
** P1 Rank options=1-19, default 15<br />
** P2 Rank options=20-29, default 25<br />
** P3 Rank options=30-39, default 35<br />
** P4 Rank options=40-49, default 45<br />
** P5 Rank options=50-59, default 55<br />
** any valid bugs that we don't believe we'll ever put resources on, but would accept patches for, go in "parking-lot" area<br />
<br />
<p> </p><br />
*The Blocking-Flag called "Backlog" track bugs that are approved or not for the Backlog ("webRTC+", "parking lot")<br />
*QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.<br />
*"Points" should be set when known (if nothing set - assumed a "1" or very small). Most relevant if taking a bigger bug so we know when bugs are large bits of work.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"<br />
** After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank<br />
*If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+<br />
**Before it can be given a Rank it should:<br />
*** be in an actionable state<br />
*** for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing<br />
*** for feature requests or enhancements, it means that there's a clear problem statement or suggestion<br />
*** has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months<br />
<p> </p><br />
<br />
'''Contributor Engagement'''<br />
* Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness<br />
* Add Whiteboard tag of [good first bug] for contributors to pick up<br />
<br />
==Project Status ==<br />
*[https://mozilla.aha.io/published/b40393012432847d857ee68299a8a82f?page=2 Detailed Roadmap], noting that the further out the more lose the targets are]<br />
<br />
==Contacts and Useful Links==<br />
*[https://mozilla.github.io/webrtc-landing/gum_test.html Click here] to try WebRTC features in the Firefox browser<br />
*[https://wiki.mozilla.org/Webrtc/contacts Contacts for WebRTC]<br />
*[https://wiki.mozilla.org/Webrtc/links Useful Links for WebRTC]<br />
<br />
==Meetings==<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Weekly Stand-up" || Wednesday || 6:00AM - 6:30AM & 1:30 - 2:00 PM || 9:00AM - 9:30PM & 4:30 - 5:00 PM || 3:00PM - 3:30PM & - 10:30PM-11:00PM || webRTC-Apps || [https://etherpad.mozilla.org/webrtcweekly etherpad]<br />
|-<br />
|}<br />
* Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked. Bring-up topics for longer Discussion at end if needed.<br />
** Developers and active contributors only need to attend one of the two sessions each week. We have 2 sessions due to the number of very different time zones throughout the team.<br />
** please update the [https://etherpad.mozilla.org/webrtcweekly Stand-up Notes etherpad] if you cannot make the meeting (even if it's just to say you're on PTO)<br />
* [http://ietf.org/ IETF Standards Meetings]<br />
<br />
==Archived==<br />
===Notes===<br />
*[https://wiki.mozilla.org/Media/WebRTC/archived Archived notes]<br />
<br />
<br />
<br />
----</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144763Media/WebRTC/ReleaseNotes/502016-08-19T18:54:40Z<p>Mreavy: /* WebAudio: */ Fixed typo</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. The current plan is to ship Mac full duplex and Windows full duplex to release in Fx 50. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode 0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} [Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144762Media/WebRTC/ReleaseNotes/502016-08-19T18:54:05Z<p>Mreavy: /* Audio/Video:Cubeb : */ Fixed typo</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. The current plan is to ship Mac full duplex and Windows full duplex to release in Fx 50. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode 0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144759Media/WebRTC/ReleaseNotes/502016-08-19T18:32:23Z<p>Mreavy: /* Noteworthy Changes: */ Added full duplex plans</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. The current plan is to ship Mac full duplex and Windows full duplex to release in Fx 50. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode 0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144756Media/WebRTC/ReleaseNotes/502016-08-19T18:18:51Z<p>Mreavy: /* Noteworthy Changes: */ Fixed typo</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode 0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144350Media/WebRTC/ReleaseNotes/502016-08-17T15:38:19Z<p>Mreavy: Added note about FEC</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode0 for H.264 codec (See {{bug|1167544}}.)<br />
* We have landed partial support for FEC in Fx50 (See {{Bug|1279049}} and {{Bug|1275360}}), but we expect to have full support landed in Fx51. It is still TBD if we will pref on FEC in Fx51 or a later release, but in Fx51 anyone should be able to flip the pref and try FEC in Firefox.<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144298Media/WebRTC/ReleaseNotes/502016-08-17T05:53:14Z<p>Mreavy: /* Noteworthy Changes: */ Added Fixed to an item</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* Fixed no video being rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode0 for H.264 codec (See {{bug|1167544}}.)<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144297Media/WebRTC/ReleaseNotes/502016-08-17T05:51:38Z<p>Mreavy: /* Noteworthy Changes: */ Removed one item</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* No video rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode0 for H.264 codec (See {{bug|1167544}}.)<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144294Media/WebRTC/ReleaseNotes/502016-08-17T05:50:10Z<p>Mreavy: /* Noteworthy Changes: */ typo</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* Fixed WebRTC slow recording -- was slowed by 100% (See {{bug|1278027}}.) Uplifted to Fx49<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug|1213313}} and {{bug|1257718}}.) <br />
* No video rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode0 for H.264 codec (See {{bug|1167544}}.)<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144293Media/WebRTC/ReleaseNotes/502016-08-17T05:49:22Z<p>Mreavy: /* Noteworthy Changes: */ First draft</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
* Several quality improvements for Mac full duplex landed in libcubeb. (See {{bug|1280280}}, {{bug|1283850}} and {{bug|1285541}}.)<br />
* Support for addtrack event for MediaStream. (See {{bug|1208328}}.)<br />
* Implement MediaStreamTrack.readyState/onended (See {{bug|1208373}}.)<br />
* Fixed WebRTC slow recording -- was slowed by 100% (See {{bug|1278027}}.) Uplifted to Fx49<br />
* MediaStreamAudioSourceNode was getting garbage collected while there were live audio tracks (See {{bug|934512.}})<br />
* [Web Audio] Fixed "Acid Defender" WebAudio game to remove extra beep artifacts (See {{bug|1283910}}.)<br />
* [Web Audio] Allow smooth off-main-thread scheduling of listener and source position. (See {{bug|1265394}}.)<br />
* [Web Audio] Added a new IIRFilterNode that implements a general IIR filter. (See {{bug|1265408}}.)<br />
* [Web Audio] Implemented new web audio spec filters (See {{bug|1265395}}.)<br />
* [Web Audio] Fixed correctness issues (See {{bug}1213313}} and {{bug|1257718}}.) <br />
* No video rendered after renegotiating recvonly video (e.g. on meet.jit.si) (See {{bug|1273652}}.) Uplifted to Fx49. <br />
* Cherry-picked bugfix for Delay-Agnostic AEC from Chrome 51 (See {{bug|1286644}}.) Uplifted to Fx49 and Fx48. <br />
* Implemented MediaStreamTrack.getConstraints() + getSettings() (See {{bug|1213517}}.)<br />
* Fixed packetization mode0 for H.264 codec (See {{bug|1167544}}.)<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144289Media/WebRTC/ReleaseNotes/502016-08-17T05:27:05Z<p>Mreavy: Added uplift notes</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
*<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) (Uplifted to Fx49.)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49.)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49.)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51 (Uplifted to Fx49 and Fx48.)<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC <br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) (Uplifted to Fx49.)<br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly) (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (Uplifted to Fx49 and Fx48.)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49.)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support (Uplifted to Fx49.)</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144287Media/WebRTC/ReleaseNotes/502016-08-17T05:15:38Z<p>Mreavy: /* Core (General) WebRTC: */ Added uplift notes</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
*<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode (Uplifted to Fx 49.)<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si) - Uplifted to Fx49<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone (Uplifted to Fx49)<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced (Uplifted to Fx49)<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone <br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)' (Uplifted to Fx49, Fx48, and ESR.)<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined<br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC<br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) <br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (uplifted to Fx48 and Fx49)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144286Media/WebRTC/ReleaseNotes/502016-08-17T05:07:48Z<p>Mreavy: /* Audio/Video:MediaStreamGraph (MSG): */ Added uplift notes</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
*<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration. (Uplifted to Fx49.)<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)] (Uplifted to Fx49.)<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown<br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone<br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)'<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined <br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC<br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) <br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (uplifted to Fx48 and Fx49)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support</div>Mreavyhttps://wiki.mozilla.org/index.php?title=Media/WebRTC/ReleaseNotes/50&diff=1144285Media/WebRTC/ReleaseNotes/502016-08-17T05:04:31Z<p>Mreavy: /* Audio/Video:GMP (Gecko Media Plugin): */ Added uplift note</p>
<hr />
<div>=Firefox50 WebRTC/WebAudio Release Notes:=<br />
<br />
==Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox50:==<br />
'''''WebRTC bugs:'''''<br />
[https://mzl.la/2aYRDAh Bugzilla search for WebRTC related bugs marked Fixed in Firefox 50] <br />
<br />
'''''WebAudio bugs:'''''<br />
[https://mzl.la/2aYY9qF Bugzilla search for WebAudio bugs marked Fixed in Firefox 50]<br />
<br />
== Noteworthy Changes: ==<br />
*<br />
<br />
==Bug tickets fixed in Firefox 50 that affect WebRTC or Web Audio (full list):==<br />
<br />
===Audio/Video:Cubeb :===<br />
{{Bug|1280280}} Uplift cubeb to revision 073c9f011114<br />
<br />
{{Bug|845648}}} Supply more useful strings for cubeb context and stream names<br />
<br />
{{Bug|1280630}} Add telemetry probes to know which back-end is used the most<br />
<br />
{{Bug|1286341}} 1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing<br />
<br />
{{Bug|1283850}} Uplift cubeb to revision b8aebef<br />
<br />
{{Bug|1283020}} Change the various latency API to use frames instead of milliseconds<br />
<br />
{{Bug|1288980}} Expose audio backend in about:support<br />
<br />
{{Bug|1281402}} Crash in `anonymous namespace''::close_wasapi_stream<br />
<br />
{{Bug|1289678}} Investigate libcubeb backend initialization failures reported via AUDIOSTREAM_BACKEND_USED telemetry<br />
<br />
{{Bug|1285541}} Update cubeb to revision e2d399<br />
<br />
{{Bug|1290425}} Update cubeb from upstream to fec2a83786<br />
<br />
{{Bug|1289209}} Intermittent LeakSanitizer | leak at pa_xmalloc0, pulse_init, cubeb_init, GetCubebContextUnlocked<br />
<br />
{{Bug|1290625}} Assertion failed: (r == 0 && "Deadlock") on OSX when getting microphone with getUserMedia<br />
<br />
{{Bug|783733}} JACK audio output support [initial version] [cubeb]<br />
<br />
===Audio/Video:GMP (Gecko Media Plugin):===<br />
{{Bug|1280743}} dom/media/gmp/GMPParent.cpp fails to compile with --disable-eme<br />
<br />
{{Bug|1285231}} Don't use Move() to empty plugins list in GMPServiceParent.cpp<br />
<br />
{{Bug|1288021}} GMPs on a Network path not mapped to drive letter fail to load. (Uplifted to Fx49.)<br />
<br />
{{Bug|1284192}} Make CDMProxy be a base class and move the logic into subclass<br />
<br />
{{Bug|1284809}} Rename CDMCallbackProxy to GMPCDMCallbackProxy to make it GMP specific use<br />
<br />
===Audio/Video:MediaStreamGraph (MSG):===<br />
{{Bug|1266646}} Change HTMLMediaElement::StreamSizeListerner to inherit MediaStreamDirectTrackListener.<br />
<br />
{{Bug|1281408}} Crash producing memory report [@ mozilla::dom::MediaStreamAudioSourceNode::SizeOfIncludingThis]<br />
<br />
{{Bug|1284726}} dom/media/DOMMediaStream.cpp:13:10: fatal error: 'mozilla/dom/MediaStreamTrackEvent.h' file no{{Bug|t} found (with disable-eme/disable-webrtc)<br />
<br />
{{Bug|1274221}} HTMLMediaElement::mVideoTrackList is not synced with HTMLMediaElement::mSrcStream::mTracks.<br />
<br />
{{Bug|1208328}} Implement addtrack event for MediaStream<br />
<br />
{{Bug|1208373}} Implement MediaStreamTrack.readyState/onended<br />
<br />
{{Bug|1278027}} In Firefox Nightly, WebRTC recording is slowed by 100%. So duration is 2x the actual duration.<br />
<br />
{{Bug|1281193}} Intermittent browser_devices_get_user_media.js | application crashed [@ mozilla::MediaStreamGraphImpl::AudioTrackPresent(bool &)]<br />
<br />
{{Bug|934512}} MediaStreamAudioSourceNode cycle collection happening too soon with getUserMedia (e.g. on http://greweb.me/zpeech/)<br />
<br />
{{Bug|1280445}} MediaStreamGraph holding on to Images until after gfx shutdown <br />
<br />
===Audio/Video:Media Recording: ===<br />
{{Bug|1289989}} Remove VS2013 workaround for VP8 test crash <br />
<br />
===WebAudio:===<br />
{{Bug|1283910}} "Acid Defender" WebAudio game has extra beep artifacts in Firefox 50<br />
<br />
{{Bug|1273009}} `[Web Audio API] CPU consumption is gradually increased when issue many AudioParam automation.<br />
<br />
{{Bug|1261168}} Add AlignedAutoTArray type in Web Audio<br />
<br />
{{Bug|1269741}} Allow resuming a context that has been suspended in the same event loop turn<br />
<br />
{{Bug|1282820}} Change the URL in webidl files for the Web Audio API<br />
<br />
{{Bug|1265394}} Implement AudioParam cartesian coordinates for PannerNode<br />
<br />
{{Bug|1265408}} Implement IIRFilterNode<br />
<br />
{{Bug|1265395}} Implement the new filter equations<br />
<br />
{{Bug|1283056}} Intermittent 876024-1.html | application terminated with exit code 5 | Assertion failure: (mAudioContextState == AudioContextState::Suspended && aNewState == AudioContextState::Running) || (mAudioContextState == AudioContextState::Running && aNewState ==<br />
<br />
{{Bug|1279092}} Intermittent browser_bug1181073.js | Interval is throttled with audio stopped (5.015000000000327 ms) | leaked 2 window(s) until shutdown [url = https://example.com/] Return code: 1<br />
<br />
{{Bug|1242268}} Intermittent test_WebAudioMemoryReporting.html | Non-zero usage for explicit/webaudio/audio-node/ScriptProcessorNode/dom-nodes<br />
<br />
{{Bug|1257718}} linearRampToValueAtTime not ramping to correct value<br />
<br />
{{Bug|1276483}} WaveShaper doesn't work, when connected from a silent GainNode<br />
<br />
{{Bug|1213313}} WebAudio setTargetAtTime uses incorrect starting value<br />
<br />
===Core (General) WebRTC:===<br />
{{Bug|1278476}} add anrdroid/aarch64 target to WebRTC's GYP<br />
<br />
{{Bug|1188120}} Can we remove test_zmedia_cleanup.html?<br />
<br />
{{Bug|1210660}} Change vp8 threshold for static images in screensharing mode<br />
<br />
{{Bug|1277853}} fix clang checks in webrtc arm assembly<br />
<br />
{{Bug|1284074}} Intermittent dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html | application crashed [@ mozilla::layers::TextureClient::SetLastFwdTransactionId(unsigned __int64)]<br />
<br />
{{Bug|1276805}} Intermittent test_peerConnection_basicAudioNATSrflx.html | PeerConnectionWrapper (pcLocal): legal ICE state transition from connected to failed<br />
<br />
{{Bug|1273652}} No video rendering after renegotiating recvonly video (e.g. on meet.jit.si)<br />
<br />
{{Bug|1275863}} test test_peerConnection_addTrack.html fails on Autophone<br />
<br />
{{Bug|1042631}} The pointer from Firefox window share shows misplaced<br />
<br />
{{Bug|1289123}} We attempt to run removed test test_zmedia_cleanup.html on Autophone<br />
<br />
{{Bug|1285501}} WebRTC fails to build on DragonFly: undefined reference to `webrtc::AudioDeviceLinuxALSA::AudioDeviceLinuxALSA(int)'<br />
<br />
{{Bug|1278309}} WebRTC promise resolving with undefined <br />
<br />
===WebRTC:Audio/Video:===<br />
{{Bug|1286644}} Cherry-pick bugfix for Delay-Agnostic AEC from Chrome 51<br />
<br />
{{Bug|1279004}} Don't decode SRTCP packets with the wrong SSRC<br />
<br />
{{Bug|1277009}} Fix -Wstring-conversion warnings in dom/media/compiledtest/TestAudioPacketizer.cpp<br />
<br />
{{Bug|1213517}} Implement MediaStreamTrack.getConstraints() + getSettings()<br />
<br />
{{Bug|1286096}} Make getSettings() and concurrent access work for audio constraints as well<br />
<br />
{{Bug|1275119}} Remove confusing receiving codec data base from Video Conduit<br />
<br />
{{Bug|1281866}} Rename gUM's SourceUnavailableError to NotReadableError.<br />
<br />
{{Bug|1280209}} Test test_getUserMedia_playAudioTwice.html times out on Autophone android 6 debug<br />
<br />
{{Bug|1279036}} Video resolution over 640x480 not working properly in getUserMedia on OSX (REGRESSION) <br />
<br />
===WebRTC:Networking:===<br />
{{Bug|1281708}} "Assertion failure: false" [@ mozilla::NrIceStunServer::ToNicerStunStruct]<br />
<br />
{{Bug|1289984}} Fix nICEr compiler warnings on Win<br />
<br />
{{Bug|1288987}} mtransport/test/sctp_unittest.cpp:111:18: error: 'struct sockaddr_conn' has no member named 'sconn_len' (DragonFly)<br />
<br />
{{Bug|1167544}} OpenH264 appears to send STAP-A aggregation packets in mode 0<br />
<br />
{{Bug|1281150}} Remove obsolete RTCDataChannel.stream property<br />
<br />
{{Bug|1285318}} Turn off WebRTC TCP packet filter for e10s (uplifted to Fx48 and Fx49)<br />
<br />
===WebRTC:Signaling:===<br />
{{Bug|1279049}} Add sdp for audio FEC<br />
<br />
{{Bug|1275360}} Add sdp for video FEC<br />
<br />
{{Bug|1287874}} Assert fail on ctx->timeout_ms<br />
<br />
{{Bug|1282792}} FF sends RTCP sender reports for recvonly tracks (Uplifted to Fx49)<br />
<br />
{{Bug|1280283}} Fix uchex warnings about null-check after pointer deref in webrtc/signaling<br />
<br />
{{Bug|1204099}} Implement more stringent RTP payload type validation<br />
<br />
{{Bug|1280259}} Jsep Track SSRC are filled multiple times with remote SSRC's<br />
<br />
{{Bug|1283619}} Send Conduit ignores remote Remb support</div>Mreavy