aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-07 21:20:45 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-11 12:53:26 +0200
commit1533351990ba86bbecc5883dc1ca559581a7fbc8 (patch)
tree5141e1da1cb80e6adccfa47c71dec9d1e3809fdd
parent0458fdbeeda4e82986a00febebc519aadbb75e3d (diff)
downloadffmpeg-1533351990ba86bbecc5883dc1ca559581a7fbc8.tar.gz
avcodec/flacenc: Avoid shift where possible
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/flacenc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
index e29be5822b..3a9578f5cd 100644
--- a/libavcodec/flacenc.c
+++ b/libavcodec/flacenc.c
@@ -525,11 +525,10 @@ static void copy_samples(FlacEncodeContext *s, const void *samples)
{
int i, j, ch;
FlacFrame *frame;
- int shift = av_get_bytes_per_sample(s->avctx->sample_fmt) * 8 -
- s->avctx->bits_per_raw_sample;
-#define COPY_SAMPLES(bits) do { \
+#define COPY_SAMPLES(bits, shift0) do { \
const int ## bits ## _t *samples0 = samples; \
+ const int shift = shift0; \
frame = &s->frame; \
for (i = 0, j = 0; i < frame->blocksize; i++) \
for (ch = 0; ch < s->channels; ch++, j++) \
@@ -537,9 +536,9 @@ static void copy_samples(FlacEncodeContext *s, const void *samples)
} while (0)
if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S16)
- COPY_SAMPLES(16);
+ COPY_SAMPLES(16, 0);
else
- COPY_SAMPLES(32);
+ COPY_SAMPLES(32, 32 - s->avctx->bits_per_raw_sample);
}