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 > <mailto: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 >> <mailto: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 >>> <mailto: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 >>> <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20140326/e7bb065e/attachment-0001.html>