00:00:18.763 WEST_TOPDIR/ze ..Assert failed: samples_per_frame > 0
00:00:18.769 pjsua_aud.c ..Error creating conference bridge: Unknown pjlib error 70004 [status=70004]
error_exit(687) ERROR=Error in pjsua_init() status=70004
00:00:18.784 APP Error in pjsua_init(): Unknown pjlib error 70004 [status=70004]
PJ_DEF(pj_status_t) pjmedia_conf_create( pj_pool_t *pool_,
unsigned max_ports,
unsigned clock_rate,
unsigned channel_count,
unsigned samples_per_frame,
unsigned bits_per_sample,
unsigned options,
pjmedia_conf **p_conf )
{
pj_pool_t *pool;
pjmedia_conf *conf;
const pj_str_t name = { "Conf", 4 };
pj_status_t status;
PJ_ASSERT_RETURN(samples_per_frame > 0, PJ_EINVAL);
/* Can only accept 16bits per sample, for now.. */
думаю надо протянуть в систему snd_port.c установку sample_rate
PJ_DEF(pj_status_t) pjmedia_snd_port_create( pj_pool_t *pool,
int rec_id,
int play_id,
unsigned clock_rate,
unsigned channel_count,
unsigned samples_per_frame,
unsigned bits_per_sample,
unsigned options,
pjmedia_snd_port **p_port)
{
pjmedia_snd_port_param param;
pj_status_t status;
pjmedia_snd_port_param_default(¶m);
/* Normalize rec_id & play_id */
if (rec_id < 0)
rec_id = PJMEDIA_AUD_DEFAULT_CAPTURE_DEV;
if (play_id < 0)
play_id = PJMEDIA_AUD_DEFAULT_PLAYBACK_DEV;
status = pjmedia_aud_dev_default_param(rec_id, ¶m.base);
if (status != PJ_SUCCESS)
return status;
param.base.dir = PJMEDIA_DIR_CAPTURE_PLAYBACK;
param.base.rec_id = rec_id;
param.base.play_id = play_id;
param.base.clock_rate = clock_rate;
param.base.channel_count = channel_count;
param.base.samples_per_frame = samples_per_frame;
param.base.bits_per_sample = bits_per_sample;
param.options = options;
param.ec_options = 0;
return pjmedia_snd_port_create2(pool, ¶m, p_port);
}
т.е. возможность динамически устанавливать sample_rate после согласования кодеков, либо полное отключение ресэмлинга, если стоит такая настройка, а железные аудио устройства настраивать как входной кодек