Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebAudio API #21158

Merged
merged 87 commits into from Jul 31, 2018
Merged
Show file tree
Hide file tree
Changes from 83 commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
7ee42e4
Initial WebAudio API stubs
ferjm Nov 7, 2017
e9c4066
Add servo-media
ferjm Mar 26, 2018
d836511
Test OscillatorNode with servo_media
ferjm Mar 26, 2018
53d4933
Update to use latest servo-media API
ferjm May 23, 2018
4602951
Update to use latest servo-media
ferjm May 31, 2018
ba9dfb0
Trace and malloc_size_of workarounds for servo_media types
ferjm Jun 21, 2018
db52d1f
Audio context options
ferjm Jun 22, 2018
7e04031
Expose BaseAudioContext.state
ferjm Jun 22, 2018
98741dd
AudioContext construction
ferjm Jun 22, 2018
03dede3
Get audio context current time from audio graph
ferjm Jun 22, 2018
547e6e8
Use audio graph processing state
ferjm Jun 22, 2018
01f3951
AudioContext.resume() implementation
ferjm Jun 22, 2018
9f15bdd
AudioContext.suspend() implementation
ferjm Jun 25, 2018
aed5725
Properly implement audio context state changes
ferjm Jun 26, 2018
9eebcb3
AudioNode connection
ferjm Jun 27, 2018
cdd7995
AudioScheduledSourceNode start and stop
ferjm Jun 27, 2018
1c2d872
Workaround resume issues
ferjm Jun 28, 2018
07c0450
Get destination node engine from context
ferjm Jun 28, 2018
885addf
Fix inheritance of DOM structs (#1)
Manishearth Jun 29, 2018
7380f69
Initial AudioParam bindings
ferjm Jun 29, 2018
97aa142
Queue statechange event
ferjm Jun 29, 2018
986c2f7
Expose more AudioParam methods
ferjm Jun 29, 2018
02c39eb
GainNode
ferjm Jun 29, 2018
0e92efb
BaseAudioContext.CreateGain()
ferjm Jun 29, 2018
93990d4
OscillatorNode detune param
ferjm Jun 29, 2018
3fe38a9
AudioBuffer stub
ferjm Jun 30, 2018
0cb053a
AudioBufferSourceNode stubs
ferjm Jul 1, 2018
cb16c59
AudioBuffer.GetChannelData and internal storage
ferjm Jul 3, 2018
25a74a7
Create AudioBuffer from BaseAudioContext
ferjm Jul 4, 2018
356d7fd
createBufferSource and buffer setter on buffer source node
ferjm Jul 5, 2018
23f7a73
Copy AudioBufferSourceNode buffer
ferjm Jul 6, 2018
f3bc183
Add disconnect methods; cleanup DOM stuff (#2)
Manishearth Jul 7, 2018
4cadc33
AudioBuffer CopyFromChannel and CopyToChannel
ferjm Jul 7, 2018
e0e1141
Undo trace impl for Mutex<T>
ferjm Jul 7, 2018
b87fc17
decodeAudioData
ferjm Jul 9, 2018
911b8eb
Remove unsafe code to create empty AudioNodeOptions
ferjm Jul 9, 2018
34ba143
Fix regex duplicated versions
ferjm Jul 9, 2018
8f9a081
Fix Trusted usage in audio decoder to queue tasks (#3)
Manishearth Jul 10, 2018
f0d0424
Use new params impl (#4)
Manishearth Jul 10, 2018
6ac4b4b
Fix context comparison (#5)
Manishearth Jul 10, 2018
723f1b0
Fix construction of destination node (#6)
Manishearth Jul 10, 2018
ff1d5a5
Fix Cargo.lock rebase issues
ferjm Jul 10, 2018
9dda87a
Enable WPTs
ferjm Jul 10, 2018
d4fcd8f
Remove recursion limit
Manishearth Jul 10, 2018
02aaf55
Pass global to AudioBuffer::new_inherited
Manishearth Jul 10, 2018
b7730da
Add spec link to AudioBuffer::Constructor
Manishearth Jul 10, 2018
8172b4f
Remove unnecessary comment
Manishearth Jul 10, 2018
c5abc3e
Use git url for servo-media dependency
ferjm Jul 11, 2018
3fc9eca
Make restore_js_channel_data unsafe
ferjm Jul 11, 2018
b26a3bd
rustfmt
ferjm Jul 11, 2018
abccf68
Clarify that servo-media deals with duplicated connections
ferjm Jul 11, 2018
758ae94
AudioNode channel related properties getter and setter fixes
ferjm Jul 11, 2018
3dde730
AudioParam automation rate setter
ferjm Jul 11, 2018
8a6ea00
Reference issue to support the AudioScheduledSourceNode.ended event
ferjm Jul 11, 2018
ebcbe2f
Mark DecodeResolver as must_root
ferjm Jul 11, 2018
b68c791
Remove unimplemented PeriodicWave stub
ferjm Jul 11, 2018
f0a691e
Update servo-media after crate split up. Allows building for Android
ferjm Jul 12, 2018
21cb160
test-tidy fixes
ferjm Jul 12, 2018
f7e79d2
Add deps to travis
Manishearth Jul 12, 2018
562e58a
AudioParam value getter
ferjm Jul 13, 2018
284aeb2
Try gstreamer-rs travis config
ferjm Jul 13, 2018
4059e16
Remove unneeded libxml2 and gtk deps and change gst binaries url
ferjm Jul 13, 2018
1649b6a
Fix build errors after rebase
ferjm Jul 13, 2018
477907e
Do not copy initial data during AudioBuffer construction and use JS_D…
ferjm Jul 13, 2018
fe18200
Update media dep, fix duplicate syn dependency
Manishearth Jul 13, 2018
c617ca0
Remove commented code
ferjm Jul 16, 2018
5966405
Root JS channels during AudioBuffer construction
ferjm Jul 18, 2018
c9ff1b9
Enter compartment during AudioBuffer creation
ferjm Jul 19, 2018
acb0360
Fire AudioScheduledSourceNode.onended when playback stops
ferjm Jul 19, 2018
841fedd
Bump pkg-config version
ferjm Jul 19, 2018
00014b3
Add AudioParam connection support
Manishearth Jul 19, 2018
572c04c
Add deps to appveyor
ferjm Jul 20, 2018
75dd050
Fix rebase mistake
ferjm Jul 20, 2018
e034159
Set env vars to let the build know where GStreamer libs are
ferjm Jul 23, 2018
6aaf580
OfflineAudioContext
ferjm Jul 27, 2018
f8d61a3
Update lockfile
Manishearth Jul 27, 2018
a123747
Update WPTs expectations
ferjm Jul 27, 2018
cf86020
Fix interfaces wpt
ferjm Jul 27, 2018
2dba414
Update manifest
ferjm Jul 30, 2018
ce828c0
Get rooting out of AudioBuffer::new_inherited
ferjm Jul 30, 2018
19e4c62
Update manifest
ferjm Jul 30, 2018
3b8cb83
Make OfflineAudioContextOptions spec compliant
ferjm Jul 30, 2018
b738d9a
Throw if AudioBufferSourceNode.Start params are negative
ferjm Jul 30, 2018
a1fe48d
Use JS_GetArrayBufferViewBuffer with JS_DetachArrayBuffer
Manishearth Jul 30, 2018
2c19814
48000 -> 44100
Manishearth Jul 30, 2018
1bb34b1
Bump servo-media
Manishearth Jul 30, 2018
2daf9ff
Update wpt expectations
Manishearth Jul 31, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions .travis.yml
Expand Up @@ -17,6 +17,13 @@ matrix:
- sudo add-apt-repository 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.9 main' -y
- sudo apt-get update -q
- sudo apt-get install clang-3.9 llvm-3.9 llvm-3.9-runtime -y
- curl -L https://github.com/ferjm/gstreamer-1.14.1-ubuntu-trusty/raw/master/gstreamer.tar.gz | tar xz
- sed -i "s;prefix=/root/gstreamer;prefix=$PWD/gstreamer;g" $PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig/*.pc
- export PKG_CONFIG_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig
- export GST_PLUGIN_SYSTEM_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0
- export GST_PLUGIN_SCANNER=$PWD/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
- export PATH=$PATH:$PWD/gstreamer/bin
- export LD_LIBRARY_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
- export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
- curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
- source ~/.profile
Expand Down Expand Up @@ -52,6 +59,7 @@ matrix:
- ccache
- libdbus-glib-1-dev
- libedit-dev
- libglib2.0-dev

branches:
only:
Expand Down
446 changes: 429 additions & 17 deletions Cargo.lock

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion README.md
Expand Up @@ -83,7 +83,8 @@ sudo apt install git curl autoconf libx11-dev \
gperf g++ build-essential cmake virtualenv python-pip \
libssl1.0-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \
libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev \
libharfbuzz-dev ccache clang
libharfbuzz-dev ccache clang \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
```

If you using a version prior to **Ubuntu 17.04** or **Debian Sid**, replace `libssl1.0-dev` with `libssl-dev`.
Expand Down
8 changes: 8 additions & 0 deletions appveyor.yml
Expand Up @@ -43,9 +43,17 @@ cache:
- .ccache

install:
- choco install pkgconfiglite
- appveyor-retry appveyor DownloadFile https://gstreamer.freedesktop.org/data/pkg/windows/1.14.1/gstreamer-1.0-devel-x86_64-1.14.1.msi
- appveyor-retry appveyor DownloadFile https://gstreamer.freedesktop.org/data/pkg/windows/1.14.1/gstreamer-1.0-x86_64-1.14.1.msi
- msiexec /i gstreamer-1.0-devel-x86_64-1.14.1.msi /quiet /qn /norestart /log install-devel.log
- msiexec /i gstreamer-1.0-x86_64-1.14.1.msi /quiet /qn /norestart /log install.log
- appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
- rustup-init.exe -y --default-host x86_64-pc-windows-msvc --default-toolchain none
- set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
- set PKG_CONFIG_PATH=%PKG_CONFIG_PATH%;C:\gstreamer\1.0\x86_64\lib\pkgconfig
- set LIB=C:\gstreamer\1.0\x86_64\lib
- set LIBPATH=C:\gstreamer\1.0\x86_64\lib
- rustup -V
- mach rustc --version
- mach cargo --version
Expand Down
2 changes: 2 additions & 0 deletions components/atoms/static_atoms.txt
Expand Up @@ -12,13 +12,15 @@ checkbox
click
close
color
complete
controllerchange
cursive
date
datetime-local
dir
email
emptied
ended
error
fantasy
fetch
Expand Down
2 changes: 1 addition & 1 deletion components/fallible/Cargo.toml
Expand Up @@ -10,7 +10,7 @@ name = "fallible"
path = "lib.rs"

[dependencies]
smallvec = "0.6"
smallvec = "0.6.2"
hashglobe = { path = "../hashglobe" }

# This crate effectively does nothing except if the `known_system_malloc`
Expand Down
2 changes: 1 addition & 1 deletion components/gfx/Cargo.toml
Expand Up @@ -36,7 +36,7 @@ serde = "1.0"
servo_arc = {path = "../servo_arc"}
servo_atoms = {path = "../atoms"}
servo_url = {path = "../url"}
smallvec = "0.6"
smallvec = "0.6.2"
style = {path = "../style"}
time = "0.1.12"
unicode-bidi = {version = "0.3", features = ["with_serde"]}
Expand Down
2 changes: 1 addition & 1 deletion components/layout/Cargo.toml
Expand Up @@ -42,7 +42,7 @@ servo_geometry = {path = "../geometry"}
serde_json = "1.0"
servo_config = {path = "../config"}
servo_url = {path = "../url"}
smallvec = "0.6"
smallvec = "0.6.2"
style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits"}
unicode-bidi = {version = "0.3", features = ["with_serde"]}
Expand Down
3 changes: 2 additions & 1 deletion components/script/Cargo.toml
Expand Up @@ -87,9 +87,10 @@ servo_arc = {path = "../servo_arc"}
servo_atoms = {path = "../atoms"}
servo_config = {path = "../config"}
servo_geometry = {path = "../geometry" }
servo-media = {git = "https://github.com/servo/media"}
servo_rand = {path = "../rand"}
servo_url = {path = "../url"}
smallvec = "0.6"
smallvec = "0.6.2"
style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits"}
swapper = "0.1"
Expand Down