summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/AudioFlinger.h
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-11-16 12:01:44 -0800
committerGlenn Kasten <gkasten@google.com>2012-11-16 14:16:15 -0800
commit26c77556efc30800466b60b3975bc35a70c8c28b (patch)
tree71f2a577ff2969ecfea36d73c7931e8afbb14fed /services/audioflinger/AudioFlinger.h
parenta1c1a7e4c9cb37726e4afc10d6678666087f8e1d (diff)
downloadframeworks_av-26c77556efc30800466b60b3975bc35a70c8c28b.zip
frameworks_av-26c77556efc30800466b60b3975bc35a70c8c28b.tar.gz
frameworks_av-26c77556efc30800466b60b3975bc35a70c8c28b.tar.bz2
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
Diffstat (limited to 'services/audioflinger/AudioFlinger.h')
-rw-r--r--services/audioflinger/AudioFlinger.h12
1 files changed, 7 insertions, 5 deletions
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<Track> >& tracksToRemove);
- virtual uint32_t correctLatency(uint32_t latency) const;
+ virtual uint32_t correctLatency_l(uint32_t latency) const;
AudioMixer* mAudioMixer; // normal mixer
private: