// Copyright 2020 The Chromium Authors
// 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
typedef ([AllowShared] ArrayBuffer or [AllowShared] ArrayBufferView or ReadableStream) ImageBufferSource;
dictionary ImageDecoderInit {
required ImageBufferSource data;
// Mime type for |data|. Providing the wrong mime type will lead to a decoding
// failure.
required USVString type;
// Options used for setting up the decoder. See ImageBitmapOptions.
ColorSpaceConversion colorSpaceConversion = "default";
// Some image decoders support reduced resolution decoding. The desired size
// can optionally be provided to trigger this behavior.
[EnforceRange] unsigned long desiredWidth;
[EnforceRange] unsigned long desiredHeight;
// For multi-track images, indicates that the animation is preferred over any
// still images that are present. When unspecified the decoder will use hints
// from the data stream to make a decision.
boolean preferAnimation;
// Allows transferring ArrayBuffer based `data` to ImageDecoder w/o a copy.
sequence<ArrayBuffer> transfer = [];
};