New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 826664 link

Starred by 7 users

Issue metadata

Status: Verified
Owner:
Closed: Dec 14
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocked on:
issue 830624

Blocking:
issue 794550



Sign in to add a comment

Increase audio endpoint buffer size for input audio on Windows

Project Member Reported by grunell@chromium.org, Mar 28 2018

Issue description

We should experiment with setting the endpoint buffer size to a larger value than today (we use the minimum) for Windows input audio. It has removed glitch problems in one case, and could possibly do that in other cases too. We must however ensure that additional latency isn't introduced. According to Windows documentation it shouldn't as long as we empty the buffer with the same frequency as before (i.e. device period).

Note that also according to the documentation, using the minimum buffer size should not cause glitches as long as the buffer is emptied with an interval same as the duration of the buffer or shorter. So the fact that using a larger buffer size avoids a problem could be because the driver is not properly implemented, and we'd work around that by setting a larger buffer size.

We need to add stats for device latency and glitches and use these to evaluate the experiment.
 
Blockedon: 830624
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f40c76c1bbe3b540f2c35eed977879cfb5a2f82

commit 9f40c76c1bbe3b540f2c35eed977879cfb5a2f82
Author: Henrik Grunell <grunell@chromium.org>
Date: Tue Apr 10 12:23:07 2018

Add delay and glitch stats for Windows audio capture.

Bug:  826664 , 830624
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I08e1ee4237f4e221baca4a0adec7a8bff19c1fa6
Reviewed-on: https://chromium-review.googlesource.com/997740
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549492}
[modify] https://crrev.com/9f40c76c1bbe3b540f2c35eed977879cfb5a2f82/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/9f40c76c1bbe3b540f2c35eed977879cfb5a2f82/media/audio/win/audio_low_latency_input_win.h
[modify] https://crrev.com/9f40c76c1bbe3b540f2c35eed977879cfb5a2f82/tools/metrics/histograms/histograms.xml

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67e56ef3d368fa606cc2eb978f9fad337590ada8

commit 67e56ef3d368fa606cc2eb978f9fad337590ada8
Author: Henrik Grunell <grunell@chromium.org>
Date: Tue Apr 10 14:04:09 2018

Add IncreaseInputAudioBufferSize feature on Windows.

Bug:  826664 , 830624
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I61b09bfbc5c71d0f8573da8d315475b32727f289
Reviewed-on: https://chromium-review.googlesource.com/1002851
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549516}
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/chrome/browser/about_flags.cc
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/media/audio/audio_features.cc
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/media/audio/audio_features.h
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/67e56ef3d368fa606cc2eb978f9fad337590ada8/tools/metrics/histograms/enums.xml

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07684bfaaa50e93b7703e13ee368c1d23ccfc790

commit 07684bfaaa50e93b7703e13ee368c1d23ccfc790
Author: Henrik Grunell <grunell@chromium.org>
Date: Wed Apr 11 12:06:04 2018

Add stats for Windows input audio endpoint buffer size, device period, and stream latency.

Bug:  826664 , 830624
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ice35b73f74d572a69815daeedf7a3971ed6493ff
Reviewed-on: https://chromium-review.googlesource.com/1005256
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549864}
[modify] https://crrev.com/07684bfaaa50e93b7703e13ee368c1d23ccfc790/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/07684bfaaa50e93b7703e13ee368c1d23ccfc790/tools/metrics/histograms/histograms.xml

Hi!
I'd like to give a short feedback on that topic. I've tried the new feature with a client who was experiencing horrible drop outs with a RME audio interface throughout WebRTC sessions. The signal started ok and was destroyed after a certain amount of time. Like 2 to 12 minutes approximately.

This new feature completely solved the issue without adding additional latency to the WebRTC connection. In the RME forum ( https://www.forum.rme-audio.de/viewtopic.php?id=26945 ), someone pointed me to a Windows 10 issue with memory management, causing random high processing times in real time applications. This might be the culprit and the increased audio endpoint buffer seems to be a good workaround.

It would be great if this feature would quickly find it's way in the stable channel, at least as a flag...

Keep up the good work!


tim.proegler, thanks for the input and feedback!
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea924bafc0382da7b9be6080bc989fcdf3518f2b

commit ea924bafc0382da7b9be6080bc989fcdf3518f2b
Author: Henrik Grunell <grunell@chromium.org>
Date: Mon Jun 18 16:11:02 2018

Add field trial testing config for IncreaseInputAudioBufferSize study.

This enables the feature with the same name.

Bug: 830624,  826664 
Change-Id: I156e197bc4a5f0a322747ad13def5ef361d3b173
Reviewed-on: https://chromium-review.googlesource.com/1014083
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568021}
[modify] https://crrev.com/ea924bafc0382da7b9be6080bc989fcdf3518f2b/testing/variations/fieldtrial_testing_config.json

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4dcec19716a309c10846bfc3e166f509856894e6

commit 4dcec19716a309c10846bfc3e166f509856894e6
Author: Henrik Grunell <grunell@chromium.org>
Date: Wed Jun 27 20:44:06 2018

Fix false positives in glitch stats for Windows input audio.

Handle case when a piece of data is split up in several buffers, with same device position.

Bug: 830624,  826664 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ib9daba9277d62af9b8aa39ef2f4a15548c1275da
Reviewed-on: https://chromium-review.googlesource.com/1116782
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570892}
[modify] https://crrev.com/4dcec19716a309c10846bfc3e166f509856894e6/media/audio/win/audio_low_latency_input_win.cc

Status: Started (was: Assigned)
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/83b8d0094804723c275b697ee7e0f974e6688414

commit 83b8d0094804723c275b697ee7e0f974e6688414
Author: Henrik Grunell <grunell@chromium.org>
Date: Mon Aug 27 14:25:16 2018

Fix for Windows input audio glitch stats.

Removes false positives.

Bug: 830624,  826664 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2be987f17cae4200146f565374c63dcb411345c2
Reviewed-on: https://chromium-review.googlesource.com/1188137
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586254}
[modify] https://crrev.com/83b8d0094804723c275b697ee7e0f974e6688414/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/83b8d0094804723c275b697ee7e0f974e6688414/media/audio/win/audio_low_latency_input_win.h

Labels: Target-70
Project Member

Comment 12 by bugdroid1@chromium.org, Nov 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1060c5507dfc39f9739b731fe93542e784dd9dcf

commit 1060c5507dfc39f9739b731fe93542e784dd9dcf
Author: Henrik Grunell <grunell@chromium.org>
Date: Mon Nov 26 18:04:36 2018

Enable IncreaseInputAudioBufferSize experiment by default.

Bug: 830624,  826664 
Change-Id: I28610bc94481ae2c3d843cbba1f2b61c9397cac5
Reviewed-on: https://chromium-review.googlesource.com/c/1350911
Reviewed-by: Oskar Sundbom <ossu@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610885}
[modify] https://crrev.com/1060c5507dfc39f9739b731fe93542e784dd9dcf/media/audio/audio_features.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ac4ddc9e73c8e6aa6d69ff4fa3136c99e59193f

commit 5ac4ddc9e73c8e6aa6d69ff4fa3136c99e59193f
Author: Henrik Grunell <grunell@chromium.org>
Date: Tue Nov 27 13:16:20 2018

Owner and milestone for increase-input-audio-buffer-size flag.

Change-Id: Ib142a395db29f8ed48c35b5f7c8ffc13cbce1fca
Bug: 830624,  826664 
No-Try: True
Reviewed-on: https://chromium-review.googlesource.com/c/1346455
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611086}
[modify] https://crrev.com/5ac4ddc9e73c8e6aa6d69ff4fa3136c99e59193f/chrome/browser/flag-metadata.json

This fix is 100 % enabled in all channels as of Nov 28.
Project Member

Comment 15 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a368ec9afbaa425af319ad15b7f239f5931643a

commit 7a368ec9afbaa425af319ad15b7f239f5931643a
Author: Henrik Grunell <grunell@chromium.org>
Date: Wed Dec 12 12:39:03 2018

Remove feature and experiment code for IncreaseInputAudioBufferSize experiment.

Bug:  826664 , 830624
Change-Id: I55a214693cd2af11467a198ee85b926f822225f9
Reviewed-on: https://chromium-review.googlesource.com/c/1371429
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Olga Sharonova <olka@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Commit-Queue: Henrik Grunell <grunell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615864}
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/chrome/browser/about_flags.cc
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/chrome/browser/flag-metadata.json
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/media/audio/audio_features.cc
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/media/audio/audio_features.h
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/media/audio/win/audio_low_latency_input_win.cc
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/7a368ec9afbaa425af319ad15b7f239f5931643a/tools/metrics/histograms/histograms.xml

Cc: henrika@chromium.org
Status: Fixed (was: Started)
Blocking: 794550
Status: Verified (was: Fixed)

Sign in to add a comment