8 #ifndef META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_12_H
9 #define META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_12_H
54 static inline void convertY_U_V12ToY_U_V12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uTarget, uint8_t* vTarget,
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 yTargetPaddingElements,
const unsigned int uTargetPaddingElements,
const unsigned int vTargetPaddingElements,
Worker* worker =
nullptr);
71 static inline void convertY_U_V12ToY8(
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);
92 static inline void convertY_U_V12LimitedRangeToBGR24FullRange(
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);
113 static inline void convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(
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);
135 static inline void convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(
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);
156 static inline void convertY_U_V12LimitedRangeToRGB24FullRange(
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);
177 static inline void convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(
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);
198 static inline void convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(
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);
220 static inline void convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(
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);
237 static inline void convertY_U_V12ToYUV24(
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);
254 static inline void convertY_U_V12ToYVU24(
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);
275 static inline void convertY_U_V12ToY_UV12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uvTarget,
const unsigned int width,
const unsigned int height,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uvTargetPaddingElements,
const unsigned int ySourcePixelStride = 1u,
const unsigned int uSourcePixelStride = 1u,
const unsigned int vSourcePixelStride = 1u,
Worker* worker =
nullptr);
321 static void mapY_U_V12ToY_UV12(
const void** sources,
void** targets,
const unsigned int multipleRowIndex,
const unsigned int width,
const unsigned int height,
const ConversionFlag conversionFlag,
const void* options);
324 inline void FrameConverterY_U_V12::convertY_U_V12ToY_U_V12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uTarget, uint8_t* vTarget,
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 yTargetPaddingElements,
const unsigned int uTargetPaddingElements,
const unsigned int vTargetPaddingElements,
Worker* worker)
326 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr);
327 ocean_assert(yTarget !=
nullptr && uTarget !=
nullptr && vTarget !=
nullptr);
328 ocean_assert(width >= 2u && height >= 2u);
329 ocean_assert(width % 2u == 0u && height % 2u == 0u);
331 const unsigned int width_2 = width / 2u;
332 const unsigned int height_2 = height / 2u;
334 FrameChannels::transformGeneric<uint8_t, 1u>(ySource, yTarget, width, height, flag, ySourcePaddingElements, yTargetPaddingElements, worker);
335 FrameChannels::transformGeneric<uint8_t, 1u>(uSource, uTarget, width_2, height_2, flag, uSourcePaddingElements, uTargetPaddingElements, worker);
336 FrameChannels::transformGeneric<uint8_t, 1u>(vSource, vTarget, width_2, height_2, flag, vSourcePaddingElements, vTargetPaddingElements, worker);
339 inline void FrameConverterY_U_V12::convertY_U_V12ToY8(
const uint8_t* ySource,
const uint8_t* ,
const uint8_t* , uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int ,
const unsigned int ,
const unsigned int targetPaddingElements,
Worker* worker)
341 ocean_assert(ySource !=
nullptr && target !=
nullptr);
342 ocean_assert(width >= 1u && height >= 1u);
344 FrameChannels::transformGeneric<uint8_t, 1u>(ySource, target, width, height, flag, ySourcePaddingElements, targetPaddingElements, worker);
347 inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToBGR24FullRange(
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)
349 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
351 ocean_assert(width >= 2u && width % 2u == 0u);
352 ocean_assert(height >= 2u && height % 2u == 0u);
354 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
371 const int options[4 + 12] =
374 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
377 1192, 1192, 1192, 2066, -400, 0, 0, -833, 1634,
383 const void* sources[3] =
393 inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(
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)
395 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
397 ocean_assert(width >= 2u && width % 2u == 0u);
398 ocean_assert(height >= 2u && height % 2u == 0u);
400 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
417 const int options[4 + 12] =
420 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
423 64, 64, 64, 113, -22, 0, 0, -46, 90,
429 const void* sources[3] =
439 inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(
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)
441 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
443 ocean_assert(width >= 2u && width % 2u == 0u);
444 ocean_assert(height >= 2u && height % 2u == 0u);
446 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
456 const int options[4 + 12 + 1] =
459 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
462 75, 75, 75, 128, -25, 0, 0, -52, 102,
471 const void* sources[3] =
481 inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGB24FullRange(
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)
483 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
485 ocean_assert(width >= 2u && width % 2u == 0u);
486 ocean_assert(height >= 2u && height % 2u == 0u);
488 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
505 const int options[4 + 12] =
508 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
511 1192, 1192, 1192, 0, -400, 2066, 1634, -833, 0,
517 const void* sources[3] =
527 inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(
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)
529 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
531 ocean_assert(width >= 2u && width % 2u == 0u);
532 ocean_assert(height >= 2u && height % 2u == 0u);
534 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
551 const int options[4 + 12] =
554 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
557 75, 75, 75, 0, -25, 128, 102, -52, 0,
563 const void* sources[3] =
573 inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(
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)
575 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
577 ocean_assert(width >= 2u && width % 2u == 0u);
578 ocean_assert(height >= 2u && height % 2u == 0u);
580 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
597 const int options[4 + 12] =
600 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
603 64, 64, 64, 0, -22, 113, 90, -46, 0,
609 const void* sources[3] =
619 inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(
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)
621 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
623 ocean_assert(width >= 2u && width % 2u == 0u);
624 ocean_assert(height >= 2u && height % 2u == 0u);
626 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
638 const int options[4 + 12 + 1] =
641 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
644 75, 75, 75, 0, -25, 128, 102, -52, 0,
653 const void* sources[3] =
664 const int options[4 + 1] =
667 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
673 const void* sources[3] =
685 inline void FrameConverterY_U_V12::convertY_U_V12ToYUV24(
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)
687 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
689 ocean_assert(width >= 2u && width % 2u == 0u);
690 ocean_assert(height >= 2u && height % 2u == 0u);
692 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
697 const unsigned int options[4] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, targetPaddingElements};
699 const void* sources[3] =
706 FrameConverter::convertArbitraryPixelFormat(sources, (
void**)(&target), width, height, flag, 2u, FrameConverter::mapTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel<0u, 1u, 2u>, options, worker);
709 inline void FrameConverterY_U_V12::convertY_U_V12ToYVU24(
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)
711 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
713 ocean_assert(width >= 2u && width % 2u == 0u);
714 ocean_assert(height >= 2u && height % 2u == 0u);
716 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
721 const unsigned int options[4] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, targetPaddingElements};
723 const void* sources[3] =
730 FrameConverter::convertArbitraryPixelFormat(sources, (
void**)(&target), width, height, flag, 2u, FrameConverter::mapTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel<0u, 2u, 1u>, options, worker);
733 inline void FrameConverterY_U_V12::convertY_U_V12ToY_UV12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uvTarget,
const unsigned int width,
const unsigned int height,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uvTargetPaddingElements,
const unsigned int ySourcePixelStride,
const unsigned int uSourcePixelStride,
const unsigned int vSourcePixelStride,
Worker* worker)
735 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr);
736 ocean_assert(yTarget !=
nullptr && uvTarget !=
nullptr);
738 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
740 ocean_assert(
false &&
"Invalid parameters!");
744 const uint32_t options[8] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, yTargetPaddingElements, uvTargetPaddingElements, ySourcePixelStride, uSourcePixelStride, vSourcePixelStride};
746 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
@ CONVERT_NORMAL
Normal conversion, neither flips nor mirrors the image.
Definition: FrameConverter.h:49
static void convertOneRow_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_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_V12 pixel format to one row of an image with e....
static void convertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts two rows of an image with e.g., a Y_U_V12 pixel format to two 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
static void convertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_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 two rows of an image with e.g., a Y_U_V12 pixel format to two rows of an image with e....
This class provides functions to convert frames with Y_U_V12 pixel format.
Definition: FrameConverterY_U_V12.h:32
static void convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(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_V12 frame to a 24 bit RGB frame into a second image buffer (with 6 bit precision).
Definition: FrameConverterY_U_V12.h:527
static void convertY_U_V12LimitedRangeToBGR24FullRange(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_V12 frame to a 24 bit BGR frame into a second image buffer using BT....
Definition: FrameConverterY_U_V12.h:347
static void convertY_U_V12ToYUV24(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_V12 frame to a 24 bit YUV frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:685
static void convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(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_V12 frame to a 24 bit RGB frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:573
static void convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(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_V12 frame to an 32 bit RGBA frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:619
static void convertOneRowY_U_V12ToRGBA32Precision6Bit(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 Y_U_V12 pixel format to one row of an image with RGBA32 pixel forma...
static void convertY_U_V12ToYVU24(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_V12 frame to a 24 bit YVU frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:709
static void convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(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_V12 frame to a 24 bit BGR frame into a second image buffer using BT....
Definition: FrameConverterY_U_V12.h:393
static void convertY_U_V12LimitedRangeToRGB24FullRange(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_V12 frame to a 24 bit RGB frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:481
static void convertY_U_V12ToY_U_V12(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *yTarget, uint8_t *uTarget, uint8_t *vTarget, 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 yTargetPaddingElements, const unsigned int uTargetPaddingElements, const unsigned int vTargetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a Y_U_V12 frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:324
static void mapY_U_V12ToY_UV12(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts two rows of an image with Y_U_V12 pixel format to two rows of an image with a Y_UV12 pixel f...
static void convertY_U_V12ToY_UV12(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *yTarget, uint8_t *uvTarget, const unsigned int width, const unsigned int height, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int yTargetPaddingElements, const unsigned int uvTargetPaddingElements, const unsigned int ySourcePixelStride=1u, const unsigned int uSourcePixelStride=1u, const unsigned int vSourcePixelStride=1u, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a Y_UV12 frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:733
static void convertY_U_V12ToY8(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_V12 frame to an 8 bit gray scale frame into a second image buffer.
Definition: FrameConverterY_U_V12.h:339
static void convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(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_V12 frame to an 32 bit BGRA frame into a second image buffer (with 6 bit precision).
Definition: FrameConverterY_U_V12.h:439
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