diff options
-rw-r--r-- | include/media/AudioRecord.h | 9 | ||||
-rw-r--r-- | include/media/AudioSystem.h | 2 | ||||
-rw-r--r-- | include/media/IAudioPolicyService.h | 2 | ||||
-rw-r--r-- | include/media/stagefright/AudioSource.h | 2 | ||||
-rw-r--r-- | media/libmedia/AudioRecord.cpp | 10 | ||||
-rw-r--r-- | media/libmedia/AudioSystem.cpp | 2 | ||||
-rw-r--r-- | media/libmedia/IAudioPolicyService.cpp | 6 | ||||
-rw-r--r-- | media/libstagefright/AudioSource.cpp | 2 | ||||
-rw-r--r-- | services/audioflinger/AudioPolicyService.cpp | 8 | ||||
-rw-r--r-- | services/audioflinger/AudioPolicyService.h | 2 |
10 files changed, 24 insertions, 21 deletions
diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h index 756e91d..76ec3b1 100644 --- a/include/media/AudioRecord.h +++ b/include/media/AudioRecord.h @@ -149,7 +149,7 @@ public: RECORD_IIR_ENABLE = AUDIO_IN_ACOUSTICS_TX_IIR_ENABLE, }; - AudioRecord(int inputSource, + AudioRecord(audio_source_t inputSource, uint32_t sampleRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channelMask = AUDIO_CHANNEL_IN_MONO, @@ -175,7 +175,7 @@ public: * - NO_INIT: audio server or audio hardware not initialized * - PERMISSION_DENIED: recording is not allowed for the requesting process * */ - status_t set(int inputSource = 0, + status_t set(audio_source_t inputSource = AUDIO_SOURCE_DEFAULT, uint32_t sampleRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channelMask = AUDIO_CHANNEL_IN_MONO, @@ -208,7 +208,7 @@ public: int channels() const; uint32_t frameCount() const; size_t frameSize() const; - int inputSource() const; + audio_source_t inputSource() const; /* After it's created the track is not active. Call start() to @@ -367,8 +367,7 @@ private: audio_track_cblk_t* mCblk; audio_format_t mFormat; uint8_t mChannelCount; - uint8_t mInputSource; - uint8_t mReserved[2]; + audio_source_t mInputSource; status_t mStatus; uint32_t mLatency; diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index c6368fb..6b12c14 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -163,7 +163,7 @@ public: audio_stream_type_t stream, int session = 0); static void releaseOutput(audio_io_handle_t output); - static audio_io_handle_t getInput(int inputSource, + static audio_io_handle_t getInput(audio_source_t inputSource, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = AUDIO_CHANNEL_IN_MONO, diff --git a/include/media/IAudioPolicyService.h b/include/media/IAudioPolicyService.h index 07d17c5..4d88297 100644 --- a/include/media/IAudioPolicyService.h +++ b/include/media/IAudioPolicyService.h @@ -60,7 +60,7 @@ public: audio_stream_type_t stream, int session = 0) = 0; virtual void releaseOutput(audio_io_handle_t output) = 0; - virtual audio_io_handle_t getInput(int inputSource, + virtual audio_io_handle_t getInput(audio_source_t inputSource, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = 0, diff --git a/include/media/stagefright/AudioSource.h b/include/media/stagefright/AudioSource.h index 19bd31b..2427e2f 100644 --- a/include/media/stagefright/AudioSource.h +++ b/include/media/stagefright/AudioSource.h @@ -34,7 +34,7 @@ struct AudioSource : public MediaSource, public MediaBufferObserver { // Note that the "channels" parameter is _not_ the number of channels, // but a bitmask of audio_channels_t constants. AudioSource( - int inputSource, uint32_t sampleRate, + audio_source_t inputSource, uint32_t sampleRate, uint32_t channels = AUDIO_CHANNEL_IN_MONO); status_t initCheck() const; diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp index 5b5b076..2b3ea38 100644 --- a/media/libmedia/AudioRecord.cpp +++ b/media/libmedia/AudioRecord.cpp @@ -84,7 +84,7 @@ AudioRecord::AudioRecord() } AudioRecord::AudioRecord( - int inputSource, + audio_source_t inputSource, uint32_t sampleRate, audio_format_t format, uint32_t channelMask, @@ -119,7 +119,7 @@ AudioRecord::~AudioRecord() } status_t AudioRecord::set( - int inputSource, + audio_source_t inputSource, uint32_t sampleRate, audio_format_t format, uint32_t channelMask, @@ -228,7 +228,7 @@ status_t AudioRecord::set( mMarkerReached = false; mNewPosition = 0; mUpdatePeriod = 0; - mInputSource = (uint8_t)inputSource; + mInputSource = inputSource; mFlags = flags; mInput = input; AudioSystem::acquireAudioSessionId(mSessionId); @@ -272,9 +272,9 @@ size_t AudioRecord::frameSize() const } } -int AudioRecord::inputSource() const +audio_source_t AudioRecord::inputSource() const { - return (int)mInputSource; + return mInputSource; } // ------------------------------------------------------------------------- diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index 952d634..124032b 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -630,7 +630,7 @@ void AudioSystem::releaseOutput(audio_io_handle_t output) aps->releaseOutput(output); } -audio_io_handle_t AudioSystem::getInput(int inputSource, +audio_io_handle_t AudioSystem::getInput(audio_source_t inputSource, uint32_t samplingRate, audio_format_t format, uint32_t channels, diff --git a/media/libmedia/IAudioPolicyService.cpp b/media/libmedia/IAudioPolicyService.cpp index b5c857f..99385aa 100644 --- a/media/libmedia/IAudioPolicyService.cpp +++ b/media/libmedia/IAudioPolicyService.cpp @@ -172,7 +172,7 @@ public: } virtual audio_io_handle_t getInput( - int inputSource, + audio_source_t inputSource, uint32_t samplingRate, audio_format_t format, uint32_t channels, @@ -181,7 +181,7 @@ public: { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); - data.writeInt32(inputSource); + data.writeInt32((int32_t) inputSource); data.writeInt32(samplingRate); data.writeInt32(static_cast <uint32_t>(format)); data.writeInt32(channels); @@ -461,7 +461,7 @@ status_t BnAudioPolicyService::onTransact( case GET_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); - int inputSource = data.readInt32(); + audio_source_t inputSource = (audio_source_t) data.readInt32(); uint32_t samplingRate = data.readInt32(); audio_format_t format = (audio_format_t) data.readInt32(); uint32_t channels = data.readInt32(); diff --git a/media/libstagefright/AudioSource.cpp b/media/libstagefright/AudioSource.cpp index 2172cc0..8bdb7c5 100644 --- a/media/libstagefright/AudioSource.cpp +++ b/media/libstagefright/AudioSource.cpp @@ -47,7 +47,7 @@ static void AudioRecordCallbackFunction(int event, void *user, void *info) { } AudioSource::AudioSource( - int inputSource, uint32_t sampleRate, uint32_t channels) + audio_source_t inputSource, uint32_t sampleRate, uint32_t channels) : mStarted(false), mSampleRate(sampleRate), mPrevSampleTimeUs(0), diff --git a/services/audioflinger/AudioPolicyService.cpp b/services/audioflinger/AudioPolicyService.cpp index 28b1c89..2df1385 100644 --- a/services/audioflinger/AudioPolicyService.cpp +++ b/services/audioflinger/AudioPolicyService.cpp @@ -287,7 +287,7 @@ void AudioPolicyService::releaseOutput(audio_io_handle_t output) mpAudioPolicy->release_output(mpAudioPolicy, output); } -audio_io_handle_t AudioPolicyService::getInput(int inputSource, +audio_io_handle_t AudioPolicyService::getInput(audio_source_t inputSource, uint32_t samplingRate, audio_format_t format, uint32_t channels, @@ -297,6 +297,10 @@ audio_io_handle_t AudioPolicyService::getInput(int inputSource, if (mpAudioPolicy == NULL) { return 0; } + // already checked by client, but double-check in case the client wrapper is bypassed + if (uint32_t(inputSource) >= AUDIO_SOURCE_CNT) { + return 0; + } Mutex::Autolock _l(mLock); audio_io_handle_t input = mpAudioPolicy->get_input(mpAudioPolicy, inputSource, samplingRate, format, channels, acoustics); @@ -305,7 +309,7 @@ audio_io_handle_t AudioPolicyService::getInput(int inputSource, return input; } // create audio pre processors according to input source - ssize_t index = mInputSources.indexOfKey((audio_source_t)inputSource); + ssize_t index = mInputSources.indexOfKey(inputSource); if (index < 0) { return input; } diff --git a/services/audioflinger/AudioPolicyService.h b/services/audioflinger/AudioPolicyService.h index 9811670..3c0f5ed 100644 --- a/services/audioflinger/AudioPolicyService.h +++ b/services/audioflinger/AudioPolicyService.h @@ -74,7 +74,7 @@ public: audio_stream_type_t stream, int session = 0); virtual void releaseOutput(audio_io_handle_t output); - virtual audio_io_handle_t getInput(int inputSource, + virtual audio_io_handle_t getInput(audio_source_t inputSource, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = 0, |