mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 20:50:41 +00:00
FS-5105 --resolve
This commit is contained in:
parent
45d849ab74
commit
e0b883f581
@ -1537,7 +1537,8 @@ typedef enum {
|
|||||||
SWITCH_FILE_DONE = (1 << 13),
|
SWITCH_FILE_DONE = (1 << 13),
|
||||||
SWITCH_FILE_BUFFER_DONE = (1 << 14),
|
SWITCH_FILE_BUFFER_DONE = (1 << 14),
|
||||||
SWITCH_FILE_WRITE_APPEND = (1 << 15),
|
SWITCH_FILE_WRITE_APPEND = (1 << 15),
|
||||||
SWITCH_FILE_WRITE_OVER = (1 << 16)
|
SWITCH_FILE_WRITE_OVER = (1 << 16),
|
||||||
|
SWITCH_FILE_NOMUX = (1 << 17)
|
||||||
} switch_file_flag_enum_t;
|
} switch_file_flag_enum_t;
|
||||||
typedef uint32_t switch_file_flag_t;
|
typedef uint32_t switch_file_flag_t;
|
||||||
|
|
||||||
|
@ -2756,6 +2756,7 @@ static switch_status_t http_file_file_open(switch_file_handle_t *handle, const c
|
|||||||
handle->speed = context->fh.speed;
|
handle->speed = context->fh.speed;
|
||||||
handle->interval = context->fh.interval;
|
handle->interval = context->fh.interval;
|
||||||
handle->channels = context->fh.channels;
|
handle->channels = context->fh.channels;
|
||||||
|
handle->flags |= SWITCH_FILE_NOMUX;
|
||||||
|
|
||||||
if (switch_test_flag((&context->fh), SWITCH_FILE_NATIVE)) {
|
if (switch_test_flag((&context->fh), SWITCH_FILE_NATIVE)) {
|
||||||
switch_set_flag(handle, SWITCH_FILE_NATIVE);
|
switch_set_flag(handle, SWITCH_FILE_NATIVE);
|
||||||
|
@ -194,7 +194,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_perform_file_open(const char *file,
|
|||||||
fh->pre_buffer_data = switch_core_alloc(fh->memory_pool, fh->pre_buffer_datalen * fh->channels);
|
fh->pre_buffer_data = switch_core_alloc(fh->memory_pool, fh->pre_buffer_datalen * fh->channels);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fh->channels > 1 && (flags & SWITCH_FILE_FLAG_READ)) {
|
if (fh->channels > 1 && (flags & SWITCH_FILE_FLAG_READ) && !(fh->flags & SWITCH_FILE_NOMUX)) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "File has %d channels, muxing to mono will occur.\n", fh->channels);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "File has %d channels, muxing to mono will occur.\n", fh->channels);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_read(switch_file_handle_t *fh,
|
|||||||
switch_set_flag(fh, SWITCH_FILE_BUFFER_DONE);
|
switch_set_flag(fh, SWITCH_FILE_BUFFER_DONE);
|
||||||
} else {
|
} else {
|
||||||
fh->samples_in += rlen;
|
fh->samples_in += rlen;
|
||||||
if (fh->channels > 1) {
|
if (fh->channels > 1 && !switch_test_flag(fh, SWITCH_FILE_NOMUX)) {
|
||||||
switch_mux_channels((int16_t *) fh->pre_buffer_data, rlen, fh->channels);
|
switch_mux_channels((int16_t *) fh->pre_buffer_data, rlen, fh->channels);
|
||||||
}
|
}
|
||||||
switch_buffer_write(fh->pre_buffer, fh->pre_buffer_data, asis ? rlen : rlen * 2);
|
switch_buffer_write(fh->pre_buffer, fh->pre_buffer_data, asis ? rlen : rlen * 2);
|
||||||
@ -280,7 +280,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_read(switch_file_handle_t *fh,
|
|||||||
|
|
||||||
fh->samples_in += *len;
|
fh->samples_in += *len;
|
||||||
|
|
||||||
if (fh->channels > 1) {
|
if (fh->channels > 1 && !switch_test_flag(fh, SWITCH_FILE_NOMUX)) {
|
||||||
switch_mux_channels((int16_t *) data, *len, fh->channels);
|
switch_mux_channels((int16_t *) data, *len, fh->channels);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user