/*
* Recorder (or passive port) callback.
*/
static pj_status_t put_frame(pjmedia_port *this_port,
pjmedia_frame *frame)
{
pjmedia_conf *conf = (pjmedia_conf*) this_port->port_data.pdata;
struct conf_port *port = conf->ports[this_port->port_data.ldata];
pj_status_t status;
/* Check for correct size. */
PJ_ASSERT_RETURN( frame->size == conf->samples_per_frame *
conf->bits_per_sample / 8,
PJMEDIA_ENCSAMPLESPFRAME);
/* Check existance of delay_buf instance */
PJ_ASSERT_RETURN( port->delay_buf, PJ_EBUG );
/* Skip if this port is muted/disabled. */
if (port->rx_setting != PJMEDIA_PORT_ENABLE) {
return PJ_SUCCESS;
}
/* Skip if no port is listening to the microphone */
if (port->listener_cnt == 0) {
return PJ_SUCCESS;
}
status = pjmedia_delay_buf_put(port->delay_buf, (pj_int16_t*)frame->buf);
return status;
}
static pj_status_t get_frame(pjmedia_port *this_port,
pjmedia_frame *frame)
{
pjmedia_conf *conf = (pjmedia_conf*) this_port->port_data.pdata;
pjmedia_frame_type speaker_frame_type = PJMEDIA_FRAME_TYPE_NONE;
unsigned ci, cj, i, j;
pj_int16_t *p_in;
TRACE_((THIS_FILE, "- clock -"));
/* Check that correct size is specified. */
pj_assert(frame->size == conf->samples_per_frame *
conf->bits_per_sample / 8);
...........................................
Assert failed: frame->size == conf->samples_per_frame * conf->bits_per_sample / 8
надо задать новый frame->size. Могу распечать полностью дополнительно для теста значение frame->size.