mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avcodec/adpcm: take into account block_align when decoding ADPCM_PSX
Should reduce decoding overhead.
This commit is contained in:
parent
60c4459075
commit
ca49476ace
@ -1966,11 +1966,13 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
|
||||
}
|
||||
break;
|
||||
case AV_CODEC_ID_ADPCM_PSX:
|
||||
for (int block = 0; block < avpkt->size / FFMAX(avctx->block_align, 16 * avctx->channels); block++) {
|
||||
int nb_samples_per_block = 28 * FFMAX(avctx->block_align, 16 * avctx->channels) / (16 * avctx->channels);
|
||||
for (channel = 0; channel < avctx->channels; channel++) {
|
||||
samples = samples_p[channel];
|
||||
samples = samples_p[channel] + block * nb_samples_per_block;
|
||||
|
||||
/* Read in every sample for this channel. */
|
||||
for (i = 0; i < nb_samples / 28; i++) {
|
||||
for (i = 0; i < nb_samples_per_block / 28; i++) {
|
||||
int filter, shift, flag, byte;
|
||||
|
||||
filter = bytestream2_get_byteu(&gb);
|
||||
@ -2001,6 +2003,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AV_CODEC_ID_ADPCM_ARGO:
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user