| // Copyright 2020 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/dalecurtis/image-decoder-api/blob/master/explainer.md |
| |
| // An ImageDecoder decodes images. |
| [ |
| Exposed=(Window,DedicatedWorker), |
| RuntimeEnabled=WebCodecs, |
| ImplementedAs=ImageDecoderExternal, |
| ActiveScriptWrappable |
| ] interface ImageDecoder { |
| [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsImageDecoder] constructor(ImageDecoderInit init); |
| |
| // Returns true if ImageDecoder supports decoding of the given mime type. |
| [CallWith=ScriptState] |
| static Promise<boolean> isTypeSupported(DOMString type); |
| |
| // Decodes a frame using the given |options| or the first frame if no options |
| // are provided. If data is still being received, the promise won't be |
| // resolved or rejected until the given |options.frameIndex| is available, |
| // all data is received, or a decoding error occurs. |
| Promise<ImageDecodeResult> decode(optional ImageDecodeOptions options); |
| |
| // Aborts all pending metadata and decode promises. |
| void reset(); |
| |
| // Immediately shut down the decoder and free its resources. All pending |
| // decode requests are aborted. |
| // |
| // Not recoverable: make a new ImageDecoder if needed. |
| void close(); |
| |
| // The mime type for the decoded image. This reflects the value provided |
| // during construction. |
| readonly attribute DOMString type; |
| |
| // True if all available data has been received by the decoder. Always true |
| // when an ArrayBuffer is provided at construction. False for ReadableStream |
| // usage |
| readonly attribute boolean complete; |
| |
| // Property-based promise for signaling that all data has been received. |
| [CallWith=ScriptState] readonly attribute Promise<void> completed; |
| |
| // List of tracks available in this image. |
| // |
| // When decoding a ReadableStream the array will be empty until enough data to |
| // decode metadata has been received. |
| [SameObject] readonly attribute ImageTrackList tracks; |
| }; |