| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // https://github.com/WICG/web-codecs |
| |
| [ |
| Exposed=(Window,DedicatedWorker), |
| RuntimeEnabled=WebCodecs, |
| ActiveScriptWrappable |
| ] interface AudioEncoder { |
| [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsAudioEncoder] |
| constructor(AudioEncoderInit init); |
| |
| // The number of pending encode requests. This does not include requests |
| // that have been sent to the underlying codec. |
| readonly attribute long encodeQueueSize; |
| |
| // Enqueues a control message to configure the audio encoder for encoding |
| // audio frames as described by config. |
| [RaisesException] |
| void configure(AudioEncoderConfig config); |
| |
| // Enqueues a request to encode a frame. |
| // Results of the encoding (EncodedAudioChunk) are returned via |
| // the output callback provided in configure(). |
| [RaisesException] |
| void encode(AudioFrame frame); |
| |
| |
| // Enqueues a request to produce outputs for all already encoded frames. |
| // Resolved after emitting outputs for all previously encoded frames. |
| [RaisesException] |
| Promise<void> flush(); |
| |
| // Discard all pending work and current encoder configuration. |
| // |
| // Output for earlier encoding requests will not be emitted. |
| // The next encoded frame will be a keyframe. |
| // Requires configure() to be call to set configuration once again. |
| [RaisesException] |
| void reset(); |
| |
| // Enqueues a request to shut down the encoder and free its resources. |
| [RaisesException] |
| void close(); |
| |
| // Which state the encoder is in, indicating which methods can be called. |
| readonly attribute CodecState state; |
| }; |