@@ -43,7 +43,7 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const
43
43
const int dstStride[]) { \
44
44
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
45
45
\
46
- return ff_##ifmt##_to_##ofmt##_neon(c->srcW , srcSliceH, \
46
+ return ff_##ifmt##_to_##ofmt##_neon(c->opts.src_w , srcSliceH, \
47
47
dst[0] + srcSliceY * dstStride[0], dstStride[0], \
48
48
src[0], srcStride[0], \
49
49
src[1], srcStride[1], \
@@ -71,7 +71,7 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const
71
71
const int dstStride[]) { \
72
72
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
73
73
\
74
- return ff_##ifmt##_to_##ofmt##_neon(c->srcW , srcSliceH, \
74
+ return ff_##ifmt##_to_##ofmt##_neon(c->opts.src_w , srcSliceH, \
75
75
dst[0] + srcSliceY * dstStride[0], dstStride[0], \
76
76
src[0], srcStride[0], \
77
77
src[1], srcStride[1], \
@@ -108,7 +108,7 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const
108
108
const int dstStride[]) { \
109
109
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
110
110
\
111
- return ff_##ifmt##_to_##ofmt##_neon(c->srcW , srcSliceH, \
111
+ return ff_##ifmt##_to_##ofmt##_neon(c->opts.src_w , srcSliceH, \
112
112
dst[0] + srcSliceY * dstStride[0], dstStride[0], \
113
113
src[0], srcStride[0], src[1], srcStride[1], \
114
114
yuv2rgb_table, \
@@ -133,7 +133,7 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const
133
133
const int dstStride[]) { \
134
134
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
135
135
\
136
- return ff_##ifmt##_to_##ofmt##_neon(c->srcW , srcSliceH, \
136
+ return ff_##ifmt##_to_##ofmt##_neon(c->opts.src_w , srcSliceH, \
137
137
dst[0] + srcSliceY * dstStride[0], dstStride[0], \
138
138
src[0], srcStride[0], src[1], srcStride[1], \
139
139
yuv2rgb_table, \
@@ -155,15 +155,17 @@ static int nv24_to_yuv420p_neon_wrapper(SwsInternal *c, const uint8_t *const src
155
155
uint8_t * dst1 = dst [1 ] + dstStride [1 ] * srcSliceY / 2 ;
156
156
uint8_t * dst2 = dst [2 ] + dstStride [2 ] * srcSliceY / 2 ;
157
157
158
- ff_copyPlane (src [0 ], srcStride [0 ], srcSliceY , srcSliceH , c -> srcW ,
158
+ ff_copyPlane (src [0 ], srcStride [0 ], srcSliceY , srcSliceH , c -> opts . src_w ,
159
159
dst [0 ], dstStride [0 ]);
160
160
161
- if (c -> srcFormat == AV_PIX_FMT_NV24 )
161
+ if (c -> opts . src_format == AV_PIX_FMT_NV24 )
162
162
ff_nv24_to_yuv420p_chroma_neon (dst1 , dstStride [1 ], dst2 , dstStride [2 ],
163
- src [1 ], srcStride [1 ], c -> srcW / 2 , srcSliceH );
163
+ src [1 ], srcStride [1 ], c -> opts .src_w / 2 ,
164
+ srcSliceH );
164
165
else
165
166
ff_nv24_to_yuv420p_chroma_neon (dst2 , dstStride [2 ], dst1 , dstStride [1 ],
166
- src [1 ], srcStride [1 ], c -> srcW / 2 , srcSliceH );
167
+ src [1 ], srcStride [1 ], c -> opts .src_w / 2 ,
168
+ srcSliceH );
167
169
168
170
return srcSliceH ;
169
171
}
@@ -183,10 +185,10 @@ DECLARE_FF_NVX_TO_ALL_RGBX_FUNCS(nv21)
183
185
* assembly might be writing as much as 4*15=60 extra bytes at the end of the
184
186
* line, which won't fit the 32-bytes buffer alignment. */
185
187
#define SET_FF_NVX_TO_RGBX_FUNC (ifmt , IFMT , ofmt , OFMT , accurate_rnd ) do { \
186
- if (c->srcFormat == AV_PIX_FMT_##IFMT \
187
- && c->dstFormat == AV_PIX_FMT_##OFMT \
188
- && !(c->srcH & 1) \
189
- && !(c->srcW & 15) \
188
+ if (c->opts.src_format == AV_PIX_FMT_##IFMT \
189
+ && c->opts.dst_format == AV_PIX_FMT_##OFMT \
190
+ && !(c->opts.src_h & 1) \
191
+ && !(c->opts.src_w & 15) \
190
192
&& !accurate_rnd) \
191
193
c->convert_unscaled = ifmt##_to_##ofmt##_neon_wrapper; \
192
194
} while (0)
@@ -200,16 +202,16 @@ DECLARE_FF_NVX_TO_ALL_RGBX_FUNCS(nv21)
200
202
} while (0)
201
203
202
204
static void get_unscaled_swscale_neon (SwsInternal * c ) {
203
- int accurate_rnd = c -> flags & SWS_ACCURATE_RND ;
205
+ int accurate_rnd = c -> opts . flags & SWS_ACCURATE_RND ;
204
206
205
207
SET_FF_NVX_TO_ALL_RGBX_FUNC (nv12 , NV12 , accurate_rnd );
206
208
SET_FF_NVX_TO_ALL_RGBX_FUNC (nv21 , NV21 , accurate_rnd );
207
209
SET_FF_NVX_TO_ALL_RGBX_FUNC (yuv420p , YUV420P , accurate_rnd );
208
210
SET_FF_NVX_TO_ALL_RGBX_FUNC (yuv422p , YUV422P , accurate_rnd );
209
211
210
- if (c -> dstFormat == AV_PIX_FMT_YUV420P &&
211
- (c -> srcFormat == AV_PIX_FMT_NV24 || c -> srcFormat == AV_PIX_FMT_NV42 ) &&
212
- !(c -> srcH & 1 ) && !(c -> srcW & 15 ) && !accurate_rnd )
212
+ if (c -> opts . dst_format == AV_PIX_FMT_YUV420P &&
213
+ (c -> opts . src_format == AV_PIX_FMT_NV24 || c -> opts . src_format == AV_PIX_FMT_NV42 ) &&
214
+ !(c -> opts . src_h & 1 ) && !(c -> opts . src_w & 15 ) && !accurate_rnd )
213
215
c -> convert_unscaled = nv24_to_yuv420p_neon_wrapper ;
214
216
}
215
217
0 commit comments