diff --git a/src/mod/formats/mod_sndfile/mod_sndfile.c b/src/mod/formats/mod_sndfile/mod_sndfile.c index 9da11376e0..d1db8f09a2 100644 --- a/src/mod/formats/mod_sndfile/mod_sndfile.c +++ b/src/mod/formats/mod_sndfile/mod_sndfile.c @@ -139,6 +139,9 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_ALAW; context->sfinfo.channels = 1; context->sfinfo.samplerate = 8000; + } else if (!strcmp(ext, "adpcm")) { + context->sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_IMA_ADPCM; + context->sfinfo.samplerate = 8000; } if ((mode & SFM_WRITE) && sf_format_check(&context->sfinfo) == 0) { @@ -305,7 +308,7 @@ static switch_status_t setup_formats(void) char buffer[128]; int format, major_count, subtype_count, m, s; int len, x, skip; - char *extras[] = { "r8", "r16", "r24", "r32", "gsm", "ul", "al", NULL }; + char *extras[] = { "r8", "r16", "r24", "r32", "gsm", "ul", "al", "adpcm", NULL }; int exlen = (sizeof(extras) / sizeof(extras[0])); buffer[0] = 0;