[go: nahoru, domu]

Add HTMLMediaElement.preservesPitch

To adjust the playback rate of audio, we use two algorithms: resampling,
which shifts the audio's pitch, and WSOLA, which doesn't. At rates close
to 1.0, WSOLA can introduce undesirable artifacts for certain types of,
audio content, so we use resampling instead. However, this pitch shift
is noticeable can be less desirable than the WSOLA artifacts to some
users.

This CL implements the preservesPitch flag, which is already present in
Firefox and Safari. The flag allows web developers to choose between
pitch preserving and pitch shifting time stretch algorithms (resampling
and WSOLA in our case). This will allow users to chose the algorithm
that suites their needs at playback rates close to 1.0. It will also
allow users to use resampling at lower or higher playback rates, when
pitch shifting is desirable for aesthetic or performance purposes.

Bug: 1072067, 1096238
Change-Id: Ie0e7ff337da77c902a12259c30c33125104101ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2255179
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782141}
37 files changed
tree: b24920d6e5a26240258b81ddb9978e3aa6f71e4f
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. cloud_print/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. jingle/
  31. media/
  32. mojo/
  33. native_client_sdk/
  34. net/
  35. pdf/
  36. ppapi/
  37. printing/
  38. remoting/
  39. rlz/
  40. sandbox/
  41. services/
  42. skia/
  43. sql/
  44. storage/
  45. styleguide/
  46. testing/
  47. third_party/
  48. tools/
  49. ui/
  50. url/
  51. weblayer/
  52. .clang-format
  53. .clang-tidy
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitattributes
  57. .gitignore
  58. .gn
  59. .vpython
  60. .vpython3
  61. .yapfignore
  62. AUTHORS
  63. BUILD.gn
  64. CODE_OF_CONDUCT.md
  65. codereview.settings
  66. DEPS
  67. ENG_REVIEW_OWNERS
  68. LICENSE
  69. LICENSE.chromium_os
  70. OWNERS
  71. PRESUBMIT.py
  72. PRESUBMIT_test.py
  73. PRESUBMIT_test_mocks.py
  74. README.md
  75. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.