1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef Y_CB_CR_UTILS_H_
7 #define Y_CB_CR_UTILS_H_
9 #include "mozilla/gfx/Types.h"
10 #include "ImageContainer.h"
16 GetYCbCrToRGBDestFormatAndSize(const layers::PlanarYCbCrData
& aData
,
17 SurfaceFormat
& aSuggestedFormat
,
18 IntSize
& aSuggestedSize
);
21 ConvertYCbCrToRGB(const layers::PlanarYCbCrData
& aData
,
22 const SurfaceFormat
& aDestFormat
,
23 const IntSize
& aDestSize
,
24 unsigned char* aDestBuffer
,
27 using PremultFunc
= int (*)(const uint8_t* src_argb
, int src_stride_argb
,
28 uint8_t* dst_argb
, int dst_stride_argb
, int width
,
31 void ConvertYCbCrAToARGB(const layers::PlanarYCbCrData
& aYCbCr
,
32 const layers::PlanarAlphaData
& aAlpha
,
33 const SurfaceFormat
& aDestFormat
,
34 const IntSize
& aDestSize
,
35 unsigned char* aDestBuffer
,
36 int32_t aStride
, PremultFunc premultiplyAlphaOp
);
39 ConvertI420AlphaToARGB(const uint8_t* aSrcY
,
43 int aSrcStrideYA
, int aSrcStrideUV
,
44 uint8_t* aDstARGB
, int aDstStrideARGB
,
45 int aWidth
, int aHeight
);
47 } // namespace mozilla
49 #endif /* Y_CB_CR_UTILS_H_ */