14#ifndef UTILS_COLOURSPACE_CPU_H_
15#define UTILS_COLOURSPACE_CPU_H_
23#include "libswscale/swscale.h"
55 AVPixelFormat out_format, uint8_t out_bytes) const;
65 int RgbToYuv(uint32_t height, uint32_t width, uint8_t *rgb, uint8_t *yuv) const final;
75 int RgbToMono8(uint32_t height, uint32_t width, uint8_t *rgb, uint8_t *mono8) const final;
85 int RgbToMono16(uint32_t height, uint32_t width, uint8_t *rgb, uint8_t *mono16) const final;
95 int RgbaToYuv(uint32_t width, uint32_t height, uint8_t *rgba, uint8_t *yuv) const final;
105 int RgbaToRgb(uint32_t width, uint32_t height, uint8_t *rgba, uint8_t *rgb) const final;
116 int RgbaToBgra(uint32_t width, uint32_t height, uint8_t *rgba, uint8_t *bgra) const final;
126 int RgbToBgra(uint32_t width, uint32_t height, uint8_t *rgb, uint8_t *bgra) const final;
136 int YuvToBgra(uint32_t height, uint32_t width, uint8_t *yuv, uint8_t *bgra) const final;
146 int Mono8ToBgra(uint32_t width, uint32_t height, uint8_t *mono8, uint8_t *bgra) const final;
156 int Mono16ToBgra(uint32_t width, uint32_t height, uint8_t *mono16, uint8_t *bgra) const final;
166 int Nv12ToBgra(uint32_t height, uint32_t width, uint8_t *nv12, uint8_t *bgra) const;
177 int Nv12ToRgb(uint32_t height, uint32_t width, uint8_t *nv12, uint8_t *rgb) const;
187 int RgbToRgba(uint32_t width, uint32_t height, uint8_t *rgb, uint8_t *rgba) const final;
197 int Yuv422ToRgba(uint32_t height, uint32_t width, uint8_t *yuv422, uint8_t *rgba) const final;
207 int Yuv420ToRgba(uint32_t height, uint32_t width, uint8_t *yuv420, uint8_t *rgba) const final;
217 int Mono8ToRgba(uint32_t width, uint32_t height, uint8_t *mono8, uint8_t *rgba) const final;
228 int Mono8ToRgb(uint32_t width, uint32_t height, uint8_t *mono8, uint8_t *rgb) const final;
238 int Mono16ToRgba(uint32_t width, uint32_t height, uint8_t *mono16, uint8_t *rgba) const final;
248 int Mono16ToRgb(uint32_t width, uint32_t height, uint8_t *mono16, uint8_t *rgb) const final;
259 int YuvToArgb(uint32_t height, uint32_t width, uint8_t *yuv, uint8_t *argb) const;
269 int YuvToRgb(uint32_t height, uint32_t width, uint8_t *yuv, uint8_t *rgb) const final;
279 int Yuv420pToRgb(uint32_t height, uint32_t width, uint8_t *yuv, uint8_t *rgb) const final;
291 int ScaleToSizeRgb(uint32_t source_height, uint32_t source_width, uint8_t *source_rgb_buffer, uint32_t target_height,
292 uint32_t target_width, uint8_t *target_rgb_buffer) const final;
305 int ScaleToSizeRgba(uint32_t source_height, uint32_t source_width, uint8_t *source_rgb_buffer, uint32_t target_height,
306 uint32_t target_width, uint8_t *target_rgba_buffer) const final;
319 int ScaleToSizeBgra(uint32_t source_height, uint32_t source_width, uint8_t *source_rgb_buffer, uint32_t target_height,
320 uint32_t target_width, uint8_t *target_bgra_buffer) const;
Functions to convert between different colour spaces.
RTP streaming video types.