From 26c77556efc30800466b60b3975bc35a70c8c28b Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Fri, 16 Nov 2012 12:01:44 -0800 Subject: Fix time vs. bytes units bug in getRenderPosition Rename correctLatency since it requires thread to be locked. Use size_t for byte and frame counts. Change-Id: I178fdd18bdb823813b9563927bdff8c0d28ca5a5 --- services/audioflinger/AudioFlinger.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'services/audioflinger/AudioFlinger.h') diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 830dfe9..50dbd27 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -174,7 +174,7 @@ public: virtual status_t setVoiceVolume(float volume); - virtual status_t getRenderPosition(uint32_t *halFrames, uint32_t *dspFrames, + virtual status_t getRenderPosition(size_t *halFrames, size_t *dspFrames, audio_io_handle_t output) const; virtual unsigned int getInputFramesLost(audio_io_handle_t ioHandle) const; @@ -1125,7 +1125,7 @@ public: virtual String8 getParameters(const String8& keys); virtual void audioConfigChanged_l(int event, int param = 0); - status_t getRenderPosition(uint32_t *halFrames, uint32_t *dspFrames); + status_t getRenderPosition(size_t *halFrames, size_t *dspFrames); int16_t *mixBuffer() const { return mMixBuffer; }; virtual void detachAuxEffect_l(int effectId); @@ -1155,7 +1155,9 @@ public: // 'volatile' means accessed via atomic operations and no lock. volatile int32_t mSuspended; - int mBytesWritten; + // FIXME overflows every 6+ hours at 44.1 kHz stereo 16-bit samples + // mFramesWritten would be better, or 64-bit even better + size_t mBytesWritten; private: // mMasterMute is in both PlaybackThread and in AudioFlinger. When a // PlaybackThread needs to find out if master-muted, it checks it's local @@ -1187,7 +1189,7 @@ public: // Cache various calculated values, at threadLoop() entry and after a parameter change virtual void cacheParameters_l(); - virtual uint32_t correctLatency(uint32_t latency) const; + virtual uint32_t correctLatency_l(uint32_t latency) const; private: @@ -1296,7 +1298,7 @@ public: virtual void threadLoop_mix(); virtual void threadLoop_sleepTime(); virtual void threadLoop_removeTracks(const Vector< sp >& tracksToRemove); - virtual uint32_t correctLatency(uint32_t latency) const; + virtual uint32_t correctLatency_l(uint32_t latency) const; AudioMixer* mAudioMixer; // normal mixer private: -- cgit v1.1