提交 cf24c21e authored 作者: Anthony Minessale's avatar Anthony Minessale

update

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4223 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 48935403
...@@ -58,7 +58,6 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, char *pat ...@@ -58,7 +58,6 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, char *pat
sndfile_context *context; sndfile_context *context;
int mode = 0; int mode = 0;
char *ext; char *ext;
int ready = 0;
struct format_map *map = NULL; struct format_map *map = NULL;
if ((ext = strrchr(path, '.')) == 0) { if ((ext = strrchr(path, '.')) == 0) {
...@@ -101,54 +100,41 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, char *pat ...@@ -101,54 +100,41 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, char *pat
} }
sf_command (context->handle, SFC_FILE_TRUNCATE, &frames, sizeof (frames)); sf_command (context->handle, SFC_FILE_TRUNCATE, &frames, sizeof (frames));
}
if (map) {
context->sfinfo.format |= map->format; if (map) {
ready = 1; context->sfinfo.format |= map->format;
}
} else {
ready = 0;
}
if (!ready) {
ready = 1;
if (!strcmp(ext, "r8") || !strcmp(ext, "raw")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_16;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "r16")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_16;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 16000;
} else if (!strcmp(ext, "r24")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_24;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 24000;
} else if (!strcmp(ext, "r32")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_32;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 32000;
} else if (!strcmp(ext, "gsm")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_GSM610;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "ul")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_ULAW;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "al")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_ALAW;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else {
ready = 0;
}
} }
if (!ready) { if (!strcmp(ext, "r8") || !strcmp(ext, "raw")) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening File [%s] [%s]\n", path); context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_16;
return SWITCH_STATUS_GENERR; context->sfinfo.channels = 1;
} context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "r16")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_16;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 16000;
} else if (!strcmp(ext, "r24")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_24;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 24000;
} else if (!strcmp(ext, "r32")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_PCM_32;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 32000;
} else if (!strcmp(ext, "gsm")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_GSM610;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "ul")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_ULAW;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
} else if (!strcmp(ext, "al")) {
context->sfinfo.format = SF_FORMAT_RAW | SF_FORMAT_ALAW;
context->sfinfo.channels = 1;
context->sfinfo.samplerate = 8000;
}
if ((mode & SFM_WRITE) && sf_format_check (&context->sfinfo) == 0) { if ((mode & SFM_WRITE) && sf_format_check (&context->sfinfo) == 0) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error : file format is invalid (0x%08X).\n", context->sfinfo.format); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error : file format is invalid (0x%08X).\n", context->sfinfo.format);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论