Glad to hear your feedback! In this case, when sound device/resampler asks for audio frame to the conference bridge, non-audio frame type is returned by conference bridge since no port is connected to sound device/resample port yet (no transmitter). Regards, nanang 2008/5/14 Mathieu Monney <zittix_all at xwaves.net>: > Well now it's working :-) ! Thank you very much. > > Just to understand more deeply, I'm using only audio frame so the > resampling of non-audio sample should not occurs. Why is it occurring ? > > Cheers, > > Mathieu > > Nanang Izzuddin a ?crit : >> Sorry, just recheck this and realized this is bug of resample port, >> when frame from the downport is non-audio type, the resample port copy >> the frame returned from downport carelessly. It's just been fixed and >> committed into the latest SVN (r1955). >> >> Thanks for the report! >> >> Regards, >> nanang >> >> >> 2008/5/14 Mathieu Monney <zittix_all at xwaves.net>: >> >>> Thank you for your answer. >>> >>> Well I'm working with mono-audio. I'm using the stock PJSUA app with my >>> audio driver. So I think it's mono audio. >>> >>> I have just tried with the latest SVN version and it gives me exactly >>> the same error. I actually found the bug. I'm only allowing to open the >>> device at 8000 Hz. But PJSUA want a clock rate of 16000 Hz (don't know >>> why, seems to be config related). So there should be up/down sampling of >>> factor 2. When I'm playing audio, PJSUA need to downsample the audio to >>> 8000 Hz. The frame size (mono or stereo it doesn't matter) should half >>> the frame size of the original audio data. The bug is here. >>> >>> In resample_port.c of the latest SVN version, in function >>> resample_get_frame(), there is the following line: >>> >>> tmp_frame.size = rport->dn_port->info.bytes_per_frame; >>> >>> As I understand it tells that the size of the frame is equal to the >>> master conf port frame size. Actually the master conf port sampling rate >>> is 16000 which twice the frame size of my audio driver. After that, the >>> line: >>> >>> status = pjmedia_port_get_frame( rport->dn_port, &tmp_frame); >>> >>> gets the frame with the wrong size (it doesn't seg fault here). >>> >>> and then the down sampling process is done and the segfault appear. So I >>> think (I'm sure I'm missing something but what ?) there is confusion in >>> frame size in the down sampling stuffs. >>> >>> If I allocate a buffer of twice the frame size in my audio driver it fix >>> the seg fault but then the audio is corrupt.. >>> >>> Any clues appreciated :-)! >>> >>> Cheers, >>> >>> Mathieu >>> >>> Benny Prijono a ?crit : >>> >>>> On Tue, May 13, 2008 at 12:57 PM, Mathieu Monney <zittix_all at xwaves.net> wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> I'm trying to develop a gstreamer audio back-end for PJSIP but I get a >>>>> seg fault in the resampling stuffs When I use the rec/play examples my >>>>> audio driver works just fine but when I'm using pjsua it seg fault. >>>>> >>>>> >>>> Yep. The rec/play samples don't use resample. >>>> >>>> >>>> >>>>> I'm using PJSIP release 0.8.0. The seg fault comes from the fact that in >>>>> the resampling port the frame size in byte is equal to twice the frame >>>>> size in my audio driver. >>>>> >>>>> In the resample_get_frame() function in file resample_port.c at line 177 >>>>> the size is equal to 320 (for my case). In my audio driver I compute the >>>>> frame size as following: >>>>> samples_per_frame*(bits_per_sample>>3)*channel_count >>>>> >>>>> which gives half the value above. But my computation seems correct. Is a >>>>> bug or am I missing something ? >>>>> >>>>> >>>>> >>>> Well which one is correct is indeed the question. Are you working with >>>> non-mono audio? >>>> >>>> In version 0.8 and older, the convention about samples_per_frame value >>>> was not clear when channel_count is non-mono. That is, say if the >>>> audio is stereo, does the samples_per_frame value represent the >>>> combined/2-channels frame length, or does it only represent the size >>>> of the mono frame. If I recall correctly some objects in pjmedia used >>>> different convention hence probably what you saw. >>>> >>>> The convention that has been established now (in SVN version) is the >>>> samples_per_frame represents the total length of the frame, that is >>>> it's equal to mono_count*channel_count (Nanang can correct me if I'm >>>> wrong). So because of this you may be better working with the SVN >>>> version instead. >>>> >>>> Cheers >>>> Benny >>>> >>>> >>>> >>>>> Thank you. >>>>> >>>>> Mathieu >>>>> >>>>> _______________________________________________ >>>>> 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 >>>> >>>> >>> _______________________________________________ >>> 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 >> > > > _______________________________________________ > 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 >