Lines Matching defs:pStreamIn

339     PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pvUser;
352 UInt32 uSize = sizeof(pStreamIn->deviceID);
358 if (pStreamIn->deviceID != uResp)
365 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_REINIT);
383 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pHstStrmIn;
385 drvHostCoreAudioFiniIn(pInterface, &pStreamIn->streamIn);
387 drvHostCoreAudioInitInput(&pStreamIn->streamIn, NULL /* pcSamples */);
388 drvHostCoreAudioControlIn(pInterface, &pStreamIn->streamIn, PDMAUDIOSTREAMCMD_ENABLE);
414 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pvUser;
432 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_REINIT);
452 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pvUser;
456 const AudioBufferList *pBufferList = &pStreamIn->bufferList;
458 if (ASMAtomicReadU32(&pStreamIn->status) != CA_STATUS_INIT)
465 Assert(pBufferList->mBuffers[0].mDataByteSize >= pStreamIn->rpos);
466 UInt32 cSize = RT_MIN(*pcPackets * pStreamIn->deviceFormat.mBytesPerPacket,
467 pBufferList->mBuffers[0].mDataByteSize - pStreamIn->rpos);
470 Assert(pStreamIn->deviceFormat.mBytesPerPacket);
471 *pcPackets = cSize / pStreamIn->deviceFormat.mBytesPerPacket;
488 pBufData->mBuffers[0].mData = (uint8_t *)pBufferList->mBuffers[0].mData + pStreamIn->rpos;
490 pStreamIn->rpos += cSize;
506 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pvUser;
507 PPDMAUDIOHSTSTRMIN pHstStrmIN = &pStreamIn->streamIn;
509 if (ASMAtomicReadU32(&pStreamIn->status) != CA_STATUS_INIT)
522 if (pStreamIn->converter)
525 pStreamIn->bufferList.mBuffers[0].mNumberChannels = pStreamIn->deviceFormat.mChannelsPerFrame;
526 pStreamIn->bufferList.mBuffers[0].mDataByteSize = pStreamIn->deviceFormat.mBytesPerFrame * cFrames;
527 AssertBreakStmt(pStreamIn->bufferList.mBuffers[0].mDataByteSize, rc = VERR_INVALID_PARAMETER);
528 pStreamIn->bufferList.mBuffers[0].mData = RTMemAlloc(pStreamIn->bufferList.mBuffers[0].mDataByteSize);
529 if (!pStreamIn->bufferList.mBuffers[0].mData)
535 err = AudioUnitRender(pStreamIn->audioUnit, pActionFlags, pAudioTS, uBusID, cFrames, &pStreamIn->bufferList);
543 size_t cbAvail = RT_MIN(RTCircBufFree(pStreamIn->pBuf), pStreamIn->bufferList.mBuffers[0].mDataByteSize);
548 tmpList.mBuffers[0].mNumberChannels = pStreamIn->streamFormat.mChannelsPerFrame;
556 RTCircBufAcquireWriteBlock(pStreamIn->pBuf, cbAvail, (void **)&puDst, &cbToWrite);
561 Assert(pStreamIn->streamFormat.mBytesPerPacket);
563 UInt32 ioOutputDataPacketSize = cbToWrite / pStreamIn->streamFormat.mBytesPerPacket;
569 AudioConverterReset(pStreamIn->converter);
571 err = AudioConverterFillComplexBuffer(pStreamIn->converter, drvHostCoreAudioConverterCallback, pStreamIn,
583 cbToWrite = ioOutputDataPacketSize * pStreamIn->streamFormat.mBytesPerPacket;
586 RTCircBufReleaseWriteBlock(pStreamIn->pBuf, cbToWrite);
599 pStreamIn->bufferList.mBuffers[0].mNumberChannels = pStreamIn->streamFormat.mChannelsPerFrame;
600 pStreamIn->bufferList.mBuffers[0].mDataByteSize = pStreamIn->streamFormat.mBytesPerFrame * cFrames;
601 AssertBreakStmt(pStreamIn->bufferList.mBuffers[0].mDataByteSize, rc = VERR_INVALID_PARAMETER);
602 pStreamIn->bufferList.mBuffers[0].mData = RTMemAlloc(pStreamIn->bufferList.mBuffers[0].mDataByteSize);
603 if (!pStreamIn->bufferList.mBuffers[0].mData)
609 err = AudioUnitRender(pStreamIn->audioUnit, pActionFlags, pAudioTS, uBusID, cFrames, &pStreamIn->bufferList);
617 size_t cbAvail = RT_MIN(RTCircBufFree(pStreamIn->pBuf), pStreamIn->bufferList.mBuffers[0].mDataByteSize);
626 RTCircBufAcquireWriteBlock(pStreamIn->pBuf, cbAvail, (void **)&puDst, &cbToWrite);
631 memcpy(puDst, (uint8_t *)pStreamIn->bufferList.mBuffers[0].mData + cbWrittenTotal, cbToWrite);
634 RTCircBufReleaseWriteBlock(pStreamIn->pBuf, cbToWrite);
645 if (pStreamIn->bufferList.mBuffers[0].mData)
647 RTMemFree(pStreamIn->bufferList.mBuffers[0].mData);
648 pStreamIn->bufferList.mBuffers[0].mData = NULL;
659 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pHstStrmIn;
661 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_IN_INIT);
664 if (pStreamIn->deviceID == kAudioDeviceUnknown)
669 uSize = sizeof(pStreamIn->deviceID);
670 err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &propAdr, 0, NULL, &uSize, &pStreamIn->deviceID);
686 err = AudioObjectGetPropertyData(pStreamIn->deviceID, &propAdr, 0, NULL, &uSize, &strTemp);
697 err = AudioObjectGetPropertyData(pStreamIn->deviceID, &propAdr, 0, NULL, &uSize, &strTemp);
722 err = AudioObjectGetPropertyData(pStreamIn->deviceID, &propAdr, 0, NULL, &uSize, &cFrames);
730 err = drvHostCoreAudioSetFrameBufferSize(pStreamIn->deviceID, true /* fInput */, cFrames, &cFrames);
752 err = OpenAComponent(cp, &pStreamIn->audioUnit);
761 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input,
771 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output,
780 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global,
781 0, &pStreamIn->deviceID, sizeof(pStreamIn->deviceID));
795 cb.inputProcRefCon = pStreamIn;
797 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global,
806 uSize = sizeof(pStreamIn->deviceFormat);
807 err = AudioUnitGetProperty(pStreamIn->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input,
808 1, &pStreamIn->deviceFormat, &uSize);
816 drvHostCoreAudioPCMInfoToASBDesc(&pStreamIn->streamIn.Props, &pStreamIn->streamFormat);
819 drvHostCoreAudioPrintASBDesc("CoreAudio: Input device", &pStreamIn->deviceFormat);
820 drvHostCoreAudioPrintASBDesc("CoreAudio: Input stream", &pStreamIn->streamFormat);
825 if ( pStreamIn->deviceFormat.mSampleRate != pStreamIn->streamFormat.mSampleRate
826 || pStreamIn->deviceFormat.mChannelsPerFrame != pStreamIn->streamFormat.mChannelsPerFrame)
828 err = AudioConverterNew(&pStreamIn->deviceFormat, &pStreamIn->streamFormat, &pStreamIn->converter);
832 err, pStreamIn->deviceFormat, pStreamIn->streamFormat));
836 if ( pStreamIn->deviceFormat.mChannelsPerFrame == 1 /* Mono */
837 && pStreamIn->streamFormat.mChannelsPerFrame == 2 /* Stereo */)
848 err = AudioConverterSetProperty(pStreamIn->converter, kAudioConverterChannelMap, sizeof(channelMap), channelMap);
857 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input,
858 1, &pStreamIn->deviceFormat, sizeof(pStreamIn->deviceFormat));
867 err = AudioConverterSetProperty(pStreamIn->converter, kAudioConverterSampleRateConverterQuality,
876 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output,
877 1, &pStreamIn->deviceFormat, sizeof(pStreamIn->deviceFormat));
889 err = AudioUnitSetProperty(pStreamIn->audioUnit, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global,
897 err = AudioUnitInitialize(pStreamIn->audioUnit);
904 uSize = sizeof(pStreamIn->deviceFormat);
905 err = AudioUnitGetProperty(pStreamIn->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output,
906 1, &pStreamIn->deviceFormat, &uSize);
919 err = AudioUnitGetProperty(pStreamIn->audioUnit, kAudioUnitProperty_MaximumFramesPerSlice,kAudioUnitScope_Global,
928 pStreamIn->sampleRatio = pStreamIn->streamFormat.mSampleRate / pStreamIn->deviceFormat.mSampleRate;
931 pStreamIn->pBuf = NULL;
933 pStreamIn->bufferList.mNumberBuffers = 1;
935 pStreamIn->bufferList.mBuffers[0].mNumberChannels = pStreamIn->streamFormat.mChannelsPerFrame;
936 pStreamIn->bufferList.mBuffers[0].mDataByteSize = 0;
937 pStreamIn->bufferList.mBuffers[0].mData = NULL;
948 UInt32 cSamples = cFrames * pStreamIn->streamFormat.mChannelsPerFrame;
957 rc = RTCircBufCreate(&pStreamIn->pBuf, cSamples << pHstStrmIn->Props.cShift);
963 err = AudioObjectAddPropertyListener(pStreamIn->deviceID, &propAdr,
964 drvHostCoreAudioRecordingAudioDevicePropertyChanged, (void *)pStreamIn);
970 err = AudioObjectAddPropertyListener(pStreamIn->deviceID, &propAdr,
971 drvHostCoreAudioRecordingAudioDevicePropertyChanged, (void *)pStreamIn);
979 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_INIT);
986 AudioUnitUninitialize(pStreamIn->audioUnit);
988 if (pStreamIn->pBuf)
990 RTCircBufDestroy(pStreamIn->pBuf);
991 pStreamIn->pBuf = NULL;
1300 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pHstStrmIn;
1307 if (ASMAtomicReadU32(&pStreamIn->status) == CA_STATUS_REINIT)
1308 drvHostCoreAudioReinitInput(pInterface, &pStreamIn->streamIn);
1310 if (ASMAtomicReadU32(&pStreamIn->status) != CA_STATUS_INIT)
1323 size_t cbToWrite = RT_MIN(cbBuf, RTCircBufFree(pStreamIn->pBuf));
1333 RTCircBufAcquireReadBlock(pStreamIn->pBuf, cbToWrite, (void **)&puBuf, &cbToRead);
1336 RTCircBufReleaseReadBlock(pStreamIn->pBuf, cbToRead);
1347 RTCircBufReleaseReadBlock(pStreamIn->pBuf, cbWritten);
1612 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pHstStrmIn;
1616 uint32_t uStatus = ASMAtomicReadU32(&pStreamIn->status);
1631 if (!drvHostCoreAudioIsRunning(pStreamIn->deviceID))
1633 RTCircBufReset(pStreamIn->pBuf);
1634 err = AudioOutputUnitStart(pStreamIn->audioUnit);
1654 if (drvHostCoreAudioIsRunning(pStreamIn->deviceID))
1656 err = AudioOutputUnitStop(pStreamIn->audioUnit);
1664 err = AudioUnitReset(pStreamIn->audioUnit, kAudioUnitScope_Input, 0);
1686 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN) pHstStrmIn;
1693 uint32_t status = ASMAtomicReadU32(&pStreamIn->status);
1702 int rc = drvHostCoreAudioControlIn(pInterface, &pStreamIn->streamIn, PDMAUDIOSTREAMCMD_DISABLE);
1705 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_IN_UNINIT);
1713 err = AudioObjectRemovePropertyListener(pStreamIn->deviceID, &propAdr,
1721 err = AudioObjectRemovePropertyListener(pStreamIn->deviceID, &propAdr,
1727 if (pStreamIn->fDefDevChgListReg)
1730 err = AudioObjectRemovePropertyListener(pStreamIn->deviceID, &propAdr,
1734 pStreamIn->fDefDevChgListReg = false;
1740 if (pStreamIn->converter)
1742 AudioConverterDispose(pStreamIn->converter);
1743 pStreamIn->converter = NULL;
1746 err = AudioUnitUninitialize(pStreamIn->audioUnit);
1749 err = CloseComponent(pStreamIn->audioUnit);
1752 RTCircBufDestroy(pStreamIn->pBuf);
1754 pStreamIn->audioUnit = NULL;
1755 pStreamIn->deviceID = kAudioDeviceUnknown;
1756 pStreamIn->pBuf = NULL;
1757 pStreamIn->sampleRatio = 1;
1758 pStreamIn->rpos = 0;
1760 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_UNINIT);
1859 PCOREAUDIOSTREAMIN pStreamIn = (PCOREAUDIOSTREAMIN)pHstStrmIn;
1863 ASMAtomicXchgU32(&pStreamIn->status, CA_STATUS_UNINIT);
1865 pStreamIn->audioUnit = NULL;
1866 pStreamIn->deviceID = kAudioDeviceUnknown;
1867 pStreamIn->converter = NULL;
1868 pStreamIn->sampleRatio = 1;
1869 pStreamIn->rpos = 0;
1874 int rc = drvAudioStreamCfgToProps(pCfg, &pStreamIn->streamIn.Props);
1881 pStreamIn->deviceID = drvHostCoreAudioDeviceUIDtoID(DeviceUID.pszInputDeviceUID);
1883 if (pStreamIn->deviceID == kAudioDeviceUnknown)
1889 rc = drvHostCoreAudioInitInput(&pStreamIn->streamIn, pcSamples);
1900 drvHostCoreAudioDefaultDeviceChanged, (void *)pStreamIn);
1904 pStreamIn->fDefDevChgListReg = true;