/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/image/imgIEncoder.idl
*/
#ifndef __gen_imgIEncoder_h__
#define __gen_imgIEncoder_h__
#include "nsISupports.h"
#include "nsIAsyncInputStream.h"
#include "nsIEventTarget.h"
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: imgIEncoder */
#define IMGIENCODER_IID_STR "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
#define IMGIENCODER_IID \
{0xa1b2c3d4, 0xe5f6, 0x4a7b, \
{ 0x8c, 0x9d, 0x0e, 0x1f, 0x2a, 0x3b, 0x4c, 0x5d }}
class NS_NO_VTABLE imgIEncoder : public nsIAsyncInputStream {
public:
NS_INLINE_DECL_STATIC_IID(IMGIENCODER_IID)
/* Used by ToJSValue to check which scriptable interface is implemented. */
using ScriptableInterfaceType = imgIEncoder;
enum {
INPUT_FORMAT_RGB = 0U,
INPUT_FORMAT_RGBA = 1U,
INPUT_FORMAT_HOSTARGB = 2U,
INPUT_FORMAT_R10G10B10A2 = 3U,
INPUT_FORMAT_RGBA_U10 = 4U,
INPUT_FORMAT_RGBA_U12 = 5U,
INPUT_FORMAT_RGBA_U16 = 6U,
INPUT_FORMAT_RGBA_F16 = 7U
};
enum CICPColourPrimaries : uint8_t {
CP_BT709 = 1,
CP_UNSPECIFIED = 2,
CP_BT470M = 4,
CP_BT470BG = 5,
CP_BT601 = 6,
CP_SMPTE240 = 7,
CP_GENERIC_FILM = 8,
CP_BT2020 = 9,
CP_XYZ = 10,
CP_SMPTE431 = 11,
CP_SMPTE432 = 12,
CP_EBU3213 = 22,
};
enum CICPTransferCharacteristics : uint8_t {
TC_BT709 = 1,
TC_UNSPECIFIED = 2,
TC_BT470M = 4,
TC_BT470BG = 5,
TC_BT601 = 6,
TC_SMPTE240 = 7,
TC_LINEAR = 8,
TC_LOG_100 = 9,
TC_LOG_100_SQRT10 = 10,
TC_IEC61966 = 11,
TC_BT_1361 = 12,
TC_SRGB = 13,
TC_BT2020_10BIT = 14,
TC_BT2020_12BIT = 15,
TC_SMPTE2084 = 16,
TC_SMPTE428 = 17,
TC_HLG = 18,
};
enum CICPMatrixCoefficients : uint8_t {
MC_IDENTITY = 0,
MC_BT709 = 1,
MC_UNSPECIFIED = 2,
MC_FCC = 4,
MC_BT470BG = 5,
MC_BT601 = 6,
MC_SMPTE240 = 7,
MC_YCGCO = 8,
MC_BT2020_NCL = 9,
MC_BT2020_CL = 10,
MC_SMPTE2085 = 11,
MC_CHROMAT_NCL = 12,
MC_CHROMAT_CL = 13,
MC_ICTCP = 14,
};
/* void setColorSpaceInfo (in imgIEncoder_CICPColourPrimaries colourPrimaries, in imgIEncoder_CICPTransferCharacteristics transferCharacteristics, in imgIEncoder_CICPMatrixCoefficients matrixCoefficients, in boolean fullRange); */
NS_IMETHOD SetColorSpaceInfo(imgIEncoder::CICPColourPrimaries colourPrimaries, imgIEncoder::CICPTransferCharacteristics transferCharacteristics, imgIEncoder::CICPMatrixCoefficients matrixCoefficients, bool fullRange) = 0;
/* void initFromData ([array, size_is (length), const] in uint8_t data, in unsigned long length, in uint32_t width, in uint32_t height, in uint32_t stride, in uint32_t inputFormat, in AString outputOptions, in ACString randomizationKey); */
NS_IMETHOD InitFromData(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t inputFormat, const nsAString& outputOptions, const nsACString& randomizationKey) = 0;
/* void startImageEncode (in uint32_t width, in uint32_t height, in uint32_t inputFormat, in AString outputOptions); */
NS_IMETHOD StartImageEncode(uint32_t width, uint32_t height, uint32_t inputFormat, const nsAString& outputOptions) = 0;
/* void addImageFrame ([array, size_is (length), const] in uint8_t data, in unsigned long length, in uint32_t width, in uint32_t height, in uint32_t stride, in uint32_t frameFormat, in AString frameOptions); */
NS_IMETHOD AddImageFrame(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t frameFormat, const nsAString& frameOptions) = 0;
/* void endImageEncode (); */
NS_IMETHOD EndImageEncode(void) = 0;
/* [noscript] unsigned long getImageBufferUsed (); */
NS_IMETHOD GetImageBufferUsed(uint32_t *_retval) = 0;
/* [noscript] charPtr getImageBuffer (); */
NS_IMETHOD GetImageBuffer(char * * _retval) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMGIENCODER \
NS_IMETHOD SetColorSpaceInfo(imgIEncoder::CICPColourPrimaries colourPrimaries, imgIEncoder::CICPTransferCharacteristics transferCharacteristics, imgIEncoder::CICPMatrixCoefficients matrixCoefficients, bool fullRange) override; \
NS_IMETHOD InitFromData(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t inputFormat, const nsAString& outputOptions, const nsACString& randomizationKey) override; \
NS_IMETHOD StartImageEncode(uint32_t width, uint32_t height, uint32_t inputFormat, const nsAString& outputOptions) override; \
NS_IMETHOD AddImageFrame(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t frameFormat, const nsAString& frameOptions) override; \
NS_IMETHOD EndImageEncode(void) override; \
NS_IMETHOD GetImageBufferUsed(uint32_t *_retval) override; \
NS_IMETHOD GetImageBuffer(char * * _retval) override;
/* Use this macro when declaring the members of this interface when the
class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_IMGIENCODER \
nsresult SetColorSpaceInfo(imgIEncoder::CICPColourPrimaries colourPrimaries, imgIEncoder::CICPTransferCharacteristics transferCharacteristics, imgIEncoder::CICPMatrixCoefficients matrixCoefficients, bool fullRange); \
nsresult InitFromData(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t inputFormat, const nsAString& outputOptions, const nsACString& randomizationKey); \
nsresult StartImageEncode(uint32_t width, uint32_t height, uint32_t inputFormat, const nsAString& outputOptions); \
nsresult AddImageFrame(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t frameFormat, const nsAString& frameOptions); \
nsresult EndImageEncode(void); \
nsresult GetImageBufferUsed(uint32_t *_retval); \
nsresult GetImageBuffer(char * * _retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMGIENCODER(_to) \
NS_IMETHOD SetColorSpaceInfo(imgIEncoder::CICPColourPrimaries colourPrimaries, imgIEncoder::CICPTransferCharacteristics transferCharacteristics, imgIEncoder::CICPMatrixCoefficients matrixCoefficients, bool fullRange) override { return _to SetColorSpaceInfo(colourPrimaries, transferCharacteristics, matrixCoefficients, fullRange); } \
NS_IMETHOD InitFromData(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t inputFormat, const nsAString& outputOptions, const nsACString& randomizationKey) override { return _to InitFromData(data, length, width, height, stride, inputFormat, outputOptions, randomizationKey); } \
NS_IMETHOD StartImageEncode(uint32_t width, uint32_t height, uint32_t inputFormat, const nsAString& outputOptions) override { return _to StartImageEncode(width, height, inputFormat, outputOptions); } \
NS_IMETHOD AddImageFrame(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t frameFormat, const nsAString& frameOptions) override { return _to AddImageFrame(data, length, width, height, stride, frameFormat, frameOptions); } \
NS_IMETHOD EndImageEncode(void) override { return _to EndImageEncode(); } \
NS_IMETHOD GetImageBufferUsed(uint32_t *_retval) override { return _to GetImageBufferUsed(_retval); } \
NS_IMETHOD GetImageBuffer(char * * _retval) override { return _to GetImageBuffer(_retval); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMGIENCODER(_to) \
NS_IMETHOD SetColorSpaceInfo(imgIEncoder::CICPColourPrimaries colourPrimaries, imgIEncoder::CICPTransferCharacteristics transferCharacteristics, imgIEncoder::CICPMatrixCoefficients matrixCoefficients, bool fullRange) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetColorSpaceInfo(colourPrimaries, transferCharacteristics, matrixCoefficients, fullRange); } \
NS_IMETHOD InitFromData(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t inputFormat, const nsAString& outputOptions, const nsACString& randomizationKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->InitFromData(data, length, width, height, stride, inputFormat, outputOptions, randomizationKey); } \
NS_IMETHOD StartImageEncode(uint32_t width, uint32_t height, uint32_t inputFormat, const nsAString& outputOptions) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StartImageEncode(width, height, inputFormat, outputOptions); } \
NS_IMETHOD AddImageFrame(const uint8_t *data, uint32_t length, uint32_t width, uint32_t height, uint32_t stride, uint32_t frameFormat, const nsAString& frameOptions) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddImageFrame(data, length, width, height, stride, frameFormat, frameOptions); } \
NS_IMETHOD EndImageEncode(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EndImageEncode(); } \
NS_IMETHOD GetImageBufferUsed(uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageBufferUsed(_retval); } \
NS_IMETHOD GetImageBuffer(char * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageBuffer(_retval); }
#endif /* __gen_imgIEncoder_h__ */