diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-07 21:20:45 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-11 12:53:26 +0200 |
commit | 1533351990ba86bbecc5883dc1ca559581a7fbc8 (patch) | |
tree | 5141e1da1cb80e6adccfa47c71dec9d1e3809fdd | |
parent | 0458fdbeeda4e82986a00febebc519aadbb75e3d (diff) | |
download | ffmpeg-1533351990ba86bbecc5883dc1ca559581a7fbc8.tar.gz |
avcodec/flacenc: Avoid shift where possible
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavcodec/flacenc.c | 9 |
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); } |