multiple audio device for multiple call at the same time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



check out this code


int clock_rate = CLOCK_RATE;

int channel_count = CHANNEL_COUNT;

int samples_per_frame = SAMPLES_PER_FRAME;

int bits_per_sample = BITS_PER_SAMPLE;

pj_caching_pool cp;

pjmedia_snd_port *snd_port;

const pjmedia_snd_dev_info *devinfo;

int dev_id;

int status;

pj_pool_t *snd_pool;

pjmedia_snd_port *snd_port;

pjmedia_conf *Bridge;

devinfo = getSoundPlayerDeviceID(sounddevice,&dev_id);

/* Must create a pool factory before we can allocate any memory. */

pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);

/*

* Initialize media endpoint.

* This will implicitly initialize PJMEDIA too.

*/

pjsua_data* pjsua_dat = pjsua_get_var();



/* Create memory pool for application purpose */

snd_pool = pj_pool_create( &cp.factory, /* pool factory */

"NEW", /* pool name. */

4000, /* init size */

4000, /* increment size */

NULL /* callback on error */

);

//Create the sound port with the specified Output Device

status = pjmedia_snd_port_create_player(snd_pool, /* pool */

dev_id, /* use default dev. */

clock_rate,

channel_count,

samples_per_frame,

bits_per_sample,

0, /* options */

&snd_port /* returned port */

);

if (status != PJ_SUCCESS)

{

PJ_LOG(1,(THIS_FILE,"Unable to create sound port", status));

return -1;

}

/* Create the conference bridge.

* With default options (zero), the bridge will create an instance of

* sound capture and playback device and connect them to slot zero.

*/

status = pjmedia_conf_create(snd_pool, /* pool to use */

PJSUA_MAX_CONF_PORTS,/* number of ports */

clock_rate,

channel_count,

samples_per_frame,

bits_per_sample,

PJMEDIA_CONF_NO_DEVICE, /* options */

&Bridge /* result */

);

if (status != PJ_SUCCESS)

{

PJ_LOG(1,(THIS_FILE,"Unable to create conf port", status));

return -1;

}

pjmedia_port *newSoundPort = pjmedia_conf_get_master_port(Bridge);

status = pjmedia_snd_port_connect(snd_port, newSoundPort);

if (status != PJ_SUCCESS)

{

PJ_LOG(1,(THIS_FILE,"Unable to connect sound port", status));

return -1;

}

pjmedia_conf_port_info info;

unsigned confSlot;

status = pjmedia_conf_get_port_info(Bridge,0,&info);

confSlot = info.slot;

pjmedia_conf_connect_port(Bridge, confSlot, current_call->conf_slot, 0);

pjmedia_conf_connect_port(Bridge, current_call->conf_slot, confSlot, 0);


On Mon, May 17, 2010 at 3:35 PM, Peter Lukac <p.lukac at emtest.sk> wrote:

> Hello all,
>
>
> I have 2 audio devices and i want these devices use for calling at the
> same
> time. I want create call and connect it to first device (mic/speaker) and
> then i want create second call and connect it to second audio
> device (mic/speaker)... I know this is not possible in standart pjsua API
> because only one audio device at the same time is supported...
>
>
> I need add new device to conf port..but how? exist some order?
> and i think use "pjsua_conf_connect" is not possible because this method
> work with default audio only so i need reimplement this function...
>
>
> Is this scenario possible? If yes can me somebody give some advice?
>
>
>
> thanks
>
>
>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100520/b9f709c4/attachment.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux