- From: Hongchan Choi <hongchan@google.com>
- Date: Wed, 07 Oct 2015 17:43:18 +0000
- To: Paul Adenot <padenot@mozilla.com>, Chris Wilson <cwilso@google.com>
- Cc: Ian Kilpatrick <ikilpatrick@chromium.org>, Alex Russell <slightlyoff@google.com>, "public-audio@w3.org Group" <public-audio@w3.org>, Shane Stephens <shanestephens@google.com>, Ian Vollick <vollick@chromium.org>, Elliott Sprehn <esprehn@google.com>
- Message-ID: <CAGJqXNtDGELQkdxdRiUSE-DU=mVW4_kyL=Q6e6D-huAkRDj3Gw@mail.gmail.com>
How does it interact with other nodes in the AudioContext? Apparently you cannot synchronize 'off-audio-thread' processors with 'in-audio-thread' nodes. (That's exactly what we have in the name of ScriptProcessorNode currently.) This 'Processor' is basically a custom AudioNode, and it is supposed to be a part of the audiograph. Right? If the 'off-audio-thread' Processor node can't interact with the regular audio nodes, why do we need it? Can't we just use OfflineAudioContext for that purpose? On Wed, Oct 7, 2015 at 10:34 AM Paul Adenot <padenot@mozilla.com> wrote: > Yes that's a non-negociable requirement for the Web Audio API, and that's > what Ian's first point and third points allow (if I'm not mistaken). Once > we have this capability, we can create new threads and all. > > Paul. > > On Wed, Oct 7, 2015 at 7:28 PM, Chris Wilson <cwilso@google.com> wrote: > >> I have a strong desire that we spec this with synchronicity in the audio >> thread; that is, the nodes all run in the same thread, and would have to >> (and should be able to) fork other threads if necessary for processing >> purposes. >> >> On Wed, Oct 7, 2015 at 10:24 AM, Paul Adenot <padenot@mozilla.com> wrote: >> >>> Also I was writing a separate draft to spec this, but I'll hold off for >>> now. >>> >>> Paul. >>> >>> On Wed, Oct 7, 2015 at 7:20 PM, Paul Adenot <padenot@mozilla.com> wrote: >>> >>>> On Wed, Oct 7, 2015 at 7:12 PM, Ian Kilpatrick < >>>> ikilpatrick@chromium.org> wrote: >>>> >>>>> Hi all, >>>>> >>>>> Houdini is attempting to add extension points into the rendering >>>>> pipeline of browsers. Because of this we need properties similar to what is >>>>> required for AudioWorker (at the moment we've called it IsolatedWorker, >>>>> fine with changing the name to IsolatedProcessor or something >>>>> <bikeshed-here>). >>>>> >>>>> I'm currently writing a draft of the spec at the moment and should >>>>> appear here (https://drafts.css-houdini.org/isolated-workers/) at the >>>>> end of the week. >>>>> >>>>> It will be based on the strawperson discussed at Houdini Paris F2F. ( >>>>> http://bfgeek.com/css-houdini-drafts/css-script-api/Overview.html). >>>>> >>>>> A few properties that we'd like from this spec: >>>>> - Thread-agnostic - that is, it does not define on which thread this >>>>> is run, may share a thread with something else, i.e. main document context. >>>>> - Subset of APIs - remove network request APIs etc. >>>>> >>>> >>>> I'd rather have this opt-in (you pick the APIs you want) than opt-out >>>> (you remove some APIs). >>>> >>>> >>>> The rest is what we need indeed. >>>> >>>> Paul. >>>> >>>> >>>>> - Hook based - APIs will be reached by registering callbacks on >>>>> GlobalScope, e.g. registerPaint() not event based. >>>>> - Life-cycle - can be created/destroyed at defined points in time. >>>>> Similar to ServiceWorker. >>>>> >>>> >>>>> Additionally we've observed that javascript implementations have a >>>>> high memory overhead per javascript context. We believe we want to limit >>>>> the number created, so similar to the main javascript execution context, >>>>> code shares a single javascript execution context. Details of this is >>>>> probably better discussed one there is a proposal. >>>>> >>>>> Ian >>>>> >>>>> On Wed, Oct 7, 2015 at 9:32 AM, Chris Wilson <cwilso@google.com> >>>>> wrote: >>>>> >>>>>> I'm actually off-the-cuff against trying to boil the ocean of the >>>>>> general pattern. This is pretty specific - the new thing , runs *IN* >>>>>> something that can be a Worker-like process, but they're expected to share >>>>>> the process. The thing you can instantiate lots of (runtime contexts?) run >>>>>> inside that process. >>>>>> >>>>>> I was expecting we would rename AW to CustomAudioProcessor, still >>>>>> define them as running inside a Worker (and define how that Worker-sharing >>>>>> works), and use Worker messaging. That seemed like the shortest path to >>>>>> success. >>>>>> >>>>>> On Wed, Oct 7, 2015 at 9:16 AM, Hongchan Choi <hongchan@google.com> >>>>>> wrote: >>>>>> >>>>>>> Nothing forces workers to be heavy weight, but doesn't it have the >>>>>>> assumption that it runs on its own thread? What we want is to be able to >>>>>>> throw JS code into VM that runs on the audio thread. >>>>>>> >>>>>>> Perhaps we can break that assumption, and propose a new type of >>>>>>> Worker. >>>>>>> >>>>>>> On Wed, Oct 7, 2015 at 9:09 AM Alex Russell <slightlyoff@google.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Why isn't this thing a worker? What forces workers to be >>>>>>>> heavyweight? >>>>>>>> >>>>>>>> Also, would be good to align with the Houdini folks on this as >>>>>>>> they're proposing similar things in the rendering and compositing space. >>>>>>>> >>>>>>>> Regards >>>>>>>> On 7 Oct 2015 7:52 a.m., "Paul Adenot" <padenot@mozilla.com> wrote: >>>>>>>> >>>>>>>>> We need to decide for a new name for something that: >>>>>>>>> >>>>>>>>> - Runs off-main-thread >>>>>>>>> - Has access to a very limited set of APIs >>>>>>>>> - Can be instantiated a lot of times in the same document (much >>>>>>>>> more than Workers can or would) >>>>>>>>> - Is specialized to one domain (audio, video, etc.) >>>>>>>>> - ... ? >>>>>>>>> >>>>>>>>> It is likely that we would be the first group to spec something >>>>>>>>> like this, but it would be used by other groups (layout people, video/image >>>>>>>>> processing folks, etc.). We need something that is not too tied to audio, >>>>>>>>> or can be adapted. I propose "Processor", which conveys the meaning of >>>>>>>>> taking something as input, applying a transformation, and outputting it. >>>>>>>>> I'm very open to suggestions though, this is merely to get the ball rolling. >>>>>>>>> >>>>>>>>> Thoughts ? >>>>>>>>> Paul. >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>> >>> >> >
Received on Wednesday, 7 October 2015 17:43:56 UTC