RTP problems with ICE

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

 



Hi Pedro,


On 11/07/2008, Pedro Gon?alves <pedro.pandre at gmail.com> wrote:
> Nanang Izzuddin wrote:
> > Hi Pedro,
> >
> > Looking into this stack trace:
> >
> >      MyApp.exe!pj_bzero(void * dst=0xfeeefeee, unsigned int
> > size=1600)  Line 601 + 0xf bytes    C
> >      MyApp.exe!get_frame(pjmedia_port * this_port=0x03713d20,
> > pjmedia_frame * frame=0x0712f784)  Line 1720 + 0x16 bytes    C
> >
> > The location seems to be in get_frame() of conference.c, so the 'dst'
> > of pj_bzero (whose value==0xfeeefeee) should be 'conf_port->mix_buf'.
> > Since accessing conf_port in conference bridge is always guarded by
> > mutex, the reasons of conf_port->mix_buf having invalid value
> > (0xfeeefeee) are:
> > - early release of pool. e.g: pool that is used for calling
> > pjmedia_conf_add_port, this pool is used for allocating
> > conf_port->mix_buf.
> Sorry, I didn't understand this 100%: are you saying that the pool used
> in *pjmedia_conf_add_port* can't be the same for allocating
> conf_port->mix_buf?

No, sorry, let me rephrase this...
I was trying to say that the pool used for allocating
conf_port->mix_buf is the pjmedia_conf_add_port's pool, so please make
sure this pool is not released before the conf_port removed from
conference bridge.

> I don't know where conf_port->mix_buf is allocated, but I am using
> pjsip_inv_session's pool in *pjmedia_conf_add_port*.

It should be safe *as long as* the conf_port removed immediately when
call get disconnected (before the pjsip_inv_session's pool released).

> Where can I see which pool is being used to allocate conf_port->mix_buf?

It is pjmedia_conf_add_port's pool, don't need to bother with this.

> Which pool should I use?
>

To check whether the problem is caused by premature pool release, try
to use application life time pool and see if the problem still occurs.


> > - there is buffer overrun somewhere in your app.
> I am new no C/C++, and so I'm no expert in buffer overruns... Do you
> have any suggestion on how to detect a buffer overrun and how to prevent it?

I think it is difficult to detect until a problem occured, like now :)
I'm no expert either, uncle google may have a better answer about
buffer overrun.

> Is this somehow related to the "Master/sound Underflow, buf_cnt=252,
> will generate 1 frame" lines that appear in the log?

I don't think so, that seems to be different problem :)


Regards,
nanang



[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