Loading media/libaaudio/src/Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ LOCAL_SRC_FILES = \ core/AudioStream.cpp \ core/AudioStreamBuilder.cpp \ core/AAudioAudio.cpp \ core/AAudioStreamParameters.cpp \ legacy/AudioStreamLegacy.cpp \ legacy/AudioStreamRecord.cpp \ legacy/AudioStreamTrack.cpp \ Loading Loading @@ -90,6 +91,7 @@ LOCAL_C_INCLUDES := \ LOCAL_SRC_FILES = core/AudioStream.cpp \ core/AudioStreamBuilder.cpp \ core/AAudioAudio.cpp \ core/AAudioStreamParameters.cpp \ legacy/AudioStreamLegacy.cpp \ legacy/AudioStreamRecord.cpp \ legacy/AudioStreamTrack.cpp \ Loading media/libaaudio/src/binding/AAudioStreamConfiguration.cpp +20 −50 Original line number Diff line number Diff line Loading @@ -36,17 +36,17 @@ AAudioStreamConfiguration::~AAudioStreamConfiguration() {} status_t AAudioStreamConfiguration::writeToParcel(Parcel* parcel) const { status_t status; status = parcel->writeInt32(mDeviceId); status = parcel->writeInt32(getDeviceId()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mSampleRate); status = parcel->writeInt32(getSampleRate()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mSamplesPerFrame); status = parcel->writeInt32(getSamplesPerFrame()); if (status != NO_ERROR) goto error; status = parcel->writeInt32((int32_t) mSharingMode); status = parcel->writeInt32((int32_t) getSharingMode()); if (status != NO_ERROR) goto error; status = parcel->writeInt32((int32_t) mAudioFormat); status = parcel->writeInt32((int32_t) getFormat()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mBufferCapacity); status = parcel->writeInt32(getBufferCapacity()); if (status != NO_ERROR) goto error; return NO_ERROR; error: Loading @@ -55,57 +55,27 @@ error: } status_t AAudioStreamConfiguration::readFromParcel(const Parcel* parcel) { status_t status = parcel->readInt32(&mDeviceId); int32_t value; status_t status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSampleRate); setDeviceId(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSamplesPerFrame); setSampleRate(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSharingMode); setSamplesPerFrame(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mAudioFormat); setSharingMode(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mBufferCapacity); setFormat(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; setBufferCapacity(value); return NO_ERROR; error: ALOGE("AAudioStreamConfiguration.readFromParcel(): read failed = %d", status); return status; } No newline at end of file aaudio_result_t AAudioStreamConfiguration::validate() const { // Validate results of the open. if (mSampleRate < 0 || mSampleRate >= 8 * 48000) { // TODO review limits ALOGE("AAudioStreamConfiguration.validate(): invalid sampleRate = %d", mSampleRate); return AAUDIO_ERROR_INTERNAL; } if (mSamplesPerFrame < 1 || mSamplesPerFrame >= 32) { // TODO review limits ALOGE("AAudioStreamConfiguration.validate() invalid samplesPerFrame = %d", mSamplesPerFrame); return AAUDIO_ERROR_INTERNAL; } switch (mAudioFormat) { case AAUDIO_FORMAT_PCM_I16: case AAUDIO_FORMAT_PCM_FLOAT: break; default: ALOGE("AAudioStreamConfiguration.validate() invalid audioFormat = %d", mAudioFormat); return AAUDIO_ERROR_INTERNAL; } if (mBufferCapacity < 0) { ALOGE("AAudioStreamConfiguration.validate() invalid mBufferCapacity = %d", mBufferCapacity); return AAUDIO_ERROR_INTERNAL; } return AAUDIO_OK; } void AAudioStreamConfiguration::dump() const { ALOGD("AAudioStreamConfiguration mDeviceId = %d", mDeviceId); ALOGD("AAudioStreamConfiguration mSampleRate = %d", mSampleRate); ALOGD("AAudioStreamConfiguration mSamplesPerFrame = %d", mSamplesPerFrame); ALOGD("AAudioStreamConfiguration mSharingMode = %d", (int)mSharingMode); ALOGD("AAudioStreamConfiguration mAudioFormat = %d", (int)mAudioFormat); ALOGD("AAudioStreamConfiguration mBufferCapacity = %d", mBufferCapacity); } media/libaaudio/src/binding/AAudioStreamConfiguration.h +2 −61 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <aaudio/AAudio.h> #include <binder/Parcel.h> #include <binder/Parcelable.h> #include "core/AAudioStreamParameters.h" using android::status_t; using android::Parcel; Loading @@ -29,74 +30,14 @@ using android::Parcelable; namespace aaudio { class AAudioStreamConfiguration : public Parcelable { class AAudioStreamConfiguration : public AAudioStreamParameters, public Parcelable { public: AAudioStreamConfiguration(); virtual ~AAudioStreamConfiguration(); int32_t getDeviceId() const { return mDeviceId; } void setDeviceId(int32_t deviceId) { mDeviceId = deviceId; } int32_t getSampleRate() const { return mSampleRate; } void setSampleRate(int32_t sampleRate) { mSampleRate = sampleRate; } int32_t getSamplesPerFrame() const { return mSamplesPerFrame; } void setSamplesPerFrame(int32_t samplesPerFrame) { mSamplesPerFrame = samplesPerFrame; } aaudio_format_t getAudioFormat() const { return mAudioFormat; } void setAudioFormat(aaudio_format_t audioFormat) { mAudioFormat = audioFormat; } aaudio_sharing_mode_t getSharingMode() const { return mSharingMode; } void setSharingMode(aaudio_sharing_mode_t sharingMode) { mSharingMode = sharingMode; } int32_t getBufferCapacity() const { return mBufferCapacity; } void setBufferCapacity(int32_t frames) { mBufferCapacity = frames; } virtual status_t writeToParcel(Parcel* parcel) const override; virtual status_t readFromParcel(const Parcel* parcel) override; aaudio_result_t validate() const; void dump() const; private: int32_t mDeviceId = AAUDIO_UNSPECIFIED; int32_t mSampleRate = AAUDIO_UNSPECIFIED; int32_t mSamplesPerFrame = AAUDIO_UNSPECIFIED; aaudio_sharing_mode_t mSharingMode = AAUDIO_SHARING_MODE_SHARED; aaudio_format_t mAudioFormat = AAUDIO_FORMAT_UNSPECIFIED; int32_t mBufferCapacity = AAUDIO_UNSPECIFIED; }; } /* namespace aaudio */ Loading media/libaaudio/src/binding/IAAudioService.cpp +13 −7 Original line number Diff line number Diff line Loading @@ -264,13 +264,19 @@ status_t BnAAudioService::onTransact(uint32_t code, const Parcel& data, case OPEN_STREAM: { CHECK_INTERFACE(IAAudioService, data, reply); request.readFromParcel(&data); result = request.validate(); if (result != AAUDIO_OK) { streamHandle = result; } else { //ALOGD("BnAAudioService::client openStream request dump --------------------"); //request.dump(); // Override the uid and pid from the client in case they are incorrect. request.setUserId(IPCThreadState::self()->getCallingUid()); request.setProcessId(IPCThreadState::self()->getCallingPid()); streamHandle = openStream(request, configuration); //ALOGD("BnAAudioService::onTransact OPEN_STREAM server handle = 0x%08X", streamHandle); //ALOGD("BnAAudioService::onTransact OPEN_STREAM server handle = 0x%08X", // streamHandle); } reply->writeInt32(streamHandle); configuration.writeToParcel(reply); return NO_ERROR; Loading media/libaaudio/src/client/AudioStreamInternal.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ aaudio_result_t AudioStreamInternal::open(const AudioStreamBuilder &builder) { setFormat(AAUDIO_FORMAT_PCM_FLOAT); } // Request FLOAT for the shared mixer. request.getConfiguration().setAudioFormat(AAUDIO_FORMAT_PCM_FLOAT); request.getConfiguration().setFormat(AAUDIO_FORMAT_PCM_FLOAT); // Build the request to send to the server. request.setUserId(getuid()); Loading Loading @@ -119,7 +119,7 @@ aaudio_result_t AudioStreamInternal::open(const AudioStreamBuilder &builder) { setSharingMode(configuration.getSharingMode()); // Save device format so we can do format conversion and volume scaling together. mDeviceFormat = configuration.getAudioFormat(); mDeviceFormat = configuration.getFormat(); result = mServiceInterface.getStreamDescription(mServiceStreamHandle, mEndPointParcelable); if (result != AAUDIO_OK) { Loading Loading
media/libaaudio/src/Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ LOCAL_SRC_FILES = \ core/AudioStream.cpp \ core/AudioStreamBuilder.cpp \ core/AAudioAudio.cpp \ core/AAudioStreamParameters.cpp \ legacy/AudioStreamLegacy.cpp \ legacy/AudioStreamRecord.cpp \ legacy/AudioStreamTrack.cpp \ Loading Loading @@ -90,6 +91,7 @@ LOCAL_C_INCLUDES := \ LOCAL_SRC_FILES = core/AudioStream.cpp \ core/AudioStreamBuilder.cpp \ core/AAudioAudio.cpp \ core/AAudioStreamParameters.cpp \ legacy/AudioStreamLegacy.cpp \ legacy/AudioStreamRecord.cpp \ legacy/AudioStreamTrack.cpp \ Loading
media/libaaudio/src/binding/AAudioStreamConfiguration.cpp +20 −50 Original line number Diff line number Diff line Loading @@ -36,17 +36,17 @@ AAudioStreamConfiguration::~AAudioStreamConfiguration() {} status_t AAudioStreamConfiguration::writeToParcel(Parcel* parcel) const { status_t status; status = parcel->writeInt32(mDeviceId); status = parcel->writeInt32(getDeviceId()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mSampleRate); status = parcel->writeInt32(getSampleRate()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mSamplesPerFrame); status = parcel->writeInt32(getSamplesPerFrame()); if (status != NO_ERROR) goto error; status = parcel->writeInt32((int32_t) mSharingMode); status = parcel->writeInt32((int32_t) getSharingMode()); if (status != NO_ERROR) goto error; status = parcel->writeInt32((int32_t) mAudioFormat); status = parcel->writeInt32((int32_t) getFormat()); if (status != NO_ERROR) goto error; status = parcel->writeInt32(mBufferCapacity); status = parcel->writeInt32(getBufferCapacity()); if (status != NO_ERROR) goto error; return NO_ERROR; error: Loading @@ -55,57 +55,27 @@ error: } status_t AAudioStreamConfiguration::readFromParcel(const Parcel* parcel) { status_t status = parcel->readInt32(&mDeviceId); int32_t value; status_t status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSampleRate); setDeviceId(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSamplesPerFrame); setSampleRate(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mSharingMode); setSamplesPerFrame(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mAudioFormat); setSharingMode(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; status = parcel->readInt32(&mBufferCapacity); setFormat(value); status = parcel->readInt32(&value); if (status != NO_ERROR) goto error; setBufferCapacity(value); return NO_ERROR; error: ALOGE("AAudioStreamConfiguration.readFromParcel(): read failed = %d", status); return status; } No newline at end of file aaudio_result_t AAudioStreamConfiguration::validate() const { // Validate results of the open. if (mSampleRate < 0 || mSampleRate >= 8 * 48000) { // TODO review limits ALOGE("AAudioStreamConfiguration.validate(): invalid sampleRate = %d", mSampleRate); return AAUDIO_ERROR_INTERNAL; } if (mSamplesPerFrame < 1 || mSamplesPerFrame >= 32) { // TODO review limits ALOGE("AAudioStreamConfiguration.validate() invalid samplesPerFrame = %d", mSamplesPerFrame); return AAUDIO_ERROR_INTERNAL; } switch (mAudioFormat) { case AAUDIO_FORMAT_PCM_I16: case AAUDIO_FORMAT_PCM_FLOAT: break; default: ALOGE("AAudioStreamConfiguration.validate() invalid audioFormat = %d", mAudioFormat); return AAUDIO_ERROR_INTERNAL; } if (mBufferCapacity < 0) { ALOGE("AAudioStreamConfiguration.validate() invalid mBufferCapacity = %d", mBufferCapacity); return AAUDIO_ERROR_INTERNAL; } return AAUDIO_OK; } void AAudioStreamConfiguration::dump() const { ALOGD("AAudioStreamConfiguration mDeviceId = %d", mDeviceId); ALOGD("AAudioStreamConfiguration mSampleRate = %d", mSampleRate); ALOGD("AAudioStreamConfiguration mSamplesPerFrame = %d", mSamplesPerFrame); ALOGD("AAudioStreamConfiguration mSharingMode = %d", (int)mSharingMode); ALOGD("AAudioStreamConfiguration mAudioFormat = %d", (int)mAudioFormat); ALOGD("AAudioStreamConfiguration mBufferCapacity = %d", mBufferCapacity); }
media/libaaudio/src/binding/AAudioStreamConfiguration.h +2 −61 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <aaudio/AAudio.h> #include <binder/Parcel.h> #include <binder/Parcelable.h> #include "core/AAudioStreamParameters.h" using android::status_t; using android::Parcel; Loading @@ -29,74 +30,14 @@ using android::Parcelable; namespace aaudio { class AAudioStreamConfiguration : public Parcelable { class AAudioStreamConfiguration : public AAudioStreamParameters, public Parcelable { public: AAudioStreamConfiguration(); virtual ~AAudioStreamConfiguration(); int32_t getDeviceId() const { return mDeviceId; } void setDeviceId(int32_t deviceId) { mDeviceId = deviceId; } int32_t getSampleRate() const { return mSampleRate; } void setSampleRate(int32_t sampleRate) { mSampleRate = sampleRate; } int32_t getSamplesPerFrame() const { return mSamplesPerFrame; } void setSamplesPerFrame(int32_t samplesPerFrame) { mSamplesPerFrame = samplesPerFrame; } aaudio_format_t getAudioFormat() const { return mAudioFormat; } void setAudioFormat(aaudio_format_t audioFormat) { mAudioFormat = audioFormat; } aaudio_sharing_mode_t getSharingMode() const { return mSharingMode; } void setSharingMode(aaudio_sharing_mode_t sharingMode) { mSharingMode = sharingMode; } int32_t getBufferCapacity() const { return mBufferCapacity; } void setBufferCapacity(int32_t frames) { mBufferCapacity = frames; } virtual status_t writeToParcel(Parcel* parcel) const override; virtual status_t readFromParcel(const Parcel* parcel) override; aaudio_result_t validate() const; void dump() const; private: int32_t mDeviceId = AAUDIO_UNSPECIFIED; int32_t mSampleRate = AAUDIO_UNSPECIFIED; int32_t mSamplesPerFrame = AAUDIO_UNSPECIFIED; aaudio_sharing_mode_t mSharingMode = AAUDIO_SHARING_MODE_SHARED; aaudio_format_t mAudioFormat = AAUDIO_FORMAT_UNSPECIFIED; int32_t mBufferCapacity = AAUDIO_UNSPECIFIED; }; } /* namespace aaudio */ Loading
media/libaaudio/src/binding/IAAudioService.cpp +13 −7 Original line number Diff line number Diff line Loading @@ -264,13 +264,19 @@ status_t BnAAudioService::onTransact(uint32_t code, const Parcel& data, case OPEN_STREAM: { CHECK_INTERFACE(IAAudioService, data, reply); request.readFromParcel(&data); result = request.validate(); if (result != AAUDIO_OK) { streamHandle = result; } else { //ALOGD("BnAAudioService::client openStream request dump --------------------"); //request.dump(); // Override the uid and pid from the client in case they are incorrect. request.setUserId(IPCThreadState::self()->getCallingUid()); request.setProcessId(IPCThreadState::self()->getCallingPid()); streamHandle = openStream(request, configuration); //ALOGD("BnAAudioService::onTransact OPEN_STREAM server handle = 0x%08X", streamHandle); //ALOGD("BnAAudioService::onTransact OPEN_STREAM server handle = 0x%08X", // streamHandle); } reply->writeInt32(streamHandle); configuration.writeToParcel(reply); return NO_ERROR; Loading
media/libaaudio/src/client/AudioStreamInternal.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ aaudio_result_t AudioStreamInternal::open(const AudioStreamBuilder &builder) { setFormat(AAUDIO_FORMAT_PCM_FLOAT); } // Request FLOAT for the shared mixer. request.getConfiguration().setAudioFormat(AAUDIO_FORMAT_PCM_FLOAT); request.getConfiguration().setFormat(AAUDIO_FORMAT_PCM_FLOAT); // Build the request to send to the server. request.setUserId(getuid()); Loading Loading @@ -119,7 +119,7 @@ aaudio_result_t AudioStreamInternal::open(const AudioStreamBuilder &builder) { setSharingMode(configuration.getSharingMode()); // Save device format so we can do format conversion and volume scaling together. mDeviceFormat = configuration.getAudioFormat(); mDeviceFormat = configuration.getFormat(); result = mServiceInterface.getStreamDescription(mServiceStreamHandle, mEndPointParcelable); if (result != AAUDIO_OK) { Loading