mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 17:38:59 +00:00
make a way to get the jitter buffer down to the codecs
This commit is contained in:
@@ -373,14 +373,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
||||
memset(session->raw_read_frame.data, 255, session->raw_read_frame.datalen);
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
} else {
|
||||
switch_codec_t *codec = use_codec->implementation?use_codec:read_frame->codec;
|
||||
switch_thread_rwlock_rdlock(session->bug_rwlock);
|
||||
status = switch_core_codec_decode(use_codec->implementation?use_codec:read_frame->codec,
|
||||
codec->session = session;
|
||||
status = switch_core_codec_decode(codec,
|
||||
session->read_codec,
|
||||
read_frame->data,
|
||||
read_frame->datalen,
|
||||
session->read_impl.actual_samples_per_second,
|
||||
session->raw_read_frame.data, &session->raw_read_frame.datalen, &session->raw_read_frame.rate,
|
||||
&read_frame->flags);
|
||||
codec->session = NULL;
|
||||
switch_thread_rwlock_unlock(session->bug_rwlock);
|
||||
|
||||
}
|
||||
@@ -623,14 +626,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
||||
switch_assert(session->read_codec != NULL);
|
||||
switch_assert(enc_frame != NULL);
|
||||
switch_assert(enc_frame->data != NULL);
|
||||
|
||||
session->read_codec->session = session;
|
||||
status = switch_core_codec_encode(session->read_codec,
|
||||
enc_frame->codec,
|
||||
enc_frame->data,
|
||||
enc_frame->datalen,
|
||||
session->read_impl.actual_samples_per_second,
|
||||
session->enc_read_frame.data, &session->enc_read_frame.datalen, &session->enc_read_frame.rate, &flag);
|
||||
|
||||
session->read_codec->session = NULL;
|
||||
switch (status) {
|
||||
case SWITCH_STATUS_RESAMPLE:
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Fixme 1\n");
|
||||
@@ -904,12 +907,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
||||
|
||||
if (frame->codec) {
|
||||
session->raw_write_frame.datalen = session->raw_write_frame.buflen;
|
||||
frame->codec->session = session;
|
||||
status = switch_core_codec_decode(frame->codec,
|
||||
session->write_codec,
|
||||
frame->data,
|
||||
frame->datalen,
|
||||
session->write_impl.actual_samples_per_second,
|
||||
session->raw_write_frame.data, &session->raw_write_frame.datalen, &session->raw_write_frame.rate, &frame->flags);
|
||||
frame->codec->session = NULL;
|
||||
|
||||
if (do_resample && status == SWITCH_STATUS_SUCCESS) {
|
||||
status = SWITCH_STATUS_RESAMPLE;
|
||||
@@ -1089,14 +1094,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
||||
|
||||
enc_frame = write_frame;
|
||||
session->enc_write_frame.datalen = session->enc_write_frame.buflen;
|
||||
|
||||
session->write_codec->session = session;
|
||||
status = switch_core_codec_encode(session->write_codec,
|
||||
frame->codec,
|
||||
enc_frame->data,
|
||||
enc_frame->datalen,
|
||||
session->write_impl.actual_samples_per_second,
|
||||
session->enc_write_frame.data, &session->enc_write_frame.datalen, &session->enc_write_frame.rate, &flag);
|
||||
|
||||
session->write_codec->session = NULL;
|
||||
|
||||
|
||||
|
||||
@@ -1193,14 +1198,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
||||
} else {
|
||||
rate = session->write_impl.actual_samples_per_second;
|
||||
}
|
||||
|
||||
session->write_codec->session = session;
|
||||
status = switch_core_codec_encode(session->write_codec,
|
||||
frame->codec,
|
||||
enc_frame->data,
|
||||
enc_frame->datalen,
|
||||
rate,
|
||||
session->enc_write_frame.data, &session->enc_write_frame.datalen, &session->enc_write_frame.rate, &flag);
|
||||
|
||||
session->write_codec->session = NULL;
|
||||
|
||||
switch (status) {
|
||||
case SWITCH_STATUS_RESAMPLE:
|
||||
|
Reference in New Issue
Block a user