forked from FFmpeg/FFmpeg
swscale/internal: constify SwsFunc
I want to move away from having random leaf processing functions mutate plane pointers, and while we're at it, we might as well make the strides and tables const as well. Sponsored-by: Sovereign Tech Fund Signed-off-by: Niklas Haas <git@haasn.dev>
This commit is contained in:
parent
286bdc9cdc
commit
c1a0e65763
14 changed files with 220 additions and 208 deletions
|
@ -37,9 +37,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
int y_offset, \
|
int y_offset, \
|
||||||
int y_coeff); \
|
int y_coeff); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
@ -64,9 +65,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
uint8_t *dst1, int linesize1, \
|
uint8_t *dst1, int linesize1, \
|
||||||
uint8_t *dst2, int linesize2); \
|
uint8_t *dst2, int linesize2); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
@ -100,9 +102,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
int y_offset, \
|
int y_offset, \
|
||||||
int y_coeff); \
|
int y_coeff); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
@ -124,9 +127,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
uint8_t *dst1, int linesize1, \
|
uint8_t *dst1, int linesize1, \
|
||||||
uint8_t *dst2, int linesize2); \
|
uint8_t *dst2, int linesize2); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
@ -144,9 +148,9 @@ void ff_nv24_to_yuv420p_chroma_neon(uint8_t *dst1, int dstStride1,
|
||||||
const uint8_t *src, int srcStride,
|
const uint8_t *src, int srcStride,
|
||||||
int w, int h);
|
int w, int h);
|
||||||
|
|
||||||
static int nv24_to_yuv420p_neon_wrapper(SwsContext *c, const uint8_t *src[],
|
static int nv24_to_yuv420p_neon_wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
const uint8_t *dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst1 = dst[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *dst1 = dst[1] + dstStride[1] * srcSliceY / 2;
|
||||||
uint8_t *dst2 = dst[2] + dstStride[2] * srcSliceY / 2;
|
uint8_t *dst2 = dst[2] + dstStride[2] * srcSliceY / 2;
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
|
|
||||||
#include "swscale_internal.h"
|
#include "swscale_internal.h"
|
||||||
|
|
||||||
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *src[],
|
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(c->srcFormat);
|
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(c->srcFormat);
|
||||||
int nb_components = desc->nb_components;
|
int nb_components = desc->nb_components;
|
||||||
|
|
|
@ -34,9 +34,9 @@ extern void rgbx_to_nv12_neon_16(const uint8_t *src, uint8_t *y, uint8_t *chroma
|
||||||
int y_stride, int c_stride, int src_stride,
|
int y_stride, int c_stride, int src_stride,
|
||||||
int32_t coeff_tbl[9]);
|
int32_t coeff_tbl[9]);
|
||||||
|
|
||||||
static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *src[],
|
static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[]) {
|
uint8_t *const dst[], const int dstStride[]) {
|
||||||
|
|
||||||
rgbx_to_nv12_neon_32(src[0] + srcSliceY * srcStride[0],
|
rgbx_to_nv12_neon_32(src[0] + srcSliceY * srcStride[0],
|
||||||
dst[0] + srcSliceY * dstStride[0],
|
dst[0] + srcSliceY * dstStride[0],
|
||||||
|
@ -48,9 +48,9 @@ static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *src[
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rgbx_to_nv12_neon_16_wrapper(SwsContext *context, const uint8_t *src[],
|
static int rgbx_to_nv12_neon_16_wrapper(SwsContext *context, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[]) {
|
uint8_t *const dst[], int dstStride[]) {
|
||||||
|
|
||||||
rgbx_to_nv12_neon_16(src[0] + srcSliceY * srcStride[0],
|
rgbx_to_nv12_neon_16(src[0] + srcSliceY * srcStride[0],
|
||||||
dst[0] + srcSliceY * dstStride[0],
|
dst[0] + srcSliceY * dstStride[0],
|
||||||
|
@ -78,9 +78,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
int y_offset, \
|
int y_offset, \
|
||||||
int y_coeff); \
|
int y_coeff); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
@ -113,9 +114,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
|
||||||
int y_offset, \
|
int y_offset, \
|
||||||
int y_coeff); \
|
int y_coeff); \
|
||||||
\
|
\
|
||||||
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
|
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, \
|
||||||
uint8_t *dst[], int dstStride[]) { \
|
int srcSliceH, uint8_t *const dst[], \
|
||||||
|
const int dstStride[]) { \
|
||||||
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
|
||||||
\
|
\
|
||||||
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
|
||||||
|
|
|
@ -253,7 +253,7 @@ static void BAYER_RENAME(rgb48_interpolate)(const uint8_t *src, int src_stride,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BAYER_RENAME(yv12_copy)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, int32_t *rgb2yuv)
|
static void BAYER_RENAME(yv12_copy)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv)
|
||||||
{
|
{
|
||||||
uint8_t dst[12];
|
uint8_t dst[12];
|
||||||
const int dst_stride = 6;
|
const int dst_stride = 6;
|
||||||
|
@ -268,7 +268,7 @@ static void BAYER_RENAME(yv12_copy)(const uint8_t *src, int src_stride, uint8_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BAYER_RENAME(yv12_interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, int32_t *rgb2yuv)
|
static void BAYER_RENAME(yv12_interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv)
|
||||||
{
|
{
|
||||||
uint8_t dst[12];
|
uint8_t dst[12];
|
||||||
const int dst_stride = 6;
|
const int dst_stride = 6;
|
||||||
|
|
|
@ -160,9 +160,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
|
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
|
||||||
int func_name(SwsContext *c, const uint8_t *src[], \
|
int func_name(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, int srcSliceH, \
|
||||||
uint8_t *dst[], int dstStride[]) \
|
uint8_t *const dst[], const int dstStride[]) \
|
||||||
{ \
|
{ \
|
||||||
int x, y, h_size, vshift, res; \
|
int x, y, h_size, vshift, res; \
|
||||||
__m256i m_y1, m_y2, m_u, m_v; \
|
__m256i m_y1, m_y2, m_u, m_v; \
|
||||||
|
@ -188,9 +188,9 @@
|
||||||
for(x = 0; x < h_size; x++) { \
|
for(x = 0; x < h_size; x++) { \
|
||||||
|
|
||||||
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
|
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
|
||||||
int func_name(SwsContext *c, const uint8_t *src[], \
|
int func_name(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, int srcSliceH, \
|
||||||
uint8_t *dst[], int dstStride[]) \
|
uint8_t *const dst[], const int dstStride[]) \
|
||||||
{ \
|
{ \
|
||||||
int x, y, h_size, vshift, res; \
|
int x, y, h_size, vshift, res; \
|
||||||
__m256i m_y1, m_y2, m_u, m_v; \
|
__m256i m_y1, m_y2, m_u, m_v; \
|
||||||
|
|
|
@ -113,9 +113,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
|
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
|
||||||
int func_name(SwsContext *c, const uint8_t *src[], \
|
int func_name(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, int srcSliceH, \
|
||||||
uint8_t *dst[], int dstStride[]) \
|
uint8_t *const dst[], const int dstStride[]) \
|
||||||
{ \
|
{ \
|
||||||
int x, y, h_size, vshift, res; \
|
int x, y, h_size, vshift, res; \
|
||||||
__m128i m_y1, m_y2, m_u, m_v; \
|
__m128i m_y1, m_y2, m_u, m_v; \
|
||||||
|
@ -142,9 +142,9 @@
|
||||||
for(x = 0; x < h_size; x++) { \
|
for(x = 0; x < h_size; x++) { \
|
||||||
|
|
||||||
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
|
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
|
||||||
int func_name(SwsContext *c, const uint8_t *src[], \
|
int func_name(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, int srcSliceH, \
|
||||||
uint8_t *dst[], int dstStride[]) \
|
uint8_t *const dst[], const int dstStride[]) \
|
||||||
{ \
|
{ \
|
||||||
int x, y, h_size, vshift, res; \
|
int x, y, h_size, vshift, res; \
|
||||||
__m128i m_y1, m_y2, m_u, m_v; \
|
__m128i m_y1, m_y2, m_u, m_v; \
|
||||||
|
|
|
@ -295,9 +295,9 @@ static inline vector unsigned char vec_xl(signed long long offset, const ubyte *
|
||||||
#endif /* !HAVE_VSX */
|
#endif /* !HAVE_VSX */
|
||||||
|
|
||||||
#define DEFCSP420_CVT(name, out_pixels) \
|
#define DEFCSP420_CVT(name, out_pixels) \
|
||||||
static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
|
static int altivec_ ## name(SwsContext *c, const unsigned char *const *in, \
|
||||||
int *instrides, int srcSliceY, int srcSliceH, \
|
const int *instrides, int srcSliceY, int srcSliceH, \
|
||||||
unsigned char **oplanes, int *outstrides) \
|
unsigned char *const *oplanes, const int *outstrides) \
|
||||||
{ \
|
{ \
|
||||||
int w = c->srcW; \
|
int w = c->srcW; \
|
||||||
int h = srcSliceH; \
|
int h = srcSliceH; \
|
||||||
|
@ -471,9 +471,9 @@ static const vector unsigned char
|
||||||
/*
|
/*
|
||||||
* this is so I can play live CCIR raw video
|
* this is so I can play live CCIR raw video
|
||||||
*/
|
*/
|
||||||
static int altivec_uyvy_rgb32(SwsContext *c, const unsigned char **in,
|
static int altivec_uyvy_rgb32(SwsContext *c, const unsigned char *const *in,
|
||||||
int *instrides, int srcSliceY, int srcSliceH,
|
const int *instrides, int srcSliceY, int srcSliceH,
|
||||||
unsigned char **oplanes, int *outstrides)
|
unsigned char *const *oplanes, const int *outstrides)
|
||||||
{
|
{
|
||||||
int w = c->srcW;
|
int w = c->srcW;
|
||||||
int h = srcSliceH;
|
int h = srcSliceH;
|
||||||
|
|
|
@ -82,7 +82,7 @@ void (*ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst,
|
||||||
uint8_t *udst, uint8_t *vdst,
|
uint8_t *udst, uint8_t *vdst,
|
||||||
int width, int height,
|
int width, int height,
|
||||||
int lumStride, int chromStride, int srcStride,
|
int lumStride, int chromStride, int srcStride,
|
||||||
int32_t *rgb2yuv);
|
const int32_t *rgb2yuv);
|
||||||
void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
|
void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
|
||||||
int srcStride, int dstStride);
|
int srcStride, int dstStride);
|
||||||
void (*interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst,
|
void (*interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst,
|
||||||
|
|
|
@ -78,7 +78,7 @@ void rgb12to15(const uint8_t *src, uint8_t *dst, int src_size);
|
||||||
|
|
||||||
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
|
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
|
||||||
uint8_t *vdst, int width, int height, int lumStride,
|
uint8_t *vdst, int width, int height, int lumStride,
|
||||||
int chromStride, int srcStride, int32_t *rgb2yuv);
|
int chromStride, int srcStride, const int32_t *rgb2yuv);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Height should be a multiple of 2 and width should be a multiple of 16.
|
* Height should be a multiple of 2 and width should be a multiple of 16.
|
||||||
|
@ -125,7 +125,7 @@ extern void (*yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uin
|
||||||
extern void (*ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
extern void (*ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
||||||
int width, int height,
|
int width, int height,
|
||||||
int lumStride, int chromStride, int srcStride,
|
int lumStride, int chromStride, int srcStride,
|
||||||
int32_t *rgb2yuv);
|
const int32_t *rgb2yuv);
|
||||||
extern void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
|
extern void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
|
||||||
int srcStride, int dstStride);
|
int srcStride, int dstStride);
|
||||||
|
|
||||||
|
|
|
@ -645,7 +645,7 @@ static inline void uyvytoyv12_c(const uint8_t *src, uint8_t *ydst,
|
||||||
*/
|
*/
|
||||||
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
|
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
|
||||||
uint8_t *vdst, int width, int height, int lumStride,
|
uint8_t *vdst, int width, int height, int lumStride,
|
||||||
int chromStride, int srcStride, int32_t *rgb2yuv)
|
int chromStride, int srcStride, const int32_t *rgb2yuv)
|
||||||
{
|
{
|
||||||
int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX];
|
int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX];
|
||||||
int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX];
|
int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX];
|
||||||
|
|
|
@ -96,9 +96,9 @@ typedef struct RangeList {
|
||||||
|
|
||||||
int ff_range_add(RangeList *r, unsigned int start, unsigned int len);
|
int ff_range_add(RangeList *r, unsigned int start, unsigned int len);
|
||||||
|
|
||||||
typedef int (*SwsFunc)(struct SwsContext *context, const uint8_t *src[],
|
typedef int (*SwsFunc)(struct SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[]);
|
uint8_t *const dst[], const int dstStride[]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write one line of horizontally scaled data to planar output
|
* Write one line of horizontally scaled data to planar output
|
||||||
|
@ -1005,9 +1005,9 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
|
||||||
int dstWidth, const uint8_t *src1,
|
int dstWidth, const uint8_t *src1,
|
||||||
const uint8_t *src2, int srcW, int xInc);
|
const uint8_t *src2, int srcW, int xInc);
|
||||||
|
|
||||||
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *src[],
|
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[]);
|
uint8_t *const dst[], const int dstStride[]);
|
||||||
|
|
||||||
void ff_copyPlane(const uint8_t *src, int srcStride,
|
void ff_copyPlane(const uint8_t *src, int srcStride,
|
||||||
int srcSliceY, int srcSliceH, int width,
|
int srcSliceY, int srcSliceH, int width,
|
||||||
|
|
|
@ -139,10 +139,10 @@ void ff_copyPlane(const uint8_t *src, int srcStride,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarToNv12Wrapper(SwsContext *c, const uint8_t *src[],
|
static int planarToNv12Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam[],
|
int srcSliceH, uint8_t *const dstParam[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
||||||
|
|
||||||
|
@ -159,10 +159,10 @@ static int planarToNv12Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nv12ToPlanarWrapper(SwsContext *c, const uint8_t *src[],
|
static int nv12ToPlanarWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam[],
|
int srcSliceH, uint8_t *const dstParam[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
||||||
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
|
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
|
||||||
|
@ -180,10 +180,10 @@ static int nv12ToPlanarWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarToNv24Wrapper(SwsContext *c, const uint8_t *src[],
|
static int planarToNv24Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam[],
|
int srcSliceH, uint8_t *const dstParam[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY;
|
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY;
|
||||||
|
|
||||||
|
@ -200,10 +200,10 @@ static int planarToNv24Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nv24ToPlanarWrapper(SwsContext *c, const uint8_t *src[],
|
static int nv24ToPlanarWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam[],
|
int srcSliceH, uint8_t *const dstParam[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY;
|
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY;
|
||||||
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY;
|
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY;
|
||||||
|
@ -243,9 +243,9 @@ static void nv24_to_yuv420p_chroma(uint8_t *dst1, int dstStride1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nv24ToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
static int nv24ToYuv420Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
||||||
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
|
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
|
||||||
|
@ -263,10 +263,10 @@ static int nv24ToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarToP01xWrapper(SwsContext *c, const uint8_t *src8[],
|
static int planarToP01xWrapper(SwsContext *c, const uint8_t *const src8[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam8[],
|
int srcSliceH, uint8_t *const dstParam8[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->srcFormat);
|
const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->srcFormat);
|
||||||
const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->dstFormat);
|
const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->dstFormat);
|
||||||
|
@ -323,11 +323,12 @@ static int planarToP01xWrapper(SwsContext *c, const uint8_t *src8[],
|
||||||
#define output_pixel(p, v) (*p) = (v)
|
#define output_pixel(p, v) (*p) = (v)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int planar8ToP01xleWrapper(SwsContext *c, const uint8_t *src[],
|
static int planar8ToP01xleWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dstParam8[],
|
int srcSliceH, uint8_t *const dstParam8[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
|
const uint8_t *src0 = src[0], *src1 = src[1], *src2 = src[2];
|
||||||
uint16_t *dstY = (uint16_t*)(dstParam8[0] + dstStride[0] * srcSliceY);
|
uint16_t *dstY = (uint16_t*)(dstParam8[0] + dstStride[0] * srcSliceY);
|
||||||
uint16_t *dstUV = (uint16_t*)(dstParam8[1] + dstStride[1] * srcSliceY / 2);
|
uint16_t *dstUV = (uint16_t*)(dstParam8[1] + dstStride[1] * srcSliceY / 2);
|
||||||
int x, y, t;
|
int x, y, t;
|
||||||
|
@ -336,26 +337,26 @@ static int planar8ToP01xleWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
|
|
||||||
for (y = 0; y < srcSliceH; y++) {
|
for (y = 0; y < srcSliceH; y++) {
|
||||||
uint16_t *tdstY = dstY;
|
uint16_t *tdstY = dstY;
|
||||||
const uint8_t *tsrc0 = src[0];
|
const uint8_t *tsrc0 = src0;
|
||||||
for (x = c->srcW; x > 0; x--) {
|
for (x = c->srcW; x > 0; x--) {
|
||||||
t = *tsrc0++;
|
t = *tsrc0++;
|
||||||
output_pixel(tdstY++, t | (t << 8));
|
output_pixel(tdstY++, t | (t << 8));
|
||||||
}
|
}
|
||||||
src[0] += srcStride[0];
|
src0 += srcStride[0];
|
||||||
dstY += dstStride[0] / 2;
|
dstY += dstStride[0] / 2;
|
||||||
|
|
||||||
if (!(y & 1)) {
|
if (!(y & 1)) {
|
||||||
uint16_t *tdstUV = dstUV;
|
uint16_t *tdstUV = dstUV;
|
||||||
const uint8_t *tsrc1 = src[1];
|
const uint8_t *tsrc1 = src1;
|
||||||
const uint8_t *tsrc2 = src[2];
|
const uint8_t *tsrc2 = src2;
|
||||||
for (x = c->srcW / 2; x > 0; x--) {
|
for (x = c->srcW / 2; x > 0; x--) {
|
||||||
t = *tsrc1++;
|
t = *tsrc1++;
|
||||||
output_pixel(tdstUV++, t | (t << 8));
|
output_pixel(tdstUV++, t | (t << 8));
|
||||||
t = *tsrc2++;
|
t = *tsrc2++;
|
||||||
output_pixel(tdstUV++, t | (t << 8));
|
output_pixel(tdstUV++, t | (t << 8));
|
||||||
}
|
}
|
||||||
src[1] += srcStride[1];
|
src1 += srcStride[1];
|
||||||
src[2] += srcStride[2];
|
src2 += srcStride[2];
|
||||||
dstUV += dstStride[1] / 2;
|
dstUV += dstStride[1] / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,9 +366,9 @@ static int planar8ToP01xleWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
|
|
||||||
#undef output_pixel
|
#undef output_pixel
|
||||||
|
|
||||||
static int planarToYuy2Wrapper(SwsContext *c, const uint8_t *src[],
|
static int planarToYuy2Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
|
|
||||||
|
@ -377,9 +378,9 @@ static int planarToYuy2Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarToUyvyWrapper(SwsContext *c, const uint8_t *src[],
|
static int planarToUyvyWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
|
|
||||||
|
@ -389,9 +390,9 @@ static int planarToUyvyWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int yuv422pToYuy2Wrapper(SwsContext *c, const uint8_t *src[],
|
static int yuv422pToYuy2Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
|
|
||||||
|
@ -401,9 +402,9 @@ static int yuv422pToYuy2Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int yuv422pToUyvyWrapper(SwsContext *c, const uint8_t *src[],
|
static int yuv422pToUyvyWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
|
|
||||||
|
@ -413,9 +414,9 @@ static int yuv422pToUyvyWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int yuyvToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
static int yuyvToYuv420Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
||||||
|
@ -430,9 +431,9 @@ static int yuyvToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int yuyvToYuv422Wrapper(SwsContext *c, const uint8_t *src[],
|
static int yuyvToYuv422Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
|
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
|
||||||
|
@ -444,9 +445,9 @@ static int yuyvToYuv422Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uyvyToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
static int uyvyToYuv420Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
|
||||||
|
@ -461,9 +462,9 @@ static int uyvyToYuv420Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uyvyToYuv422Wrapper(SwsContext *c, const uint8_t *src[],
|
static int uyvyToYuv422Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dstParam[], int dstStride[])
|
uint8_t *const dstParam[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
|
||||||
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
|
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
|
||||||
|
@ -506,9 +507,9 @@ static void gray8aToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bswap_16bpc(SwsContext *c, const uint8_t *src[],
|
static int bswap_16bpc(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int i, j, p;
|
int i, j, p;
|
||||||
|
|
||||||
|
@ -533,9 +534,9 @@ static int bswap_16bpc(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bswap_32bpc(SwsContext *c, const uint8_t *src[],
|
static int bswap_32bpc(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int i, j, p;
|
int i, j, p;
|
||||||
|
|
||||||
|
@ -561,9 +562,9 @@ static int bswap_32bpc(SwsContext *c, const uint8_t *src[],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int palToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
|
static int palToRgbWrapper(SwsContext *c, const uint8_t *const src[], const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH, uint8_t *dst[],
|
int srcSliceY, int srcSliceH, uint8_t *const dst[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
const enum AVPixelFormat srcFormat = c->srcFormat;
|
const enum AVPixelFormat srcFormat = c->srcFormat;
|
||||||
const enum AVPixelFormat dstFormat = c->dstFormat;
|
const enum AVPixelFormat dstFormat = c->dstFormat;
|
||||||
|
@ -608,7 +609,7 @@ static int palToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
|
||||||
}
|
}
|
||||||
|
|
||||||
static void packed16togbra16(const uint8_t *src, int srcStride,
|
static void packed16togbra16(const uint8_t *src, int srcStride,
|
||||||
uint16_t *dst[], int dstStride[], int srcSliceH,
|
uint16_t *dst[], const int dstStride[], int srcSliceH,
|
||||||
int src_alpha, int swap, int shift, int width)
|
int src_alpha, int swap, int shift, int width)
|
||||||
{
|
{
|
||||||
int x, h, i;
|
int x, h, i;
|
||||||
|
@ -741,9 +742,9 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
|
static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint16_t *dst2013[] = { (uint16_t *)dst[2], (uint16_t *)dst[0], (uint16_t *)dst[1], (uint16_t *)dst[3] };
|
uint16_t *dst2013[] = { (uint16_t *)dst[2], (uint16_t *)dst[0], (uint16_t *)dst[1], (uint16_t *)dst[3] };
|
||||||
uint16_t *dst1023[] = { (uint16_t *)dst[1], (uint16_t *)dst[0], (uint16_t *)dst[2], (uint16_t *)dst[3] };
|
uint16_t *dst1023[] = { (uint16_t *)dst[1], (uint16_t *)dst[0], (uint16_t *)dst[2], (uint16_t *)dst[3] };
|
||||||
|
@ -801,7 +802,7 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gbr16ptopacked16(const uint16_t *src[], int srcStride[],
|
static void gbr16ptopacked16(const uint16_t *src[], const int srcStride[],
|
||||||
uint8_t *dst, int dstStride, int srcSliceH,
|
uint8_t *dst, int dstStride, int srcSliceH,
|
||||||
int alpha, int swap, int bpp, int width)
|
int alpha, int swap, int bpp, int width)
|
||||||
{
|
{
|
||||||
|
@ -920,9 +921,9 @@ static void gbr16ptopacked16(const uint16_t *src[], int srcStride[],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarRgb16ToRgb16Wrapper(SwsContext *c, const uint8_t *src[],
|
static int planarRgb16ToRgb16Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
const uint16_t *src102[] = { (uint16_t *)src[1], (uint16_t *)src[0], (uint16_t *)src[2], (uint16_t *)src[3] };
|
const uint16_t *src102[] = { (uint16_t *)src[1], (uint16_t *)src[0], (uint16_t *)src[2], (uint16_t *)src[3] };
|
||||||
const uint16_t *src201[] = { (uint16_t *)src[2], (uint16_t *)src[0], (uint16_t *)src[1], (uint16_t *)src[3] };
|
const uint16_t *src201[] = { (uint16_t *)src[2], (uint16_t *)src[0], (uint16_t *)src[1], (uint16_t *)src[3] };
|
||||||
|
@ -980,7 +981,7 @@ static int planarRgb16ToRgb16Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gbr24ptopacked24(const uint8_t *src[], int srcStride[],
|
static void gbr24ptopacked24(const uint8_t *src[], const int srcStride[],
|
||||||
uint8_t *dst, int dstStride, int srcSliceH,
|
uint8_t *dst, int dstStride, int srcSliceH,
|
||||||
int width)
|
int width)
|
||||||
{
|
{
|
||||||
|
@ -998,7 +999,7 @@ static void gbr24ptopacked24(const uint8_t *src[], int srcStride[],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gbr24ptopacked32(const uint8_t *src[], int srcStride[],
|
static void gbr24ptopacked32(const uint8_t *src[], const int srcStride[],
|
||||||
uint8_t *dst, int dstStride, int srcSliceH,
|
uint8_t *dst, int dstStride, int srcSliceH,
|
||||||
int alpha_first, int width)
|
int alpha_first, int width)
|
||||||
{
|
{
|
||||||
|
@ -1027,7 +1028,7 @@ static void gbr24ptopacked32(const uint8_t *src[], int srcStride[],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gbraptopacked32(const uint8_t *src[], int srcStride[],
|
static void gbraptopacked32(const uint8_t *src[], const int srcStride[],
|
||||||
uint8_t *dst, int dstStride, int srcSliceH,
|
uint8_t *dst, int dstStride, int srcSliceH,
|
||||||
int alpha_first, int width)
|
int alpha_first, int width)
|
||||||
{
|
{
|
||||||
|
@ -1056,9 +1057,9 @@ static void gbraptopacked32(const uint8_t *src[], int srcStride[],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarRgbaToRgbWrapper(SwsContext *c, const uint8_t *src[],
|
static int planarRgbaToRgbWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int alpha_first = 0;
|
int alpha_first = 0;
|
||||||
const uint8_t *src102[] = { src[1], src[0], src[2], src[3] };
|
const uint8_t *src102[] = { src[1], src[0], src[2], src[3] };
|
||||||
|
@ -1112,9 +1113,9 @@ static int planarRgbaToRgbWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *src[],
|
static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int alpha_first = 0;
|
int alpha_first = 0;
|
||||||
const uint8_t *src102[] = { src[1], src[0], src[2] };
|
const uint8_t *src102[] = { src[1], src[0], src[2] };
|
||||||
|
@ -1169,9 +1170,9 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarRgbToplanarRgbWrapper(SwsContext *c,
|
static int planarRgbToplanarRgbWrapper(SwsContext *c,
|
||||||
const uint8_t *src[], int srcStride[],
|
const uint8_t *const src[], const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
|
ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
|
||||||
dst[0], dstStride[0]);
|
dst[0], dstStride[0]);
|
||||||
|
@ -1186,7 +1187,7 @@ static int planarRgbToplanarRgbWrapper(SwsContext *c,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void packedtogbr24p(const uint8_t *src, int srcStride,
|
static void packedtogbr24p(const uint8_t *src, int srcStride,
|
||||||
uint8_t *dst[], int dstStride[], int srcSliceH,
|
uint8_t *const dst[], const int dstStride[], int srcSliceH,
|
||||||
int alpha_first, int inc_size, int width)
|
int alpha_first, int inc_size, int width)
|
||||||
{
|
{
|
||||||
uint8_t *dest[3];
|
uint8_t *dest[3];
|
||||||
|
@ -1214,9 +1215,9 @@ static void packedtogbr24p(const uint8_t *src, int srcStride,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rgbToPlanarRgbWrapper(SwsContext *c, const uint8_t *src[],
|
static int rgbToPlanarRgbWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int alpha_first = 0;
|
int alpha_first = 0;
|
||||||
int stride102[] = { dstStride[1], dstStride[0], dstStride[2] };
|
int stride102[] = { dstStride[1], dstStride[0], dstStride[2] };
|
||||||
|
@ -1319,8 +1320,9 @@ static int rgbToPlanarRgbWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
#define BAYER_RENAME(x) bayer_rggb16be_to_##x
|
#define BAYER_RENAME(x) bayer_rggb16be_to_##x
|
||||||
#include "bayer_template.c"
|
#include "bayer_template.c"
|
||||||
|
|
||||||
static int bayer_to_rgb24_wrapper(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY,
|
static int bayer_to_rgb24_wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[])
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dstPtr= dst[0] + srcSliceY * dstStride[0];
|
uint8_t *dstPtr= dst[0] + srcSliceY * dstStride[0];
|
||||||
const uint8_t *srcPtr= src[0];
|
const uint8_t *srcPtr= src[0];
|
||||||
|
@ -1368,8 +1370,9 @@ static int bayer_to_rgb24_wrapper(SwsContext *c, const uint8_t* src[], int srcSt
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bayer_to_rgb48_wrapper(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY,
|
static int bayer_to_rgb48_wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[])
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
uint8_t *dstPtr= dst[0] + srcSliceY * dstStride[0];
|
uint8_t *dstPtr= dst[0] + srcSliceY * dstStride[0];
|
||||||
const uint8_t *srcPtr= src[0];
|
const uint8_t *srcPtr= src[0];
|
||||||
|
@ -1417,16 +1420,17 @@ static int bayer_to_rgb48_wrapper(SwsContext *c, const uint8_t* src[], int srcSt
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bayer_to_yv12_wrapper(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY,
|
static int bayer_to_yv12_wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[])
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
const uint8_t *srcPtr= src[0];
|
const uint8_t *srcPtr= src[0];
|
||||||
uint8_t *dstY= dst[0] + srcSliceY * dstStride[0];
|
uint8_t *dstY= dst[0] + srcSliceY * dstStride[0];
|
||||||
uint8_t *dstU= dst[1] + srcSliceY * dstStride[1] / 2;
|
uint8_t *dstU= dst[1] + srcSliceY * dstStride[1] / 2;
|
||||||
uint8_t *dstV= dst[2] + srcSliceY * dstStride[2] / 2;
|
uint8_t *dstV= dst[2] + srcSliceY * dstStride[2] / 2;
|
||||||
int i;
|
int i;
|
||||||
void (*copy) (const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, int32_t *rgb2yuv);
|
void (*copy) (const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv);
|
||||||
void (*interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, int32_t *rgb2yuv);
|
void (*interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv);
|
||||||
|
|
||||||
switch(c->srcFormat) {
|
switch(c->srcFormat) {
|
||||||
#define CASE(pixfmt, prefix) \
|
#define CASE(pixfmt, prefix) \
|
||||||
|
@ -1618,9 +1622,9 @@ static rgbConvFn findRgbConvFn(SwsContext *c)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* {RGB,BGR}{15,16,24,32,32_1} -> {RGB,BGR}{15,16,24,32} */
|
/* {RGB,BGR}{15,16,24,32,32_1} -> {RGB,BGR}{15,16,24,32} */
|
||||||
static int rgbToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
|
static int rgbToRgbWrapper(SwsContext *c, const uint8_t *const src[], const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH, uint8_t *dst[],
|
int srcSliceY, int srcSliceH, uint8_t *const dst[],
|
||||||
int dstStride[])
|
const int dstStride[])
|
||||||
|
|
||||||
{
|
{
|
||||||
const enum AVPixelFormat srcFormat = c->srcFormat;
|
const enum AVPixelFormat srcFormat = c->srcFormat;
|
||||||
|
@ -1679,9 +1683,9 @@ static int rgbToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bgr24ToYv12Wrapper(SwsContext *c, const uint8_t *src[],
|
static int bgr24ToYv12Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
ff_rgb24toyv12(
|
ff_rgb24toyv12(
|
||||||
src[0],
|
src[0],
|
||||||
|
@ -1696,9 +1700,9 @@ static int bgr24ToYv12Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int yvu9ToYv12Wrapper(SwsContext *c, const uint8_t *src[],
|
static int yvu9ToYv12Wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
|
ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
|
||||||
dst[0], dstStride[0]);
|
dst[0], dstStride[0]);
|
||||||
|
@ -1712,9 +1716,9 @@ static int yvu9ToYv12Wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uint_y_to_float_y_wrapper(SwsContext *c, const uint8_t *src[],
|
static int uint_y_to_float_y_wrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY,
|
const int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t *dst[], int dstStride[])
|
int srcSliceH, uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, x;
|
int y, x;
|
||||||
ptrdiff_t dstStrideFloat = dstStride[0] >> 2;
|
ptrdiff_t dstStrideFloat = dstStride[0] >> 2;
|
||||||
|
@ -1732,9 +1736,11 @@ static int uint_y_to_float_y_wrapper(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int float_y_to_uint_y_wrapper(SwsContext *c, const uint8_t* src[],
|
static int float_y_to_uint_y_wrapper(SwsContext *c,
|
||||||
int srcStride[], int srcSliceY,
|
const uint8_t *const src[],
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[])
|
const int srcStride[], int srcSliceY,
|
||||||
|
int srcSliceH, uint8_t *const dst[],
|
||||||
|
const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, x;
|
int y, x;
|
||||||
ptrdiff_t srcStrideFloat = srcStride[0] >> 2;
|
ptrdiff_t srcStrideFloat = srcStride[0] >> 2;
|
||||||
|
@ -1753,9 +1759,9 @@ static int float_y_to_uint_y_wrapper(SwsContext *c, const uint8_t* src[],
|
||||||
}
|
}
|
||||||
|
|
||||||
/* unscaled copy like stuff (assumes nearly identical formats) */
|
/* unscaled copy like stuff (assumes nearly identical formats) */
|
||||||
static int packedCopyWrapper(SwsContext *c, const uint8_t *src[],
|
static int packedCopyWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
if (dstStride[0] == srcStride[0] && srcStride[0] > 0)
|
if (dstStride[0] == srcStride[0] && srcStride[0] > 0)
|
||||||
memcpy(dst[0] + dstStride[0] * srcSliceY, src[0], srcSliceH * dstStride[0]);
|
memcpy(dst[0] + dstStride[0] * srcSliceY, src[0], srcSliceH * dstStride[0]);
|
||||||
|
@ -1840,9 +1846,9 @@ static int packedCopyWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
}\
|
}\
|
||||||
}
|
}
|
||||||
|
|
||||||
static int planarCopyWrapper(SwsContext *c, const uint8_t *src[],
|
static int planarCopyWrapper(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[], int srcSliceY, int srcSliceH,
|
const int srcStride[], int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->srcFormat);
|
const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->srcFormat);
|
||||||
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
|
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
|
||||||
|
|
|
@ -86,10 +86,10 @@ extern void ff_yuv_420_gbrp24_ssse3(x86_reg index, uint8_t *image, uint8_t *dst_
|
||||||
const uint8_t *py_2index);
|
const uint8_t *py_2index);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline int yuv420_rgb15_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_rgb15_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -104,10 +104,10 @@ static inline int yuv420_rgb15_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuv420_rgb16_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_rgb16_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -122,10 +122,10 @@ static inline int yuv420_rgb16_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuv420_rgb32_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_rgb32_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -136,10 +136,10 @@ static inline int yuv420_rgb32_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuv420_bgr32_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_bgr32_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -150,10 +150,10 @@ static inline int yuv420_bgr32_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuva420_rgb32_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuva420_rgb32_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
YUV2RGB_LOOP(4)
|
YUV2RGB_LOOP(4)
|
||||||
|
@ -164,10 +164,10 @@ static inline int yuva420_rgb32_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuva420_bgr32_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuva420_bgr32_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -179,10 +179,10 @@ static inline int yuva420_bgr32_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuv420_rgb24_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_rgb24_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -193,10 +193,10 @@ static inline int yuv420_rgb24_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int yuv420_bgr24_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_bgr24_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
@ -208,10 +208,10 @@ static inline int yuv420_bgr24_ssse3(SwsContext *c, const uint8_t *src[],
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ARCH_X86_64
|
#if ARCH_X86_64
|
||||||
static inline int yuv420_gbrp_ssse3(SwsContext *c, const uint8_t *src[],
|
static inline int yuv420_gbrp_ssse3(SwsContext *c, const uint8_t *const src[],
|
||||||
int srcStride[],
|
const int srcStride[],
|
||||||
int srcSliceY, int srcSliceH,
|
int srcSliceY, int srcSliceH,
|
||||||
uint8_t *dst[], int dstStride[])
|
uint8_t *const dst[], const int dstStride[])
|
||||||
{
|
{
|
||||||
int y, h_size, vshift;
|
int y, h_size, vshift;
|
||||||
|
|
||||||
|
|
|
@ -135,9 +135,9 @@ const int *sws_getCoefficients(int colorspace)
|
||||||
dst2_##l[2 * i + 1] = r[Y];
|
dst2_##l[2 * i + 1] = r[Y];
|
||||||
|
|
||||||
#define YUV2RGBFUNC(func_name, dst_type, alpha, yuv422, nb_dst_planes) \
|
#define YUV2RGBFUNC(func_name, dst_type, alpha, yuv422, nb_dst_planes) \
|
||||||
static int func_name(SwsContext *c, const uint8_t *src[], \
|
static int func_name(SwsContext *c, const uint8_t *const src[], \
|
||||||
int srcStride[], int srcSliceY, int srcSliceH, \
|
const int srcStride[], int srcSliceY, int srcSliceH, \
|
||||||
uint8_t *dst[], int dstStride[]) \
|
uint8_t *const dst[], const int dstStride[]) \
|
||||||
{ \
|
{ \
|
||||||
int y; \
|
int y; \
|
||||||
\
|
\
|
||||||
|
|
Loading…
Add table
Reference in a new issue