And do you think that PortAudio will be able to do source rate conversions? Because on Windows 8.1, when initializing the WASAPI, I can only get a IEEE Floating Point 32-bit. Thanks for the help. On Mar 26, 2014 10:15 PM, "Bill Gardner" <billg at wavearts.com> wrote: > I've written a WASAPI implementation for pjsip as part of VQE echo > canceller (GPL code): > > http://wavearts.com/licensing/#vqe > > It hasn't been ported to mobile platforms (the echo canceller is probably > too CPU intensive for mobile). It may be easier to get portaudio to > compile...? > > Bill > > On 3/26/2014 5:40 PM, Nuno Centeio wrote: > > I've tried that. WASAPI implementation does not compile when targeting a > Windows Store App. > > In PortAudio mailing list, I found out that the developer of WASAPI > dissapeared. > > I don't know what else to try and/or do. > > Thanks > On Mar 26, 2014 9:29 PM, "A.Ahland" <a.ahland at gmx.de> wrote: > >> Hi, >> >> I would use portaudio, which has WASAPI implemented and which is already >> in PJSIP. Maybe update it to a newer version. >> >> Cheers, >> >> Andreas >> >> >> Am 26.03.2014 18:45, schrieb Nuno Centeio: >> >> @Bill, >> >> I understand that. But, do you think that the render will only work if >> the capture is working correctly? >> I'm capturing and sending to the network but I'm not converting from IEEE >> Floating Point to PCM16 bits (the sound is not playing well on the >> destination). >> >> Thanks >> >> >> On 26 March 2014 17:22, Bill Gardner <billg at wavearts.com> wrote: >> >>> You could run one WASAPI thread and service both playback and capture >>> events using WaitForMultipleObjects. You should implement audio capture for >>> the obvious reason to make the microphone work, plus not providing pjsip >>> with capture buffers will cause lots of underflow messages. >>> >>> Bill >>> >>> >>> On 3/26/2014 12:48 PM, Nuno Centeio wrote: >>> >>> *@Bill,* >>> >>> But the record is not made in the thread that gets the frame (my >>> WASAPI thread), right? Or do I need to implement my capture engine in order >>> for the render buffer to be correct? >>> >>> *@Abdelrahman*, >>> >>> I think that the only problem will be the WinSocks. However, I'm not >>> targeting for ARM devices, where WinSocks does not exist. In x86 and x64 >>> processors there is WinSocks. But, however, I'm already prepared to be >>> rejected a lot of times :( >>> >>> >>> On 26 March 2014 16:40, Abdelrahman Salah < >>> abdelrahman.salah.cs at gmail.com> wrote: >>> >>>> Dear nuno, >>>> >>>> This is a side hint, please bay attention to the dependencies required, >>>> because most of the dependencies required are not allowed in windows store >>>> and more than likely it will fail the certificate test. >>>> So take that into consideration before spending time and effort. >>>> >>>> Abdelrahman Salah >>>> Sent From My Note II >>>> On 26 Mar 2014 18:25, "Nuno Centeio" <nuno.r.centeio at gmail.com> >>>> wrote: >>>> >>>>> Hi guys, >>>>> >>>>> I'm trying to implement the Windows Audio Session API (WASAPI) in >>>>> order to make PJSip compliant with Windows Store apps. >>>>> >>>>> I think that I'm almost done but I can get the sound correctly (it's >>>>> just that!). >>>>> >>>>> Here is what I have: >>>>> >>>>> (pb_client is a IAudioRenderClient) >>>>> hr = strm->pb_client->GetBuffer(frame_to_render, &cur_pb_buf); >>>>> >>>>> pjmedia_frame frame; >>>>> void* destBuffer = >>>>> (void*)malloc(strm->bytes_per_frame*frame_to_render*sizeof(pj_uint16_t)); >>>>> /* PCM mode */ >>>>> frame.type = PJMEDIA_FRAME_TYPE_AUDIO; >>>>> frame.size = strm->bytes_per_frame; >>>>> frame.timestamp.u64 = strm->pb_timestamp.u64; >>>>> frame.bit_info = 0; >>>>> frame.buf = destBuffer; >>>>> >>>>> status = (*strm->pb_cb)(strm->user_data, &frame); >>>>> >>>>> /* Because PJSip will give me PCM 16 bits, 2 channels and WASAPI >>>>> needs >>>>> IEEE Floating point 32-bits, 2 channels >>>>> */ >>>>> CAudioConverter* conv = new CAudioConverter(); >>>>> conv->ConvI16ToF32((BYTE*)destBuffer, cur_pb_buf, frame_to_render); >>>>> >>>>> /* Write to the device. */ >>>>> hr = strm->pb_client->ReleaseBuffer(frame_to_render, 0); >>>>> >>>>> While running I have the following prints: >>>>> 3/26/2014 4:00:01 PM V SIP - Underflow, buf_cnt=0, will >>>>> generate 1 frame >>>>> 3/26/2014 4:00:01 PM V SIP - Underflow, buf_cnt=0, will >>>>> generate 1 frame >>>>> 3/26/2014 4:00:01 PM V SIP - 698 samples reduced, buf_cnt=6092 >>>>> 3/26/2014 4:00:01 PM V SIP - Buffer size adjusted from 6790 >>>>> to 6092 (eff_cnt=5760) >>>>> 3/26/2014 4:00:01 PM V SIP - Underflow, buf_cnt=0, will >>>>> generate 1 frame >>>>> 3/26/2014 4:00:02 PM V SIP - 320 samples reduced, buf_cnt=6412 >>>>> 3/26/2014 4:00:02 PM V SIP - Buffer size adjusted from 6732 >>>>> to 6412 (eff_cnt=5760) >>>>> >>>>> Any hints on what I might be doing wrong? >>>>> >>>>> 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 >>>>> >>>>> >>>> _______________________________________________ >>>> 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 listpjsip at lists.pjsip.orghttp://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 listpjsip at lists.pjsip.orghttp://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 listpjsip at lists.pjsip.orghttp://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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20140327/4dd722ff/attachment-0001.html>