[FFmpeg-devel] [PATCH] avfilter/volume: optimize redundant code for af_volume
Shiqi Zhu
hiccupzhu at gmail.com
Mon Apr 21 09:04:52 EEST 2025
Signed-off-by: Shiqi Zhu <hiccupzhu at gmail.com>
---
libavfilter/af_volume.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
index 471bffeceb..c16188524d 100644
--- a/libavfilter/af_volume.c
+++ b/libavfilter/af_volume.c
@@ -178,34 +178,28 @@ static inline void scale_samples_u8_small(uint8_t *dst, const uint8_t *src,
dst[i] = av_clip_uint8((((src[i] - 128) * volume + 128) >> 8) + 128);
}
-static inline void scale_samples_s16(uint8_t *dst, const uint8_t *src,
+static inline void scale_samples_s16(int16_t *dst, const int16_t *src,
int nb_samples, int volume)
{
int i;
- int16_t *smp_dst = (int16_t *)dst;
- const int16_t *smp_src = (const int16_t *)src;
for (i = 0; i < nb_samples; i++)
- smp_dst[i] = av_clip_int16(((int64_t)smp_src[i] * volume + 128) >> 8);
+ dst[i] = av_clip_int16(((int64_t)src[i] * volume + 128) >> 8);
}
-static inline void scale_samples_s16_small(uint8_t *dst, const uint8_t *src,
+static inline void scale_samples_s16_small(int16_t *dst, const int16_t *src,
int nb_samples, int volume)
{
int i;
- int16_t *smp_dst = (int16_t *)dst;
- const int16_t *smp_src = (const int16_t *)src;
for (i = 0; i < nb_samples; i++)
- smp_dst[i] = av_clip_int16((smp_src[i] * volume + 128) >> 8);
+ dst[i] = av_clip_int16((src[i] * volume + 128) >> 8);
}
-static inline void scale_samples_s32(uint8_t *dst, const uint8_t *src,
+static inline void scale_samples_s32(int32_t *dst, const int32_t *src,
int nb_samples, int volume)
{
int i;
- int32_t *smp_dst = (int32_t *)dst;
- const int32_t *smp_src = (const int32_t *)src;
for (i = 0; i < nb_samples; i++)
- smp_dst[i] = av_clipl_int32((((int64_t)smp_src[i] * volume + 128) >> 8));
+ dst[i] = av_clipl_int32((((int64_t)src[i] * volume + 128) >> 8));
}
static av_cold void volume_init(VolumeContext *vol)
--
2.34.1
More information about the ffmpeg-devel
mailing list