Problems upgrading to 0.9 from 0.8

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

 



Thanks a lot Nanang. That solved the problem.

Case closed :D


On Fri, Aug 22, 2008 at 5:06 PM, Nanang Izzuddin <nanang at pjsip.org> wrote:

> Hi Joao,
>
> I just tried to reproduce the problem and I think I found the problem
> root/bug, which is miscalculation of conf port buffer size. Please try
> the solution by updating your source to the latest SVN or just apply
> the modification of conference.c
> (http://trac.pjsip.org/repos/changeset/2233). And please give feedback
> if the problem still occured.
>
> Thanks for reporting the problem.
>
> Btw, I just realize that you build your own app based on pjsua-lib, I
> was asking about 'cl' just to make sure the conf ports settings.
>
> Regards,
> nanang
>
>
> On 22/08/2008, Jo?o C?sar <jpcesar at gmail.com> wrote:
> >
> > Hi Nanang,
> >
> > Im giving you more details:
> >
> > >>    Those values (256 & 352) seems odd, what is the value of
> > >>    'memory_port'->info.samples_per_frame? And also
> > conference bridge's
> > >>    samples_per_frame value? Could you send along the result of 'cl'
> > >>    command in pjsua prompt?
> >
> >    memory_port->info.samples_per_frame = 256
> >
> > this value is achieved by frame_size / 2 / channel_count
> > frame_size is being sent with 512, the 2 is dividing the frame size by 2
> (16
> > bit per samples, 2 bytes each sample) and channel_count = 1
> >
> > regarding cl command in pjsua, we are running pjsualib on our own
> project, i
> > don't think i can use that here, right?
> >
> > >> What is 512 stand for here?
> >
> > this is passed to the create_memory_port function as explained above and
> its
> > used to set the port->info.bytes_per_frame value. its the frame size of
> > audio data we receive on application. We receive pcm audio frames.
> >
> > >> Actually I am  interested to know what the value of memory
> > >> port->info.samples_per_frame and conference's samples_per_frame.
> >
> > port->info.samples_per_frame = 256
> > conference samples_per_frame i think it has the value 320 as this is the
> > value actually on pjsua_var.mconf_cfg.samples_per_frame
> > used when we call pjmedia_snd_port_create_player.
> >
> >
> > Thanks in advance
> >
> > Joao
> >
> >
> >
> > On Fri, Aug 22, 2008 at 11:15 AM, Nanang Izzuddin <nanang at pjsip.org>
> wrote:
> >
> >     Hi Joao,
> >
> >     Please see inline comments..
> >
> >
> >     2008/8/22 Jo?o C?sar <jpcesar at gmail.com>:
> >     > Hi Nanang,
> >     >
> >     > these are the last values before the assertion fails:
> >     >
> >     > 256 <= 320
> >     > 160 <= 160
> >     > 352 <= 320
> >
> >     Those values (256 & 352) seems odd, what is the value of
> >     'memory_port'->info.samples_per_frame? And also
> > conference bridge's
> >     samples_per_frame value? Could you send along the result of 'cl'
> >     command in pjsua prompt?
> >
> >     >
> >     > Assertion failed: cport->rx_buf_count <= cport->rx_buf_cap, file
> >     > e:\development\
> >     >
> > jcesar\pjproject-0.9.0\pjmedia\src\pjmedia\conference.c,
> > line 1404
> >     >
> >     >> Which codec and which clock rates are you using for
> >     >> the sound device/conference and conference ports used such as file
> >     >>ports if any. And, sometime reclean the whole project may resolve a
> >     >> problem occured after changing library.
> >     >
> >     > we are working with the no sound device option since we only use
> PJSIP
> > to
> >     > deliver the packets to a third party application via SIP. we
> receive
> > audio
> >     > packets from a socket, if we dont have a call for that client we
> make
> > the
> >     > call, else we just feed the memory port with more samples.
> >     >
> >     > we are making the call like this:
> >     >
> >     > sampleRate = 8000;
> >     > channels = 1;
> >     > number_frames = 960;
> >     > channel_count = 1;
> >     >
> >     > // create a media port to generate samples.
> >     > status = create_memory_port( pool, sampleRate, 512, number_frames,
> >     > channel_count,
> > &callData[sessionId].memory_port_phone_out);
> >     >
> >
> >     What is 512 stand for here?
> >
> >     > // add port to conference
> >     > status = pjsua_conf_add_port(pool,
> >     > callData[sessionId].memory_port_phone_out,
> > &callData[sessionId].port_id);
> >     > if (status != PJ_SUCCESS) error_exit("Error adding memory port",
> > status);
> >     >
> >     > status = pjsua_call_make_call(acc_id,uri, 0,
> > &callData[sessionId].port_id,
> >     > NULL,NULL);
> >     > if (status != PJ_SUCCESS) error_exit("Error making call", status);
> >     >
> >     > // assign the callid to the current call in callData
> >     > callData[sessionId].call_id =  callId;
> >     >
> >     > // increment callId for next call
> >     > callId++;
> >     >
> >     > //creates the sound port
> >     > status =
> > pjmedia_snd_port_create_player(pjsua_var.pool,
> >     >                                                 0,
> >     >
> >     >                                                 8000,
> >     >
> >     > pjsua_var.mconf_cfg.channel_count,
> >     >
> >     > pjsua_var.mconf_cfg.samples_per_frame,
> >     >
> >     > pjsua_var.mconf_cfg.bits_per_sample,
> >     >                                                 0,
> >     >
> > &sound_port);
> >     >
> >     > status = pjmedia_snd_port_connect(sound_port,
> >     > pjmedia_conf_get_master_port(pjsua_var.mconf));
> >     >
> >     >
> >     > Each time we receive an audio packet we put that frame into
> > memory_port:
> >     >
> >     > // put frame
> >     >
> > memory_put_frame(callData[sessionId].memory_port_phone_out,
> > &pjframe );
> >     >
> >     >
> >     > and these are the options on the create memory port function:
> >     >
> >     >
> >     >     /* Fill in port info. */
> >     >     port->info.bits_per_sample = 16;
> >     >     port->info.channel_count = channel_count;
> >     >     port->info.encoding_name = pj_str("pcm");
> >     >     port->info.has_info = 1;
> >     >     port->info.name = pj_str("memory playback");
> >     >     port->info.need_info = 0;
> >     >     port->info.pt = 0xFF;
> >     >     port->info.clock_rate = sampling_rate;
> >     >     port->info.samples_per_frame = frame_size / 2 / channel_count ;
> >     >     port->info.bytes_per_frame = frame_size;
> >     >     port->info.type = PJMEDIA_TYPE_AUDIO;
> >     >
> >
> >     Couldn't find any suspect from the snippet code since it shows mostly
> >     variables without knowing the 'important' values. Actually I am
> >     interested to know what the value of memory
> >     port->info.samples_per_frame and conference's samples_per_frame.
> >
> >     >
> >     > This was working fine on 0.8.
> >     >
> >
> >     Conf port's buffer size (rx_buf_cap) calculation has been updated in
> >     0.9 due to multichannel/stereo support in conference (and also IIRC
> it
> >     seems rx_buf_cap in 0.8 is a bit over calculated, perhaps that's why
> >     it was working fine on 0.8, miscalculation was tolerated).
> >
> >     Regards,
> >     nanang
> >
> >     _______________________________________________
> >     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
> >
> >
> >
> >
> > --
> > Joao Cesar
> > msn: jpcesar at gmail.com
> > gtalk: jpcesar at gmail.com
> > icq: 13790802
> >
> >
> > _______________________________________________
> > 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
> >
> >
>
> _______________________________________________
> 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
>



-- 
Joao Cesar
msn: jpcesar at gmail.com
gtalk: jpcesar at gmail.com
icq: 13790802
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080828/c4d43933/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