Browse Source

swscale: rename SwsContext to SwsInternal

And preserve the public SwsContext as separate name. The motivation here
is that I want to turn SwsContext into a public struct, while keeping the
internal implementation hidden. Additionally, I also want to be able to
use multiple internal implementations, e.g. for GPU devices.

This commit does not include any functional changes. For the most part, it is
a simple rename. The only complications arise from the public facing API
functions, which preserve their current type (and hence require an additional
unwrapping step internally), and the checkasm test framework, which directly
accesses SwsInternal.

For consistency, the affected functions that need to maintain a distionction
have generally been changed to refer to the SwsContext as *sws, and the
SwsInternal as *c.

In an upcoming commit, I will provide a backing definition for the public
SwsContext, and update `sws_internal()` to dereference the internal struct
instead of merely casting it.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
Niklas Haas 5 months ago
parent
commit
67adb30322

+ 5 - 5
libswscale/aarch64/hscale.S

@@ -27,7 +27,7 @@
 ; horizontal line scaling
 ;
 ; void hscale<source_width>to<intermediate_nbits>_<filterSize>_<opt>
-;                               (SwsContext *c, int{16,32}_t *dst,
+;                               (SwsInternal *c, int{16,32}_t *dst,
 ;                                int dstW, const uint{8,16}_t *src,
 ;                                const int16_t *filter,
 ;                                const int32_t *filterPos, int filterSize);
@@ -92,7 +92,7 @@ function ff_hscale8to15_X8_neon, export=1
 endfunc
 
 function ff_hscale8to15_X4_neon, export=1
-// x0  SwsContext *c (not used)
+// x0  SwsInternal *c (not used)
 // x1  int16_t *dst
 // w2  int dstW
 // x3  const uint8_t *src
@@ -199,7 +199,7 @@ function ff_hscale8to15_X4_neon, export=1
 endfunc
 
 function ff_hscale8to15_4_neon, export=1
-// x0  SwsContext *c (not used)
+// x0  SwsInternal *c (not used)
 // x1  int16_t *dst
 // x2  int dstW
 // x3  const uint8_t *src
@@ -349,7 +349,7 @@ function ff_hscale8to15_4_neon, export=1
 endfunc
 
 function ff_hscale8to19_4_neon, export=1
-        // x0               SwsContext *c (unused)
+        // x0               SwsInternal *c (unused)
         // x1               int32_t *dst
         // w2               int dstW
         // x3               const uint8_t *src // treat it as uint16_t *src
@@ -542,7 +542,7 @@ function ff_hscale8to19_X8_neon, export=1
 endfunc
 
 function ff_hscale8to19_X4_neon, export=1
-        // x0  SwsContext *c (not used)
+        // x0  SwsInternal *c (not used)
         // x1  int16_t *dst
         // w2  int dstW
         // x3  const uint8_t *src

+ 9 - 9
libswscale/aarch64/swscale.c

@@ -41,7 +41,7 @@ void ff_hscale16to19_X4_neon_asm(int shift, int16_t *_dst, int dstW,
                       const uint8_t *_src, const int16_t *filter,
                       const int32_t *filterPos, int filterSize);
 
-static void ff_hscale16to15_4_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to15_4_neon(SwsInternal *c, int16_t *_dst, int dstW,
                       const uint8_t *_src, const int16_t *filter,
                       const int32_t *filterPos, int filterSize)
 {
@@ -57,7 +57,7 @@ static void ff_hscale16to15_4_neon(SwsContext *c, int16_t *_dst, int dstW,
 
 }
 
-static void ff_hscale16to15_X8_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to15_X8_neon(SwsInternal *c, int16_t *_dst, int dstW,
                       const uint8_t *_src, const int16_t *filter,
                       const int32_t *filterPos, int filterSize)
 {
@@ -73,7 +73,7 @@ static void ff_hscale16to15_X8_neon(SwsContext *c, int16_t *_dst, int dstW,
 
 }
 
-static void ff_hscale16to15_X4_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to15_X4_neon(SwsInternal *c, int16_t *_dst, int dstW,
                       const uint8_t *_src, const int16_t *filter,
                       const int32_t *filterPos, int filterSize)
 {
@@ -88,7 +88,7 @@ static void ff_hscale16to15_X4_neon(SwsContext *c, int16_t *_dst, int dstW,
     ff_hscale16to15_X4_neon_asm(sh, _dst, dstW, _src, filter, filterPos, filterSize);
 }
 
-static void ff_hscale16to19_4_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to19_4_neon(SwsInternal *c, int16_t *_dst, int dstW,
                            const uint8_t *_src, const int16_t *filter,
                            const int32_t *filterPos, int filterSize)
 {
@@ -106,7 +106,7 @@ static void ff_hscale16to19_4_neon(SwsContext *c, int16_t *_dst, int dstW,
 
 }
 
-static void ff_hscale16to19_X8_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to19_X8_neon(SwsInternal *c, int16_t *_dst, int dstW,
                            const uint8_t *_src, const int16_t *filter,
                            const int32_t *filterPos, int filterSize)
 {
@@ -124,7 +124,7 @@ static void ff_hscale16to19_X8_neon(SwsContext *c, int16_t *_dst, int dstW,
 
 }
 
-static void ff_hscale16to19_X4_neon(SwsContext *c, int16_t *_dst, int dstW,
+static void ff_hscale16to19_X4_neon(SwsInternal *c, int16_t *_dst, int dstW,
                            const uint8_t *_src, const int16_t *filter,
                            const int32_t *filterPos, int filterSize)
 {
@@ -144,7 +144,7 @@ static void ff_hscale16to19_X4_neon(SwsContext *c, int16_t *_dst, int dstW,
 
 #define SCALE_FUNC(filter_n, from_bpc, to_bpc, opt) \
 void ff_hscale ## from_bpc ## to ## to_bpc ## _ ## filter_n ## _ ## opt( \
-                                                SwsContext *c, int16_t *data, \
+                                                SwsInternal *c, int16_t *data, \
                                                 int dstW, const uint8_t *src, \
                                                 const int16_t *filter, \
                                                 const int32_t *filterPos, int filterSize)
@@ -223,7 +223,7 @@ void ff_chrRangeFromJpeg_neon(int16_t *dstU, int16_t *dstV, int width);
 void ff_lumRangeToJpeg_neon(int16_t *dst, int width);
 void ff_chrRangeToJpeg_neon(int16_t *dstU, int16_t *dstV, int width);
 
-av_cold void ff_sws_init_range_convert_aarch64(SwsContext *c)
+av_cold void ff_sws_init_range_convert_aarch64(SwsInternal *c)
 {
     if (c->srcRange != c->dstRange && !isAnyRGB(c->dstFormat)) {
         if (c->dstBpc <= 14) {
@@ -238,7 +238,7 @@ av_cold void ff_sws_init_range_convert_aarch64(SwsContext *c)
     }
 }
 
-av_cold void ff_sws_init_swscale_aarch64(SwsContext *c)
+av_cold void ff_sws_init_swscale_aarch64(SwsInternal *c)
 {
     int cpu_flags = av_get_cpu_flags();
 

+ 7 - 7
libswscale/aarch64/swscale_unscaled.c

@@ -37,7 +37,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  int y_offset,                                              \
                                  int y_coeff);                                              \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -65,7 +65,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  uint8_t *dst1, int linesize1,                              \
                                  uint8_t *dst2, int linesize2);                             \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -102,7 +102,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  int y_offset,                                              \
                                  int y_coeff);                                              \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -127,7 +127,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  uint8_t *dst1, int linesize1,                              \
                                  uint8_t *dst2, int linesize2);                             \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -148,7 +148,7 @@ void ff_nv24_to_yuv420p_chroma_neon(uint8_t *dst1, int dstStride1,
                                     const uint8_t *src, int srcStride,
                                     int w, int h);
 
-static int nv24_to_yuv420p_neon_wrapper(SwsContext *c, const uint8_t *const src[],
+static int nv24_to_yuv420p_neon_wrapper(SwsInternal *c, const uint8_t *const src[],
                                         const int srcStride[], int srcSliceY, int srcSliceH,
                                         uint8_t *const dst[], const int dstStride[])
 {
@@ -199,7 +199,7 @@ DECLARE_FF_NVX_TO_ALL_RGBX_FUNCS(nv21)
     SET_FF_NVX_TO_RGBX_FUNC(nvx, NVX, gbrp, GBRP, accurate_rnd);                            \
 } while (0)
 
-static void get_unscaled_swscale_neon(SwsContext *c) {
+static void get_unscaled_swscale_neon(SwsInternal *c) {
     int accurate_rnd = c->flags & SWS_ACCURATE_RND;
 
     SET_FF_NVX_TO_ALL_RGBX_FUNC(nv12, NV12, accurate_rnd);
@@ -213,7 +213,7 @@ static void get_unscaled_swscale_neon(SwsContext *c) {
         c->convert_unscaled = nv24_to_yuv420p_neon_wrapper;
 }
 
-void ff_get_unscaled_swscale_aarch64(SwsContext *c)
+void ff_get_unscaled_swscale_aarch64(SwsInternal *c)
 {
     int cpu_flags = av_get_cpu_flags();
     if (have_neon(cpu_flags))

+ 1 - 1
libswscale/alphablend.c

@@ -20,7 +20,7 @@
 
 #include "swscale_internal.h"
 
-int ff_sws_alphablendaway(SwsContext *c, const uint8_t *const src[],
+int ff_sws_alphablendaway(SwsInternal *c, const uint8_t *const src[],
                           const int srcStride[], int srcSliceY, int srcSliceH,
                           uint8_t *const dst[], const int dstStride[])
 {

+ 2 - 2
libswscale/arm/swscale.c

@@ -22,7 +22,7 @@
 #include "libswscale/swscale_internal.h"
 #include "libavutil/arm/cpu.h"
 
-void ff_hscale_8_to_15_neon(SwsContext *c, int16_t *dst, int dstW,
+void ff_hscale_8_to_15_neon(SwsInternal *c, int16_t *dst, int dstW,
                             const uint8_t *src, const int16_t *filter,
                             const int32_t *filterPos, int filterSize);
 
@@ -30,7 +30,7 @@ void ff_yuv2planeX_8_neon(const int16_t *filter, int filterSize,
                           const int16_t **src, uint8_t *dest, int dstW,
                           const uint8_t *dither, int offset);
 
-av_cold void ff_sws_init_swscale_arm(SwsContext *c)
+av_cold void ff_sws_init_swscale_arm(SwsInternal *c)
 {
     int cpu_flags = av_get_cpu_flags();
 

+ 7 - 7
libswscale/arm/swscale_unscaled.c

@@ -34,7 +34,7 @@ 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,
                 int32_t coeff_tbl[9]);
 
-static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *const src[],
+static int rgbx_to_nv12_neon_32_wrapper(SwsInternal *context, const uint8_t *const src[],
                         const int srcStride[], int srcSliceY, int srcSliceH,
                         uint8_t *const dst[], const int dstStride[]) {
 
@@ -48,7 +48,7 @@ static int rgbx_to_nv12_neon_32_wrapper(SwsContext *context, const uint8_t *cons
     return 0;
 }
 
-static int rgbx_to_nv12_neon_16_wrapper(SwsContext *context, const uint8_t *const src[],
+static int rgbx_to_nv12_neon_16_wrapper(SwsInternal *context, const uint8_t *const src[],
                         const int srcStride[], int srcSliceY, int srcSliceH,
                         uint8_t *const dst[], int dstStride[]) {
 
@@ -78,7 +78,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  int y_offset,                                              \
                                  int y_coeff);                                              \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -114,7 +114,7 @@ int ff_##ifmt##_to_##ofmt##_neon(int w, int h,
                                  int y_offset,                                              \
                                  int y_coeff);                                              \
                                                                                             \
-static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *const src[],       \
+static int ifmt##_to_##ofmt##_neon_wrapper(SwsInternal *c, const uint8_t *const src[],      \
                                            const int srcStride[], int srcSliceY,            \
                                            int srcSliceH, uint8_t *const dst[],             \
                                            const int dstStride[]) {                         \
@@ -160,7 +160,7 @@ DECLARE_FF_NVX_TO_ALL_RGBX_FUNCS(nv21)
     SET_FF_NVX_TO_RGBX_FUNC(nvx, NVX, bgra, BGRA, accurate_rnd);                            \
 } while (0)
 
-static void get_unscaled_swscale_neon(SwsContext *c) {
+static void get_unscaled_swscale_neon(SwsInternal *c) {
     int accurate_rnd = c->flags & SWS_ACCURATE_RND;
     if (c->srcFormat == AV_PIX_FMT_RGBA
             && c->dstFormat == AV_PIX_FMT_NV12
@@ -175,14 +175,14 @@ static void get_unscaled_swscale_neon(SwsContext *c) {
     SET_FF_NVX_TO_ALL_RGBX_FUNC(yuv422p, YUV422P, accurate_rnd);
 }
 
-void ff_get_unscaled_swscale_arm(SwsContext *c)
+void ff_get_unscaled_swscale_arm(SwsInternal *c)
 {
     int cpu_flags = av_get_cpu_flags();
     if (have_neon(cpu_flags))
         get_unscaled_swscale_neon(c);
 }
 #else
-void ff_get_unscaled_swscale_arm(SwsContext *c)
+void ff_get_unscaled_swscale_arm(SwsInternal *c)
 {
 }
 #endif

+ 1 - 2
libswscale/gamma.c

@@ -28,7 +28,7 @@ typedef struct GammaContext
 
 // gamma_convert expects 16 bit rgb format
 // it writes directly in src slice thus it must be modifiable (done through cascade context)
-static int gamma_convert(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int gamma_convert(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     GammaContext *instance = desc->instance;
     uint16_t *table = instance->table;
@@ -70,4 +70,3 @@ int ff_init_gamma_convert(SwsFilterDescriptor *desc, SwsSlice * src, uint16_t *t
 
     return 0;
 }
-

+ 5 - 5
libswscale/hscale.c

@@ -36,7 +36,7 @@ typedef struct ColorContext
     uint32_t *pal;
 } ColorContext;
 
-static int lum_h_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int lum_h_scale(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     FilterContext *instance = desc->instance;
     int srcW = desc->src->width;
@@ -84,7 +84,7 @@ static int lum_h_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int
     return sliceH;
 }
 
-static int lum_convert(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int lum_convert(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     int srcW = desc->src->width;
     ColorContext * instance = desc->instance;
@@ -164,7 +164,7 @@ int ff_init_desc_hscale(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst,
     return 0;
 }
 
-static int chr_h_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int chr_h_scale(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     FilterContext *instance = desc->instance;
     int srcW = AV_CEIL_RSHIFT(desc->src->width, desc->src->h_chr_sub_sample);
@@ -200,7 +200,7 @@ static int chr_h_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int
     return sliceH;
 }
 
-static int chr_convert(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int chr_convert(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     int srcW = AV_CEIL_RSHIFT(desc->src->width, desc->src->h_chr_sub_sample);
     ColorContext * instance = desc->instance;
@@ -270,7 +270,7 @@ int ff_init_desc_chscale(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst
     return 0;
 }
 
-static int no_chr_scale(SwsContext *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
+static int no_chr_scale(SwsInternal *c, SwsFilterDescriptor *desc, int sliceY, int sliceH)
 {
     desc->dst->plane[1].sliceY = sliceY + sliceH - desc->dst->plane[1].available_lines;
     desc->dst->plane[1].sliceH = desc->dst->plane[1].available_lines;

+ 2 - 2
libswscale/hscale_fast_bilinear.c

@@ -20,7 +20,7 @@
 
 #include "swscale_internal.h"
 
-void ff_hyscale_fast_c(SwsContext *c, int16_t *dst, int dstWidth,
+void ff_hyscale_fast_c(SwsInternal *c, int16_t *dst, int dstWidth,
                            const uint8_t *src, int srcW, int xInc)
 {
     int i;
@@ -35,7 +35,7 @@ void ff_hyscale_fast_c(SwsContext *c, int16_t *dst, int dstWidth,
         dst[i] = src[srcW-1]*128;
 }
 
-void ff_hcscale_fast_c(SwsContext *c, int16_t *dst1, int16_t *dst2,
+void ff_hcscale_fast_c(SwsInternal *c, int16_t *dst1, int16_t *dst2,
                            int dstWidth, const uint8_t *src1,
                            const uint8_t *src2, int srcW, int xInc)
 {

+ 1 - 1
libswscale/input.c

@@ -1539,7 +1539,7 @@ static void rgbf16##endian_name##ToY_c(uint8_t *_dst, const uint8_t *_src, const
 rgbaf16_funcs_endian(le, 0)
 rgbaf16_funcs_endian(be, 1)
 
-av_cold void ff_sws_init_input_funcs(SwsContext *c,
+av_cold void ff_sws_init_input_funcs(SwsInternal *c,
                                      planar1_YV12_fn *lumToYV12,
                                      planar1_YV12_fn *alpToYV12,
                                      planar2_YV12_fn *chrToYV12,

Some files were not shown because too many files changed in this diff