What is master port and port zero ?

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

 



Hi Manmeet,

So Sound Device Port uses sound hardware clock, and Master Port uses Clock
Generator ?
And in 1 conference bridge, there should be only 1 of these 2 Ports ?

In this link http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__CONF.htm,
they said
"Under normal operation (i.e. when PJMEDIA_CONF_NO_DEVICE option is NOT
specified), the bridge internally create an instance of sound device and
connect the sound device to port zero of the bridge.

If PJMEDIA_CONF_NO_DEVICE options is specified, no sound device will be
created in the conference bridge.
Application MUST acquire the port interface of the bridge by calling
pjmedia_conf_get_master_port(), and connect this port interface to a sound
device port by calling pjmedia_snd_port_connect(), or to a master port
(pjmedia_master_port) if application doesn't want to instantiate any sound
devices."

What is port zero? If port zero is Master Port, then Sound device is
connected to Master Port ??



On Tue, Jan 29, 2013 at 12:33 PM, Manmeet Singh
<manmeets at gc-solutions.net>wrote:

>  Guys,
> Please correct me here if I am wrong in any point. I have been studying
> PJSip for sometime now but I may have many incorrect assumptions when
> trying to connect the dots. :)
>
> Hello Khoa,
> In conferencing, the way it works port zero would either be Sound Device
> Port or Master Port. These are attached for a reason, both these ports have
> a unique property, they provide clock/timing to the media they connect to.
> Other media ports by design are passive, they would not push the conference
> to take their buffers and mix them for other parties to listen. Sound card
> interfaces require callbacks which either provide recorded voice in buffer
> or while playing a buffer when finished would ask for next buffer.
>
> Sound card has callbacks and on similar pattern media port internally has
> an instance of Clock Generator, so for the conference mixing to happen you
> need to have one of these added to the conference.
>
> If you have any further queries or if any of my points above are not
> clear, please do let me know.
>
> Regards
> Manmeet
>
>
> On 01/28/2013 10:24 PM, Khoa Pham wrote:
>
> Hi Manmeet,
>
>  I've read those 3 links. please explain to me what is the relation among
> sound device port, master port, and port zero.
>
>
>  On Mon, Jan 28, 2013 at 8:37 PM, Manmeet Singh <manmeets at gc-solutions.net
> > wrote:
>
>>  Hello Khoa,
>>
>> If following links don't clarify things then please do let me know. Then
>> I'll try and give you a snapshot of the complete scenario of how the
>> conference is designed in pjsip.
>>
>> snd_port
>> http://www.pjsip.org/pjmedia/docs/html/group__PJMED__SND__PORT.htm
>> master_port
>> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm
>> port
>> http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__PORT.htm
>>
>> The media clock/timing extends the media port concept that is explained in
>>  Media Ports Framework<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__PORT.htm>.
>> When clock is present in the ports interconnection, media will flow
>> automatically (and with correct timing too!) from one media port to another.
>>
>> There are few objects in PJMEDIA that are able to provide clock/timing to
>> media ports interconnection:
>>
>>    - Sound Device Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND__PORT.htm>
>>    The sound device makes a good candidate as the clock source, and
>>    PJMEDIA Portable Sound Hardware Abstraction<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND.htm>
>>     is designed so that it is able to invoke operations according to
>>    timing driven by the sound hardware clock (this may sound complicated, but
>>    actually it just means that the sound device abstraction provides callbacks
>>    to be called when it has/wants media frames).
>>    See Sound Device Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__SND__PORT.htm>
>>     for more details.
>>
>>
>>    - Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm>
>>    The master port uses Clock Generator<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__CLOCK.htm>
>>     as the clock source. By using Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm>,
>>    it is possible to interconnect passive media ports and let the frames flow
>>    automatically in timely manner.
>>    Please see Master Port<http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm>
>>     for more details.
>>
>>
>> Regards
>> Manmeet
>>
>>
>> On 01/28/2013 06:53 PM, Khoa Pham wrote:
>>
>> Thanks Gaurav for the prompt reply, I've already read that link.
>> "A master port has two media ports connected to it". What are those 2
>> media ports?
>> In "pjmedia_conf" structure, there are "master_port", "snd_port" and
>> "ports" list, how are they related ?
>>
>>
>>  On Mon, Jan 28, 2013 at 8:15 PM, Gaurav Srivastava <
>> gaurav.srivastava2 at agnity.com> wrote:
>>
>>>              Hi Khoa,
>>>
>>>
>>>
>>>             Please go through the link
>>>
>>>
>>> http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MASTER__PORT.htm
>>>
>>>
>>>
>>>             In case not fruitful, please let me know.
>>>
>>>
>>>
>>>             Thanks and Regards,
>>>
>>>             Gaurav
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> -----Original Message-----
>>> *From:* pjsip [mailto:pjsip-bounces at lists.pjsip.org] *On Behalf Of *Khoa
>>> Pham
>>> *Sent:* Monday, January 28, 2013 6:33 PM
>>> *To:* pjsip list
>>> *Subject:* [pjsip] What is master port and port zero ?
>>>
>>>
>>>
>>> When reading conference bridge on pjsip.org/pjmedia/docs, I see these 2
>>> port. What are they, are they the same ?
>>>
>>>
>>>
>>> When running pjsua_app, I use "cl" command to list port in conference
>>> bridge, I see
>>>
>>>
>>>
>>> pjsua_var.mconf->master_port->info->name = "Wave mapper"
>>>
>>> pjsua_var.mconf->ports[0]->name = "Wave mapper"
>>>
>>> pjsua_var.mconf->ports[1]->name = "ringback"
>>>
>>> pjsua_var.mconf->ports[2]->name = "ring"
>>>
>>> pjsua_var.mconf->ports[3]->name = "sip:voip1 at freesipserver.com"
>>>
>>>
>>>
>>> And it says ports[0] is transmitting to port[3], and port[3] is
>>> transmitting to ports[0]
>>>
>>>
>>>
>>> Any answer is highly appreciated, thanks in advance.
>>>
>>>
>>>
>>> --
>>> Khoa Pham
>>> HCMC University of Science
>>> Faculty of Information Technology
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>
>>
>>  --
>> Khoa Pham
>> HCMC University of Science
>> Faculty of Information Technology
>>
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing listpjsip at lists.pjsip.orghttp://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>>
>>
>
>
>  --
> Khoa Pham
> HCMC University of Science
> Faculty of Information Technology
>
>
>


-- 
Khoa Pham
HCMC University of Science
Faculty of Information Technology
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130129/529fefe0/attachment-0001.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