[FFmpeg-cvslog] avcodec/mlpenc: fix quant_step_size for 16bit sample format input
Paul B Mahol
git at videolan.org
Mon Oct 2 00:25:41 EEST 2023
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sun Oct 1 23:18:51 2023 +0200| [7a444501d5dee96e7692a4339f4ab038753ca43c] | committer: Paul B Mahol
avcodec/mlpenc: fix quant_step_size for 16bit sample format input
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7a444501d5dee96e7692a4339f4ab038753ca43c
---
libavcodec/mlpenc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index fbdfaccd5e..ce7ad2d5ea 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -1259,13 +1259,13 @@ static void input_to_sample_buffer(MLPEncodeContext *ctx)
****************************************************************************/
/** Counts the number of trailing zeroes in a value */
-static int number_trailing_zeroes(int32_t sample)
+static int number_trailing_zeroes(int32_t sample, const int wordlength)
{
int bits = ff_ctz(sample);
/* All samples are 0. TODO Return previous quant_step_size to avoid
* writing a new header. */
- if (bits >= 24)
+ if (bits >= wordlength)
return 0;
return bits;
@@ -1279,6 +1279,7 @@ static void determine_quant_step_size(MLPEncodeContext *ctx)
DecodingParams *dp = ctx->cur_decoding_params;
RestartHeader *rh = ctx->cur_restart_header;
MatrixParams *mp = &dp->matrix_params;
+ const int wordlength = ctx->wordlength;
int32_t *sample_buffer = ctx->sample_buffer;
int32_t sample_mask[MAX_CHANNELS];
@@ -1292,7 +1293,7 @@ static void determine_quant_step_size(MLPEncodeContext *ctx)
}
for (unsigned int channel = 0; channel <= rh->max_channel; channel++)
- dp->quant_step_size[channel] = number_trailing_zeroes(sample_mask[channel]) - mp->shift[channel];
+ dp->quant_step_size[channel] = number_trailing_zeroes(sample_mask[channel], wordlength) - mp->shift[channel];
}
/** Determines the smallest number of bits needed to encode the filter
More information about the ffmpeg-cvslog
mailing list