summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-06-12 05:51:12 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-06-15 04:56:37 +0200
commit40e6575aa3eed64cd32bf28c00ae57edc5acb25a (patch)
tree3bc6e3ebca1972cf51f04e30f227e46ff204ec05 /libswscale
parente5f6707a7b91664491041526ef3cce7412258b89 (diff)
all: Replace if (ARCH_FOO) checks by #if ARCH_FOO
This is more spec-compliant because it does not rely on dead-code elimination by the compiler. Especially MSVC has problems with this, as can be seen in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html or https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html This commit does not eliminate every instance where we rely on dead code elimination: It only tackles branching to the initialization of arch-specific dsp code, not e.g. all uses of CONFIG_ and HAVE_ checks. But maybe it is already enough to compile FFmpeg with MSVC with whole-programm-optimizations enabled (if one does not disable too many components). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/rgb2rgb.c9
-rw-r--r--libswscale/swscale.c17
-rw-r--r--libswscale/swscale_unscaled.c13
-rw-r--r--libswscale/utils.c7
-rw-r--r--libswscale/yuv2rgb.c9
5 files changed, 30 insertions, 25 deletions
diff --git a/libswscale/rgb2rgb.c b/libswscale/rgb2rgb.c
index a7300f3ba4..b8be76913b 100644
--- a/libswscale/rgb2rgb.c
+++ b/libswscale/rgb2rgb.c
@@ -137,10 +137,11 @@ void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
av_cold void ff_sws_rgb2rgb_init(void)
{
rgb2rgb_init_c();
- if (ARCH_AARCH64)
- rgb2rgb_init_aarch64();
- if (ARCH_X86)
- rgb2rgb_init_x86();
+#if ARCH_AARCH64
+ rgb2rgb_init_aarch64();
+#elif ARCH_X86
+ rgb2rgb_init_x86();
+#endif
}
void rgb32to24(const uint8_t *src, uint8_t *dst, int src_size)
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 3ed547d526..7b40f49da4 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -590,14 +590,15 @@ void ff_sws_init_scale(SwsContext *c)
{
sws_init_swscale(c);
- if (ARCH_PPC)
- ff_sws_init_swscale_ppc(c);
- if (ARCH_X86)
- ff_sws_init_swscale_x86(c);
- if (ARCH_AARCH64)
- ff_sws_init_swscale_aarch64(c);
- if (ARCH_ARM)
- ff_sws_init_swscale_arm(c);
+#if ARCH_PPC
+ ff_sws_init_swscale_ppc(c);
+#elif ARCH_X86
+ ff_sws_init_swscale_x86(c);
+#elif ARCH_AARCH64
+ ff_sws_init_swscale_aarch64(c);
+#elif ARCH_ARM
+ ff_sws_init_swscale_arm(c);
+#endif
}
static void reset_ptr(const uint8_t *src[], enum AVPixelFormat format)
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 7cb2a62f07..8838cc8b53 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -2222,12 +2222,13 @@ void ff_get_unscaled_swscale(SwsContext *c)
c->convert_unscaled = planarCopyWrapper;
}
- if (ARCH_PPC)
- ff_get_unscaled_swscale_ppc(c);
- if (ARCH_ARM)
- ff_get_unscaled_swscale_arm(c);
- if (ARCH_AARCH64)
- ff_get_unscaled_swscale_aarch64(c);
+#if ARCH_PPC
+ ff_get_unscaled_swscale_ppc(c);
+#elif ARCH_ARM
+ ff_get_unscaled_swscale_arm(c);
+#elif ARCH_AARCH64
+ ff_get_unscaled_swscale_aarch64(c);
+#endif
}
/* Convert the palette to the same packed 32-bit format as the palette */
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 105781c4f4..cb4f5b521c 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -1044,9 +1044,10 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
contrast, saturation);
// FIXME factorize
- if (ARCH_PPC)
- ff_yuv2rgb_init_tables_ppc(c, inv_table, brightness,
- contrast, saturation);
+#if ARCH_PPC
+ ff_yuv2rgb_init_tables_ppc(c, inv_table, brightness,
+ contrast, saturation);
+#endif
}
fill_rgb2yuv_table(c, table, dstRange);
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index 76232cb364..6ee483d12a 100644
--- a/libswscale/yuv2rgb.c
+++ b/libswscale/yuv2rgb.c
@@ -679,10 +679,11 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c)
{
SwsFunc t = NULL;
- if (ARCH_PPC)
- t = ff_yuv2rgb_init_ppc(c);
- if (ARCH_X86)
- t = ff_yuv2rgb_init_x86(c);
+#if ARCH_PPC
+ t = ff_yuv2rgb_init_ppc(c);
+#elif ARCH_X86
+ t = ff_yuv2rgb_init_x86(c);
+#endif
if (t)
return t;