summaryrefslogtreecommitdiffstats
path: root/include/media/AudioTrack.h
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-01-13 10:37:17 -0800
committerGlenn Kasten <gkasten@google.com>2014-01-14 14:20:18 -0800
commit23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9 (patch)
tree13f9b25c2dcc70506e3c743c817fce0998021be9 /include/media/AudioTrack.h
parent84fba38b60c2ddb02b9a787f56be88fc084b4a16 (diff)
downloadframeworks_av-23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9.zip
frameworks_av-23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9.tar.gz
frameworks_av-23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9.tar.bz2
Document locking rules for mFlags, and fix discrepancies
Change-Id: Id45ba544cc84133ed5e578fb4fd8a11b62211dc1
Diffstat (limited to 'include/media/AudioTrack.h')
-rw-r--r--include/media/AudioTrack.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h
index 9fc589d..4fe537f 100644
--- a/include/media/AudioTrack.h
+++ b/include/media/AudioTrack.h
@@ -568,7 +568,7 @@ public:
uint32_t getUnderrunFrames() const;
/* Get the flags */
- audio_output_flags_t getFlags() const { return mFlags; }
+ audio_output_flags_t getFlags() const { AutoMutex _l(mLock); return mFlags; }
/* Set parameters - only possible when using direct output */
status_t setParameters(const String8& keyValuePairs);
@@ -630,6 +630,8 @@ protected:
static const nsecs_t NS_WHENEVER = -1, NS_INACTIVE = -2, NS_NEVER = -3;
nsecs_t processAudioBuffer();
+ bool isOffloaded() const;
+
// caller must hold lock on mLock for all _l methods
status_t createTrack_l(audio_stream_type_t streamType,
@@ -650,7 +652,7 @@ protected:
// FIXME enum is faster than strcmp() for parameter 'from'
status_t restoreTrack_l(const char *from);
- bool isOffloaded() const
+ bool isOffloaded_l() const
{ return (mFlags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) != 0; }
// Next 3 fields may be changed if IAudioTrack is re-created, but always != 0
@@ -720,6 +722,9 @@ protected:
uint32_t mUpdatePeriod; // in frames, zero means no EVENT_NEW_POS
audio_output_flags_t mFlags;
+ // const after set(), except for bits AUDIO_OUTPUT_FLAG_FAST and AUDIO_OUTPUT_FLAG_OFFLOAD.
+ // mLock must be held to read or write those bits reliably.
+
int mSessionId;
int mAuxEffectId;