aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/utils.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2024-11-11 18:39:40 +0000
committerPeter Ross <pross@xvid.org>2024-12-22 16:08:33 +1100
commitc3083b3266cf01fdc43e5d03e27bea35d7c1faae (patch)
tree5e0908f1ab398f7e0de8b5331e6920563be505c4 /libavcodec/utils.c
parent095f8038fa9180842cd38d4d61c7c47a02aad9ed (diff)
downloadffmpeg-c3083b3266cf01fdc43e5d03e27bea35d7c1faae.tar.gz
avcodec: add ADPCM IMA XBOX decoder
Diffstat (limited to 'libavcodec/utils.c')
-rw-r--r--libavcodec/utils.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 2dbd677920..2c478ede13 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -558,6 +558,7 @@ int av_get_bits_per_sample(enum AVCodecID codec_id)
return 3;
case AV_CODEC_ID_ADPCM_SBPRO_4:
case AV_CODEC_ID_ADPCM_IMA_WAV:
+ case AV_CODEC_ID_ADPCM_IMA_XBOX:
case AV_CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_SWF:
case AV_CODEC_ID_ADPCM_MS:
@@ -720,6 +721,11 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba,
int blocks = frame_bytes / ba;
int64_t tmp = 0;
switch (id) {
+ case AV_CODEC_ID_ADPCM_IMA_XBOX:
+ if (bps != 4)
+ return 0;
+ tmp = blocks * ((ba - 4 * ch) / (bps * ch) * 8);
+ break;
case AV_CODEC_ID_ADPCM_IMA_WAV:
if (bps < 2 || bps > 5)
return 0;