8 #ifndef META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_24_H
9 #define META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_24_H
60 static inline void convertY_U_V24ToYUV24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
81 static inline void convertY_U_V24LimitedRangeToBGR24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
102 static inline void convertY_U_V24LimitedRangeToRGB24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
124 static inline void convertY_U_V24LimitedRangeToBGRA32(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue = 0xFF,
Worker* worker =
nullptr);
146 static inline void convertY_U_V24LimitedRangeToRGBA32(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue = 0xFF,
Worker* worker =
nullptr);
169 static inline void convertY_U_V24FullRangeToBGRA32FullRangeAndroid(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue = 0xFF,
Worker* worker =
nullptr);
172 inline void FrameConverterY_U_V24::convertY_U_V24ToYUV24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
174 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
176 const int options[4] =
179 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements)
182 const void* sources[3] =
189 FrameConverter::convertArbitraryPixelFormat(sources, (
void**)(&target), width, height, flag, 1u, FrameConverter::mapOneRow_3Plane1Channel_To_1Plane3Channels_8BitPerChannel<0u, 1u, 2u>, options, worker);
192 inline void FrameConverterY_U_V24::convertY_U_V24LimitedRangeToBGR24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
194 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
201 const int options[4 + 12] =
204 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
207 75, 75, 75, 128, -25, 0, 0, -52, 102,
213 const void* sources[3] =
223 inline void FrameConverterY_U_V24::convertY_U_V24LimitedRangeToRGB24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
225 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
232 const int options[4 + 12] =
235 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
238 75, 75, 75, 0, -25, 128, 102, -52, 0,
244 const void* sources[3] =
254 inline void FrameConverterY_U_V24::convertY_U_V24LimitedRangeToBGRA32(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue,
Worker* worker)
256 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
263 const int options[4 + 12 + 1] =
266 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
269 75, 75, 75, 128, -25, 0, 0, -52, 102,
278 const void* sources[3] =
288 inline void FrameConverterY_U_V24::convertY_U_V24LimitedRangeToRGBA32(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue,
Worker* worker)
290 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
297 const int options[4 + 12 + 1] =
300 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
303 75, 75, 75, 0, -25, 128, 102, -52, 0,
312 const void* sources[3] =
322 inline void FrameConverterY_U_V24::convertY_U_V24FullRangeToBGRA32FullRangeAndroid(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue,
Worker* worker)
324 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
326 ocean_assert(width != 0u && height != 0u);
341 const int options[4 + 12 + 1] =
344 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
347 64, 64, 64, 111, -22, 0, 0, -45, 88,
356 const void* sources[3] =
This is the base class for all frame converter classes.
Definition: FrameConverter.h:32
ConversionFlag
Definition of individual conversion flags.
Definition: FrameConverter.h:39
static void convertOneRow_3Planes1Channel_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts one row of an image with e.g., a Y_U_V24 pixel format to one rows of an image with e....
static void convertOneRow_3Planes1Channel_To_1Plane4Channels_8BitPerChannel_Precision6Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts one row of an image with e.g., a Y_U_V24 pixel format to one rows of an image with e....
static void convertArbitraryPixelFormat(const void **sources, void **targets, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int multipleRowsPerIteration, const MultipleRowsConversionFunction multipleRowsConversionFunction, const void *options, Worker *worker)
Converts a frame with arbitrary pixel format (e.g., Y_UV12, Y_VU12, YUYV16, ...) to a frame with arbi...
Definition: FrameConverter.h:3234
This class provides functions to convert frames with Y_U_V24 pixel format.
Definition: FrameConverterY_U_V24.h:42
static void convertY_U_V24FullRangeToBGRA32FullRangeAndroid(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, const uint8_t alphaValue=0xFF, Worker *worker=nullptr)
Converts a full range Y_U_V24 frame to a full range BGRA32 frame into a second image buffer applying ...
Definition: FrameConverterY_U_V24.h:322
static void convertY_U_V24LimitedRangeToBGRA32(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, const uint8_t alphaValue=0xFF, Worker *worker=nullptr)
Converts a Y_U_V24 frame to a 32 bit BGRA frame into a second image buffer.
Definition: FrameConverterY_U_V24.h:254
static void convertY_U_V24LimitedRangeToRGB24(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V24 frame to a 24 bit RGB frame into a second image buffer.
Definition: FrameConverterY_U_V24.h:223
static void convertY_U_V24ToYUV24(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V24 frame to a 24 bit YUV frame into a second image buffer.
Definition: FrameConverterY_U_V24.h:172
static void convertY_U_V24LimitedRangeToBGR24(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V24 frame to a 24 bit BGR frame into a second image buffer.
Definition: FrameConverterY_U_V24.h:192
static void convertY_U_V24LimitedRangeToRGBA32(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, const uint8_t alphaValue=0xFF, Worker *worker=nullptr)
Converts a Y_U_V24 frame to a 32 bit RGBA frame into a second image buffer.
Definition: FrameConverterY_U_V24.h:288
This class implements a worker able to distribute function calls over different threads.
Definition: Worker.h:33
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15