Lines Matching defs:pVRDEVoice

273 static int vrdeReallocSampleBuf(PVIDEORECAUDIOIN pVRDEVoice, uint32_t cSamples)
276 if (cbBuffer > pVRDEVoice->cbSamplesBufferAllocated)
279 if (pVRDEVoice->pvSamplesBuffer)
281 RTMemFree(pVRDEVoice->pvSamplesBuffer);
282 pVRDEVoice->pvSamplesBuffer = NULL;
284 pVRDEVoice->pvSamplesBuffer = RTMemAlloc(cbBuffer);
285 if (pVRDEVoice->pvSamplesBuffer)
286 pVRDEVoice->cbSamplesBufferAllocated = cbBuffer;
288 pVRDEVoice->cbSamplesBufferAllocated = 0;
294 static int vrdeReallocRateAdjSampleBuf(PVIDEORECAUDIOIN pVRDEVoice, uint32_t cSamples)
297 if (cbBuffer > pVRDEVoice->cbRateBufferAllocated)
299 RTMemFree(pVRDEVoice->pvRateBuffer);
300 pVRDEVoice->pvRateBuffer = RTMemAlloc(cbBuffer);
301 if (pVRDEVoice->pvRateBuffer)
302 pVRDEVoice->cbRateBufferAllocated = cbBuffer;
304 pVRDEVoice->cbRateBufferAllocated = 0;
325 static int vrdeRecordingCallback(PVIDEORECAUDIOIN pVRDEVoice, uint32_t cbSamples, const void *pvSamples)
332 if (!pVRDEVoice->fIsInit)
340 size_t csAvail = RTCircBufFree(pVRDEVoice->pRecordedVoiceBuf) / sizeof(PDMAUDIOSAMPLE); /* bytes -> samples */
354 RTCircBufAcquireWriteBlock(pVRDEVoice->pRecordedVoiceBuf, cbToWrite, &pcDst, &cbToWrite);
367 RTCircBufReleaseWriteBlock(pVRDEVoice->pRecordedVoiceBuf, cbToWrite);
395 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pHostVoiceIn;
398 return drvAudioVideoRecPcmInitInfo(&pVRDEVoice->pHostVoiceIn.Props, pCfg);
405 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pHostVoiceIn;
408 if (ASMAtomicReadU32(&pVRDEVoice->status) != CA_STATUS_INIT)
417 size_t cSamplesRingBuffer = RTCircBufUsed(pVRDEVoice->pRecordedVoiceBuf) / sizeof(PDMAUDIOSAMPLE);
420 cSamplesRingBuffer = RT_MIN(cSamplesRingBuffer, (uint32_t)(pVRDEVoice->pHostVoiceIn.cSamples -
421 audio_pcm_hw_get_live_in (&pVRDEVoice->pHostVoiceIn)));
432 (uint32_t)(pVRDEVoice->pHostVoiceIn.cSamples - pVRDEVoice->pHostVoiceIn.offSamplesWritten));
443 RTCircBufAcquireReadBlock(pVRDEVoice->pRecordedVoiceBuf, cbToRead, &pvSrc, &cbToRead);
453 PPDMAUDIOSAMPLE psDst = pVRDEVoice->pHostVoiceIn.paSamples + pVRDEVoice->pHostVoiceIn.offSamplesWritten;
458 RTCircBufReleaseReadBlock(pVRDEVoice->pRecordedVoiceBuf, cbToRead);
463 pVRDEVoice->pHostVoiceIn.offSamplesWritten = (pVRDEVoice->pHostVoiceIn.offSamplesWritten + cSamplesToRead)
464 % pVRDEVoice->pHostVoiceIn.cSamples;
569 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pHostVoiceIn;
575 //@todo if (!pVRDEVoice->fIsInit)
576 // RTCircBufReset(pVRDEVoice->pRecordedVoiceBuf);
577 pVRDEVoice->fIsInit = 1;
578 pVRDEVoice->pHostVoiceIn = *pHostVoiceIn;
579 pVRDEVoice->cBytesPerFrame = 1;
580 pVRDEVoice->uFrequency = 0;
581 pVRDEVoice->rate = NULL;
582 pVRDEVoice->cbSamplesBufferAllocated = 0;
583 pVRDEVoice->pvRateBuffer = NULL;
584 pVRDEVoice->cbRateBufferAllocated = 0;
586 pVRDEVoice->pHostVoiceIn.cSamples = 2048;
589 ASMAtomicWriteU32(&pVRDEVoice->status, CA_STATUS_IN_INIT);
592 RTCircBufCreate(&pVRDEVoice->pRecordedVoiceBuf,
593 pVRDEVoice->pHostVoiceIn.cSamples * sizeof(PDMAUDIOSAMPLE));
595 if (!RT_VALID_PTR(pVRDEVoice->pRecordedVoiceBuf))
601 ASMAtomicWriteU32(&pVRDEVoice->status, CA_STATUS_INIT);
602 return pDrv->pConsoleVRDPServer->SendAudioInputBegin(NULL, pVRDEVoice, pHostVoiceIn->cSamples,
608 pVRDEVoice->fIsInit = 0;
609 ASMAtomicWriteU32(&pVRDEVoice->status, CA_STATUS_IN_UNINIT);
610 RTCircBufDestroy(pVRDEVoice->pRecordedVoiceBuf);
611 pVRDEVoice->pRecordedVoiceBuf = NULL;
612 ASMAtomicWriteU32(&pVRDEVoice->status, CA_STATUS_UNINIT);
673 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pvContext;
676 pVRDEVoice->cBytesPerFrame = ((cBits + 7) / 8) * cChannels;
695 pVRDEVoice->convAudioDevFmtToStSampl);*/
696 if (pVRDEVoice->convAudioDevFmtToStSampl)
701 //if (iSampleHz && iSampleHz != pVRDEVoice->pHostVoiceIn.Props.uFrequency)
703 /* @todo if the above condition is false then pVRDEVoice->uFrequency will remain 0 */
705 pVRDEVoice->pHostVoiceIn.Props.uFrequency,
706 &pVRDEVoice->rate);*/
707 pVRDEVoice->uFrequency = iSampleHz;
708 LogFlowFunc(("pVRDEVoice assigned requested freq =%d\n", pVRDEVoice->uFrequency));
719 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pvContext;
722 uint32_t cSamples = cbData / pVRDEVoice->cBytesPerFrame; /* Count of samples */
729 cbData, pVRDEVoice->cBytesPerFrame));
731 vrdeReallocSampleBuf(pVRDEVoice, cSamples);
732 pHostStereoSampleBuf = (PPDMAUDIOSAMPLE)pVRDEVoice->pvSamplesBuffer;
733 pVRDEVoice->convAudioDevFmtToStSampl(pHostStereoSampleBuf, pvData, cSamples, &videorec_nominal_volume);
736 pVRDEVoice->uFrequency = 22100; /* @todo handle this. How pVRDEVoice will get proper value */
737 cConvertedSamples = (cSamples * pVRDEVoice->pHostVoiceIn.Props.uHz) / pVRDEVoice->uFrequency;
738 vrdeReallocRateAdjSampleBuf(pVRDEVoice, cConvertedSamples);
740 pConvertedSampleBuf = (PPDMAUDIOSAMPLE)pVRDEVoice->pvRateBuffer;
746 /*mpDrv->pUpPort->pfnDoRateConversion(mpDrv->pUpPort, pVRDEVoice->rate, pHostStereoSampleBuf,
754 rc = vrdeRecordingCallback(pVRDEVoice, cbSamples, pTmpSampleBuf);
767 PVIDEORECAUDIOIN pVRDEVoice = (PVIDEORECAUDIOIN)pvContext;
768 AssertPtrReturn(pVRDEVoice, VERR_INVALID_POINTER);
771 if (pVRDEVoice->rate)
773 //mpDrv->pUpPort->pfnEndAudioConversion(mpDrv->pUpPort, pVRDEVoice->rate);
776 if (pVRDEVoice->pvSamplesBuffer)
778 RTMemFree(pVRDEVoice->pvSamplesBuffer);
779 pVRDEVoice->pvSamplesBuffer = NULL;
782 if (pVRDEVoice->pvRateBuffer)
784 RTMemFree(pVRDEVoice->pvRateBuffer);
785 pVRDEVoice->pvRateBuffer = NULL;