Commit graph

63 commits

Author SHA1 Message Date
bors-servo
b20333a324
Auto merge of #23215 - ferjm:decoder.channels, r=jdm
Keep a map between channel position and channel index for decoded audio

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are WPTs for these changes.

This should help fixing #22842 (along with https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/183). I couldn't reproduce it locally, so I cannot tell for sure.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23215)
<!-- Reviewable:end -->
2019-04-18 16:10:39 -04:00
Fernando Jiménez Moreno
292d1705a3 Keep a map between channel position and channel index for decoded audio 2019-04-17 12:38:21 +02:00
Josh Matthews
eebd831ea5 Move media backend initialization to process startup. 2019-04-15 16:46:25 -04:00
Aron Zwaan
782b58587a Rename Promise::new to Promise::new_in_current_compartment 2019-04-03 20:45:30 +02:00
Fernando Jiménez Moreno
bc74dc0e85 Use servo-media-auto and call ServoMedia::init where required 2019-03-25 09:51:53 +01:00
Fernando Jiménez Moreno
36825b82f3 Shutdown player when HTMLMediaElement is dropped 2019-03-25 09:29:30 +01:00
Mauricio Collares
ff0cf9e93a Implement DOM APIs for ChannelSplitterNode 2019-01-10 11:58:10 -05:00
Manish Goregaokar
611dc4bc70 Remove now-unnecessary must_root and allow(unrooted_must_root) annotations 2019-01-04 15:05:07 -08:00
Simon Sapin
be69f9c3e6 Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00
Jan Andre Ikenmeyer
a1a14459c1
Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
Agustin Chiappe Berrini
75eb94afca Unify the task source and task canceller API
I moved away from the `Window` struct all the logic to handle task
sources, into a new struct called `TaskManager`. In a happy world, I'd
be able to just have there two functions, of the types:

```rust
fn task_source<T: TaskSource>(&self, name: TaskSourceName) -> Box<T>
fn task_source_with_canceller<T: TaskSource>(&self, name: TaskSourceName)
  -> (Box<T>, TaskSourceCanceller)
```

And not so much duplicated code. However, because TaskSource can't be a
trait object (because it has generic type parameters), that's not
possible. Instead, I decided to reduce duplicated logic through macros.

For reasons[1], I have to pass both the name of the function with
canceller and the name of the function without, as I'm not able to
concatenate them in the macro itself. I could probably use
`concat_idents` to create both types already defined and reduce the
amount of arguments by one, but that macro is nightly only. At the same
time, not being able to declare macros inside `impl` forces me to pass
`self` as an argument.

All this makes this solution more verbose than it would be ideally. It
does reduce duplication, but it doesn't reduce the size of the file.

[1](https://github.com/rust-lang/rust/issues/29599)
2018-11-14 06:36:44 -05:00
Bastien Orivel
36c4208f22 Update uuid 2018-11-09 21:04:31 +01:00
Pyfisch
9e92eb205a Reorder imports 2018-11-06 22:35:07 +01:00
Pyfisch
cb07debcb6 Format remaining files 2018-11-06 22:30:31 +01:00
Simon Sapin
76e59a46d3 Sort use statements 2018-11-06 15:26:02 +01:00
Simon Sapin
45f7199eee cargo fix --edition 2018-11-06 15:26:02 +01:00
Fernando Jiménez Moreno
0db628028a Update servo-media: handle decoder errors and use safer/nicer player API 2018-10-08 16:12:04 +02:00
bors-servo
ac331c6663
Auto merge of #21750 - Manishearth:biquad, r=ferjm
Implement BiquadFilterNode

A bunch of tests still fail but some of it may be a timing issue, looking at it the tests are *at least* affected by https://github.com/servo/servo/issues/21659 (changing how they work to avoid problems from that does not make them pass but does change the exact value of the error), so I feel like I should fix that first before investigating these.

r? @ferjm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21750)
<!-- Reviewable:end -->
2018-09-20 11:01:53 -04:00
Manish Goregaokar
bb61487d8f Add createBiquadFilter() 2018-09-20 20:23:29 +05:30
Manish Goregaokar
1be41686d3 Implement BiquadFilterNode 2018-09-20 20:23:29 +05:30
chansuke
c37a345dc9 Format script component 2018-09-19 17:40:47 -04:00
Manish Goregaokar
9dfc57878e Add createAnalyser 2018-09-18 18:18:36 +05:30
Fernando Jiménez Moreno
f423ede07f Add support for multichannel decoded audio 2018-09-11 10:38:56 +02:00
Manish Goregaokar
af5b1c4011 Add createChannelMerger() 2018-09-04 11:23:00 +05:30
Manish Goregaokar
28c21421ca Throw on out-of-bounds channelCount in AudioNodes 2018-09-03 20:31:52 +05:30
Manish Goregaokar
5dd830344b Handle channel count constraints in panner constructor 2018-08-24 12:51:37 -07:00
Manish Goregaokar
062c1d6071 Add BaseAudioContext.createPanner() 2018-08-24 12:22:19 -07:00
Manish Goregaokar
43ea9e0e4a cleanup: Remove Rc from BaseAudioContext 2018-08-24 12:22:19 -07:00
Manish Goregaokar
9228ca3a02 Add AudioListener DOM interface 2018-08-24 08:33:22 -07:00
Fernando Jiménez Moreno
6aaf5806b1 OfflineAudioContext 2018-07-30 14:23:48 +02:00
Fernando Jiménez Moreno
1649b6a528 Fix build errors after rebase 2018-07-30 14:23:45 +02:00
Fernando Jiménez Moreno
21cb160be3 test-tidy fixes 2018-07-30 14:21:48 +02:00
Fernando Jiménez Moreno
f0a691e474 Update servo-media after crate split up. Allows building for Android 2018-07-30 14:21:48 +02:00
Fernando Jiménez Moreno
b68c791b8d Remove unimplemented PeriodicWave stub 2018-07-30 14:21:48 +02:00
Fernando Jiménez Moreno
ebcbe2ff7d Mark DecodeResolver as must_root 2018-07-30 14:21:47 +02:00
Fernando Jiménez Moreno
758ae94aa1 AudioNode channel related properties getter and setter fixes 2018-07-30 14:21:47 +02:00
Fernando Jiménez Moreno
b26a3bd31b rustfmt 2018-07-30 14:21:46 +02:00
Manish Goregaokar
723f1b0582 Fix construction of destination node (#6)
* Fix comparison of audiocontexts

* Fix comparison

* Fix destination node construction
2018-07-30 14:21:45 +02:00
Manish Goregaokar
8f9a081ff0 Fix Trusted usage in audio decoder to queue tasks (#3) 2018-07-30 14:21:44 +02:00
Fernando Jiménez Moreno
911b8ebd79 Remove unsafe code to create empty AudioNodeOptions 2018-07-30 14:21:44 +02:00
Fernando Jiménez Moreno
b87fc17b4b decodeAudioData 2018-07-30 14:21:44 +02:00
Fernando Jiménez Moreno
356d7fd7a6 createBufferSource and buffer setter on buffer source node 2018-07-30 14:21:43 +02:00
Fernando Jiménez Moreno
25a74a75ea Create AudioBuffer from BaseAudioContext 2018-07-30 14:21:42 +02:00
Fernando Jiménez Moreno
0e92efbb79 BaseAudioContext.CreateGain() 2018-07-30 14:21:42 +02:00
Fernando Jiménez Moreno
97aa142993 Queue statechange event 2018-07-30 14:21:41 +02:00
Fernando Jiménez Moreno
7380f69f77 Initial AudioParam bindings 2018-07-30 14:21:41 +02:00
Manish Goregaokar
885addfaae Fix inheritance of DOM structs (#1)
The incorrect inheritance ends up overlapping EventTarget fields with
other fields causing some DOMRefCells to start out broken and panic.
2018-07-30 14:21:40 +02:00
Fernando Jiménez Moreno
07c0450e29 Get destination node engine from context 2018-07-30 14:21:40 +02:00
Fernando Jiménez Moreno
1c2d872e33 Workaround resume issues 2018-07-30 14:21:40 +02:00
Fernando Jiménez Moreno
9eebcb31c5 AudioNode connection 2018-07-30 14:21:40 +02:00