MODFORM-23
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12051 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
52cebca125
commit
0f7d9e2cee
|
@ -67,11 +67,10 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
||||||
int rates[4] = {8000, 16000, 32000, 48000};
|
int rates[4] = {8000, 16000, 32000, 48000};
|
||||||
int i;
|
int i;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
char ps[2] = {'\\', '/'};
|
char ps = '\\';
|
||||||
#else
|
#else
|
||||||
char ps[2] = {'/', '\\'};
|
char ps = '/';
|
||||||
#endif
|
#endif
|
||||||
int x;
|
|
||||||
|
|
||||||
if ((ext = strrchr(path, '.')) == 0) {
|
if ((ext = strrchr(path, '.')) == 0) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Format\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Format\n");
|
||||||
|
@ -158,24 +157,32 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
||||||
|
|
||||||
switch_copy_string(alt_path, path, alt_len);
|
switch_copy_string(alt_path, path, alt_len);
|
||||||
|
|
||||||
for (x = 0; x < 2; x++) {
|
/* This block attempts to add the sample rate to the path
|
||||||
if ((last = strrchr(alt_path, ps[x]))) {
|
if the sample rate is already present in the path it does nothing
|
||||||
|
and reverts to the original file name.
|
||||||
|
*/
|
||||||
|
if ((last = strrchr(alt_path, ps))) {
|
||||||
|
last++;
|
||||||
|
#ifdef WIN32
|
||||||
|
if (strrchr(last, '/')) {
|
||||||
|
last = strrchr(alt_path, '/'); /* do not swallow a forward slash if they are intermixed under windows*/
|
||||||
last++;
|
last++;
|
||||||
ldup = strdup(last);
|
}
|
||||||
switch_assert(ldup);
|
#endif
|
||||||
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", handle->samplerate, SWITCH_PATH_SEPARATOR, ldup);
|
ldup = strdup(last);
|
||||||
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
switch_assert(ldup);
|
||||||
path = alt_path;
|
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", handle->samplerate, SWITCH_PATH_SEPARATOR, ldup);
|
||||||
} else {
|
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
||||||
/* Try to find the file at the highest rate possible if we can't find one that matches the exact rate.
|
path = alt_path;
|
||||||
If we don't find any, we will default back to the original file name.
|
} else {
|
||||||
*/
|
/* Try to find the file at the highest rate possible if we can't find one that matches the exact rate.
|
||||||
for (i = 3; i > 0; i--) {
|
If we don't find any, we will default back to the original file name.
|
||||||
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", rates[i], SWITCH_PATH_SEPARATOR, ldup);
|
*/
|
||||||
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
for (i = 3; i > 0; i--) {
|
||||||
path = alt_path;
|
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", rates[i], SWITCH_PATH_SEPARATOR, ldup);
|
||||||
break;
|
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
||||||
}
|
path = alt_path;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue