diff options
Diffstat (limited to 'libs/audioflinger')
| -rw-r--r-- | libs/audioflinger/AudioDumpInterface.cpp | 6 | ||||
| -rw-r--r-- | libs/audioflinger/AudioDumpInterface.h | 1 | ||||
| -rw-r--r-- | libs/audioflinger/AudioFlinger.cpp | 20 | ||||
| -rw-r--r-- | libs/audioflinger/AudioFlinger.h | 2 | ||||
| -rw-r--r-- | libs/audioflinger/AudioHardwareGeneric.h | 1 | ||||
| -rw-r--r-- | libs/audioflinger/AudioHardwareStub.h | 1 |
6 files changed, 31 insertions, 0 deletions
diff --git a/libs/audioflinger/AudioDumpInterface.cpp b/libs/audioflinger/AudioDumpInterface.cpp index 30e2bc9..a018b4c 100644 --- a/libs/audioflinger/AudioDumpInterface.cpp +++ b/libs/audioflinger/AudioDumpInterface.cpp @@ -509,6 +509,12 @@ String8 AudioStreamInDump::getParameters(const String8& keys) return param.toString(); } +unsigned int AudioStreamInDump::getInputFramesLost() const +{ + if (mFinalStream != 0 ) return mFinalStream->getInputFramesLost(); + return 0; +} + status_t AudioStreamInDump::dump(int fd, const Vector<String16>& args) { if (mFinalStream != 0 ) return mFinalStream->dump(fd, args); diff --git a/libs/audioflinger/AudioDumpInterface.h b/libs/audioflinger/AudioDumpInterface.h index 5b9a6b1..4c62b3e 100644 --- a/libs/audioflinger/AudioDumpInterface.h +++ b/libs/audioflinger/AudioDumpInterface.h @@ -94,6 +94,7 @@ public: virtual status_t standby(); virtual status_t setParameters(const String8& keyValuePairs); virtual String8 getParameters(const String8& keys); + virtual unsigned int getInputFramesLost() const; virtual status_t dump(int fd, const Vector<String16>& args); void Close(void); AudioStreamIn* finalStream() { return mFinalStream; } diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp index 9d52882..2269352 100644 --- a/libs/audioflinger/AudioFlinger.cpp +++ b/libs/audioflinger/AudioFlinger.cpp @@ -618,6 +618,21 @@ size_t AudioFlinger::getInputBufferSize(uint32_t sampleRate, int format, int cha return mAudioHardware->getInputBufferSize(sampleRate, format, channelCount); } +unsigned int AudioFlinger::getInputFramesLost(int ioHandle) +{ + if (ioHandle == 0) { + return 0; + } + + Mutex::Autolock _l(mLock); + + RecordThread *recordThread = checkRecordThread_l(ioHandle); + if (recordThread != NULL) { + return recordThread->getInputFramesLost(); + } + return 0; +} + status_t AudioFlinger::setVoiceVolume(float value) { // check calling permissions @@ -3575,6 +3590,11 @@ void AudioFlinger::RecordThread::readInputParameters() mRsmpInIndex = mFrameCount; } +unsigned int AudioFlinger::RecordThread::getInputFramesLost() +{ + return mInput->getInputFramesLost(); +} + // ---------------------------------------------------------------------------- int AudioFlinger::openOutput(uint32_t *pDevices, diff --git a/libs/audioflinger/AudioFlinger.h b/libs/audioflinger/AudioFlinger.h index 44da9ed..739ec33 100644 --- a/libs/audioflinger/AudioFlinger.h +++ b/libs/audioflinger/AudioFlinger.h @@ -108,6 +108,7 @@ public: virtual void registerClient(const sp<IAudioFlingerClient>& client); virtual size_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount); + virtual unsigned int getInputFramesLost(int ioHandle); virtual int openOutput(uint32_t *pDevices, uint32_t *pSamplingRate, @@ -745,6 +746,7 @@ private: virtual String8 getParameters(const String8& keys); virtual void audioConfigChanged(int event, int param = 0); void readInputParameters(); + virtual unsigned int getInputFramesLost(); private: RecordThread(); diff --git a/libs/audioflinger/AudioHardwareGeneric.h b/libs/audioflinger/AudioHardwareGeneric.h index 95c7ea3..aa4e78d 100644 --- a/libs/audioflinger/AudioHardwareGeneric.h +++ b/libs/audioflinger/AudioHardwareGeneric.h @@ -88,6 +88,7 @@ public: virtual status_t standby() { return NO_ERROR; } virtual status_t setParameters(const String8& keyValuePairs); virtual String8 getParameters(const String8& keys); + virtual unsigned int getInputFramesLost() const { return 0; } private: AudioHardwareGeneric *mAudioHardware; diff --git a/libs/audioflinger/AudioHardwareStub.h b/libs/audioflinger/AudioHardwareStub.h index 769ae3f..06a29de 100644 --- a/libs/audioflinger/AudioHardwareStub.h +++ b/libs/audioflinger/AudioHardwareStub.h @@ -57,6 +57,7 @@ public: virtual status_t standby() { return NO_ERROR; } virtual status_t setParameters(const String8& keyValuePairs) { return NO_ERROR;} virtual String8 getParameters(const String8& keys); + virtual unsigned int getInputFramesLost() const { return 0; } }; class AudioHardwareStub : public AudioHardwareBase |
