Skip to content

Commit c1a0e65

Browse files
committed
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 <[email protected]>
1 parent 286bdc9 commit c1a0e65

14 files changed

+220
-208
lines changed

libswscale/aarch64/swscale_unscaled.c

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
3737
int y_offset, \
3838
int y_coeff); \
3939
\
40-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
41-
int srcStride[], int srcSliceY, int srcSliceH, \
42-
uint8_t *dst[], int dstStride[]) { \
40+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
41+
const int srcStride[], int srcSliceY, \
42+
int srcSliceH, uint8_t *const dst[], \
43+
const int dstStride[]) { \
4344
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
4445
\
4546
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
@@ -64,9 +65,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
6465
uint8_t *dst1, int linesize1, \
6566
uint8_t *dst2, int linesize2); \
6667
\
67-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
68-
int srcStride[], int srcSliceY, int srcSliceH, \
69-
uint8_t *dst[], int dstStride[]) { \
68+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
69+
const int srcStride[], int srcSliceY, \
70+
int srcSliceH, uint8_t *const dst[], \
71+
const int dstStride[]) { \
7072
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
7173
\
7274
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
@@ -100,9 +102,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
100102
int y_offset, \
101103
int y_coeff); \
102104
\
103-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
104-
int srcStride[], int srcSliceY, int srcSliceH, \
105-
uint8_t *dst[], int dstStride[]) { \
105+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
106+
const int srcStride[], int srcSliceY, \
107+
int srcSliceH, uint8_t *const dst[], \
108+
const int dstStride[]) { \
106109
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
107110
\
108111
return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
@@ -124,9 +127,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
124127
uint8_t *dst1, int linesize1, \
125128
uint8_t *dst2, int linesize2); \
126129
\
127-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
128-
int srcStride[], int srcSliceY, int srcSliceH, \
129-
uint8_t *dst[], int dstStride[]) { \
130+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
131+
const int srcStride[], int srcSliceY, \
132+
int srcSliceH, uint8_t *const dst[], \
133+
const int dstStride[]) { \
130134
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
131135
\
132136
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,
144148
const uint8_t *src, int srcStride,
145149
int w, int h);
146150

147-
static int nv24_to_yuv420p_neon_wrapper(SwsContext *c, const uint8_t *src[],
148-
int srcStride[], int srcSliceY, int srcSliceH,
149-
uint8_t *dst[], int dstStride[])
151+
static int nv24_to_yuv420p_neon_wrapper(SwsContext *c, const uint8_t *const src[],
152+
const int srcStride[], int srcSliceY, int srcSliceH,
153+
const uint8_t *dst[], const int dstStride[])
150154
{
151155
uint8_t *dst1 = dst[1] + dstStride[1] * srcSliceY / 2;
152156
uint8_t *dst2 = dst[2] + dstStride[2] * srcSliceY / 2;

libswscale/alphablend.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
#include "swscale_internal.h"
2222

23-
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *src[],
24-
int srcStride[], int srcSliceY, int srcSliceH,
25-
uint8_t *dst[], int dstStride[])
23+
int ff_sws_alphablendaway(SwsContext *c, const uint8_t *const src[],
24+
const int srcStride[], int srcSliceY, int srcSliceH,
25+
uint8_t *const dst[], const int dstStride[])
2626
{
2727
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(c->srcFormat);
2828
int nb_components = desc->nb_components;

libswscale/arm/swscale_unscaled.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ extern void rgbx_to_nv12_neon_16(const uint8_t *src, uint8_t *y, uint8_t *chroma
3434
int y_stride, int c_stride, int src_stride,
3535
int32_t coeff_tbl[9]);
3636

37-
static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *src[],
38-
int srcStride[], int srcSliceY, int srcSliceH,
39-
uint8_t *dst[], int dstStride[]) {
37+
static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *const src[],
38+
const int srcStride[], int srcSliceY, int srcSliceH,
39+
uint8_t *const dst[], const int dstStride[]) {
4040

4141
rgbx_to_nv12_neon_32(src[0] + srcSliceY * srcStride[0],
4242
dst[0] + srcSliceY * dstStride[0],
@@ -48,9 +48,9 @@ static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *src[
4848
return 0;
4949
}
5050

51-
static int rgbx_to_nv12_neon_16_wrapper(SwsContext *context, const uint8_t *src[],
52-
int srcStride[], int srcSliceY, int srcSliceH,
53-
uint8_t *dst[], int dstStride[]) {
51+
static int rgbx_to_nv12_neon_16_wrapper(SwsContext *context, const uint8_t *const src[],
52+
const int srcStride[], int srcSliceY, int srcSliceH,
53+
uint8_t *const dst[], int dstStride[]) {
5454

5555
rgbx_to_nv12_neon_16(src[0] + srcSliceY * srcStride[0],
5656
dst[0] + srcSliceY * dstStride[0],
@@ -78,9 +78,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
7878
int y_offset, \
7979
int y_coeff); \
8080
\
81-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
82-
int srcStride[], int srcSliceY, int srcSliceH, \
83-
uint8_t *dst[], int dstStride[]) { \
81+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
82+
const int srcStride[], int srcSliceY, \
83+
int srcSliceH, uint8_t *const dst[], \
84+
const int dstStride[]) { \
8485
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
8586
\
8687
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
@@ -113,9 +114,10 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
113114
int y_offset, \
114115
int y_coeff); \
115116
\
116-
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[], \
117-
int srcStride[], int srcSliceY, int srcSliceH, \
118-
uint8_t *dst[], int dstStride[]) { \
117+
static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[], \
118+
const int srcStride[], int srcSliceY, \
119+
int srcSliceH, uint8_t *const dst[], \
120+
const int dstStride[]) { \
119121
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
120122
\
121123
ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \

libswscale/bayer_template.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ static void BAYER_RENAME(rgb48_interpolate)(const uint8_t *src, int src_stride,
253253
}
254254
}
255255

256-
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)
256+
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)
257257
{
258258
uint8_t dst[12];
259259
const int dst_stride = 6;
@@ -268,7 +268,7 @@ static void BAYER_RENAME(yv12_copy)(const uint8_t *src, int src_stride, uint8_t
268268
}
269269
}
270270

271-
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)
271+
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)
272272
{
273273
uint8_t dst[12];
274274
const int dst_stride = 6;

libswscale/loongarch/yuv2rgb_lasx.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,9 @@
160160
}
161161

162162
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
163-
int func_name(SwsContext *c, const uint8_t *src[], \
164-
int srcStride[], int srcSliceY, int srcSliceH, \
165-
uint8_t *dst[], int dstStride[]) \
163+
int func_name(SwsContext *c, const uint8_t *const src[], \
164+
const int srcStride[], int srcSliceY, int srcSliceH, \
165+
uint8_t *const dst[], const int dstStride[]) \
166166
{ \
167167
int x, y, h_size, vshift, res; \
168168
__m256i m_y1, m_y2, m_u, m_v; \
@@ -188,9 +188,9 @@
188188
for(x = 0; x < h_size; x++) { \
189189

190190
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
191-
int func_name(SwsContext *c, const uint8_t *src[], \
192-
int srcStride[], int srcSliceY, int srcSliceH, \
193-
uint8_t *dst[], int dstStride[]) \
191+
int func_name(SwsContext *c, const uint8_t *const src[], \
192+
const int srcStride[], int srcSliceY, int srcSliceH, \
193+
uint8_t *const dst[], const int dstStride[]) \
194194
{ \
195195
int x, y, h_size, vshift, res; \
196196
__m256i m_y1, m_y2, m_u, m_v; \

libswscale/loongarch/yuv2rgb_lsx.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@
113113
}
114114

115115
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
116-
int func_name(SwsContext *c, const uint8_t *src[], \
117-
int srcStride[], int srcSliceY, int srcSliceH, \
118-
uint8_t *dst[], int dstStride[]) \
116+
int func_name(SwsContext *c, const uint8_t *const src[], \
117+
const int srcStride[], int srcSliceY, int srcSliceH, \
118+
uint8_t *const dst[], const int dstStride[]) \
119119
{ \
120120
int x, y, h_size, vshift, res; \
121121
__m128i m_y1, m_y2, m_u, m_v; \
@@ -142,9 +142,9 @@
142142
for(x = 0; x < h_size; x++) { \
143143

144144
#define YUV2RGBFUNC32(func_name, dst_type, alpha) \
145-
int func_name(SwsContext *c, const uint8_t *src[], \
146-
int srcStride[], int srcSliceY, int srcSliceH, \
147-
uint8_t *dst[], int dstStride[]) \
145+
int func_name(SwsContext *c, const uint8_t *const src[], \
146+
const int srcStride[], int srcSliceY, int srcSliceH, \
147+
uint8_t *const dst[], const int dstStride[]) \
148148
{ \
149149
int x, y, h_size, vshift, res; \
150150
__m128i m_y1, m_y2, m_u, m_v; \

libswscale/ppc/yuv2rgb_altivec.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,9 @@ static inline vector unsigned char vec_xl(signed long long offset, const ubyte *
295295
#endif /* !HAVE_VSX */
296296

297297
#define DEFCSP420_CVT(name, out_pixels) \
298-
static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
299-
int *instrides, int srcSliceY, int srcSliceH, \
300-
unsigned char **oplanes, int *outstrides) \
298+
static int altivec_ ## name(SwsContext *c, const unsigned char *const *in, \
299+
const int *instrides, int srcSliceY, int srcSliceH, \
300+
unsigned char *const *oplanes, const int *outstrides) \
301301
{ \
302302
int w = c->srcW; \
303303
int h = srcSliceH; \
@@ -471,9 +471,9 @@ static const vector unsigned char
471471
/*
472472
* this is so I can play live CCIR raw video
473473
*/
474-
static int altivec_uyvy_rgb32(SwsContext *c, const unsigned char **in,
475-
int *instrides, int srcSliceY, int srcSliceH,
476-
unsigned char **oplanes, int *outstrides)
474+
static int altivec_uyvy_rgb32(SwsContext *c, const unsigned char *const *in,
475+
const int *instrides, int srcSliceY, int srcSliceH,
476+
unsigned char *const *oplanes, const int *outstrides)
477477
{
478478
int w = c->srcW;
479479
int h = srcSliceH;

libswscale/rgb2rgb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ void (*ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst,
8282
uint8_t *udst, uint8_t *vdst,
8383
int width, int height,
8484
int lumStride, int chromStride, int srcStride,
85-
int32_t *rgb2yuv);
85+
const int32_t *rgb2yuv);
8686
void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
8787
int srcStride, int dstStride);
8888
void (*interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst,

libswscale/rgb2rgb.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void rgb12to15(const uint8_t *src, uint8_t *dst, int src_size);
7878

7979
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
8080
uint8_t *vdst, int width, int height, int lumStride,
81-
int chromStride, int srcStride, int32_t *rgb2yuv);
81+
int chromStride, int srcStride, const int32_t *rgb2yuv);
8282

8383
/**
8484
* 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
125125
extern void (*ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
126126
int width, int height,
127127
int lumStride, int chromStride, int srcStride,
128-
int32_t *rgb2yuv);
128+
const int32_t *rgb2yuv);
129129
extern void (*planar2x)(const uint8_t *src, uint8_t *dst, int width, int height,
130130
int srcStride, int dstStride);
131131

libswscale/rgb2rgb_template.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ static inline void uyvytoyv12_c(const uint8_t *src, uint8_t *ydst,
645645
*/
646646
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
647647
uint8_t *vdst, int width, int height, int lumStride,
648-
int chromStride, int srcStride, int32_t *rgb2yuv)
648+
int chromStride, int srcStride, const int32_t *rgb2yuv)
649649
{
650650
int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX];
651651
int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX];

0 commit comments

Comments
 (0)