36 if (
c->dstBpc <= 14) {
37 if (
c->opts.src_range) {
48 if (
c->dstBpc <= 14) {
49 if (
c->opts.src_range) {
50 c->lumConvertRange = lumRangeFromJpeg_lasx;
51 c->chrConvertRange = chrRangeFromJpeg_lasx;
53 c->lumConvertRange = lumRangeToJpeg_lasx;
54 c->chrConvertRange = chrRangeToJpeg_lasx;
67 &
c->yuv2nv12cX, &
c->yuv2packed1,
68 &
c->yuv2packed2, &
c->yuv2packedX, &
c->yuv2anyX);
71 if (
c->dstBpc <= 14) {
84 &
c->yuv2nv12cX, &
c->yuv2packed1,
85 &
c->yuv2packed2, &
c->yuv2packedX, &
c->yuv2anyX);
88 if (
c->dstBpc <= 14) {
116 switch (
c->opts.dst_format) {
118 return yuv420_rgb24_lasx;
120 return yuv420_bgr24_lasx;
122 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
125 return yuv420_rgba32_lasx;
127 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
130 return yuv420_argb32_lasx;
132 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
135 return yuv420_bgra32_lasx;
137 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
140 return yuv420_abgr32_lasx;
147 switch (
c->opts.dst_format) {
153 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
158 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
163 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
168 if (CONFIG_SWSCALE_ALPHA &&
isALPHA(
c->opts.src_format)) {
static atomic_int cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
av_cold void ff_sws_init_output_lasx(SwsInternal *c, yuv2planar1_fn *yuv2plane1, yuv2planarX_fn *yuv2planeX, yuv2interleavedX_fn *yuv2nv12cX, yuv2packed1_fn *yuv2packed1, yuv2packed2_fn *yuv2packed2, yuv2packedX_fn *yuv2packedX, yuv2anyX_fn *yuv2anyX)
av_cold void ff_sws_init_output_lsx(SwsInternal *c, yuv2planar1_fn *yuv2plane1, yuv2planarX_fn *yuv2planeX, yuv2interleavedX_fn *yuv2nv12cX, yuv2packed1_fn *yuv2packed1, yuv2packed2_fn *yuv2packed2, yuv2packedX_fn *yuv2packedX, yuv2anyX_fn *yuv2anyX)
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
void(* interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride)
void ff_interleave_bytes_lasx(const uint8_t *src1, const uint8_t *src2, uint8_t *dest, int width, int height, int src1Stride, int src2Stride, int dstStride)
av_cold void rgb2rgb_init_loongarch(void)
av_cold SwsFunc ff_yuv2rgb_init_loongarch(SwsInternal *c)
av_cold void ff_sws_init_swscale_loongarch(SwsInternal *c)
av_cold void ff_sws_init_range_convert_loongarch(SwsInternal *c)
int(* SwsFunc)(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
static av_always_inline int isALPHA(enum AVPixelFormat pix_fmt)
void ff_hscale_16_to_19_lasx(SwsInternal *c, int16_t *_dst, int dstW, const uint8_t *_src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void ff_hscale_8_to_15_lasx(SwsInternal *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void ff_hscale_16_to_15_lasx(SwsInternal *c, int16_t *dst, int dstW, const uint8_t *_src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void ff_hscale_8_to_19_lasx(SwsInternal *c, int16_t *_dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void ff_hscale_8_to_15_lsx(SwsInternal *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void ff_hscale_8_to_19_lsx(SwsInternal *c, int16_t *_dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
int yuv420_argb32_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
void lumRangeToJpeg_lsx(int16_t *dst, int width)
int yuv420_rgba32_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
int yuv420_bgra32_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
int yuv420_rgb24_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
void ff_hscale_16_to_15_lsx(SwsInternal *c, int16_t *_dst, int dstW, const uint8_t *_src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void chrRangeFromJpeg_lsx(int16_t *dstU, int16_t *dstV, int width)
void ff_hscale_16_to_19_lsx(SwsInternal *c, int16_t *_dst, int dstW, const uint8_t *_src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void chrRangeToJpeg_lsx(int16_t *dstU, int16_t *dstV, int width)
int yuv420_bgr24_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
int yuv420_abgr32_lsx(SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
void lumRangeFromJpeg_lsx(int16_t *dst, int width)