diff options
author | Glenn Kasten <gkasten@google.com> | 2012-11-12 07:58:20 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-11-12 15:13:34 -0800 |
commit | 83a0382dc17364567667a4e6135db43f5bd92efc (patch) | |
tree | c3738c183fa49d9ccd023e27b37024860ccfff22 /include | |
parent | bc0f6b92bba33ca9c2e76f2a520d290f055da6b2 (diff) | |
download | frameworks_av-83a0382dc17364567667a4e6135db43f5bd92efc.zip frameworks_av-83a0382dc17364567667a4e6135db43f5bd92efc.tar.gz frameworks_av-83a0382dc17364567667a4e6135db43f5bd92efc.tar.bz2 |
Move frame size out of the control block
This is part of a series to clean up the control block.
Change-Id: Ifab1c42ac0f8be704e571b292713cd2250d12a3f
Diffstat (limited to 'include')
-rw-r--r-- | include/media/AudioRecord.h | 3 | ||||
-rw-r--r-- | include/media/AudioTrack.h | 9 | ||||
-rw-r--r-- | include/private/media/AudioTrackShared.h | 7 |
3 files changed, 12 insertions, 7 deletions
diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h index bfb5d3a..2672db1 100644 --- a/include/media/AudioRecord.h +++ b/include/media/AudioRecord.h @@ -185,7 +185,7 @@ public: audio_format_t format() const; int channelCount() const; uint32_t frameCount() const; - size_t frameSize() const; + size_t frameSize() const { return mFrameSize; } audio_source_t inputSource() const; @@ -378,6 +378,7 @@ private: uint32_t mFrameCount; audio_format_t mFormat; uint8_t mChannelCount; + size_t mFrameSize; // app-level frame size == AudioFlinger frame size audio_source_t mInputSource; status_t mStatus; uint32_t mLatency; diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h index 639b567..3504f1f 100644 --- a/include/media/AudioTrack.h +++ b/include/media/AudioTrack.h @@ -229,7 +229,7 @@ public: /* Return channelCount * (bit depth per channel / 8). * channelCount is determined from channelMask, and bit depth comes from format. */ - size_t frameSize() const; + size_t frameSize() const { return mFrameSize; } sp<IMemory>& sharedBuffer(); @@ -517,6 +517,13 @@ protected: uint8_t mMuted; uint8_t mReserved; audio_channel_mask_t mChannelMask; + + // mFrameSize is equal to mFrameSizeAF for non-PCM or 16-bit PCM data. + // For 8-bit PCM data, mFrameSizeAF is + // twice as large because data is expanded to 16-bit before being stored in buffer. + size_t mFrameSize; // app-level frame size + size_t mFrameSizeAF; // AudioFlinger frame size + status_t mStatus; uint32_t mLatency; diff --git a/include/private/media/AudioTrackShared.h b/include/private/media/AudioTrackShared.h index 8ef90c7..ac5372f 100644 --- a/include/private/media/AudioTrackShared.h +++ b/include/private/media/AudioTrackShared.h @@ -77,12 +77,9 @@ public: uint32_t sampleRate; - // NOTE: audio_track_cblk_t::frameSize is not equal to AudioTrack::frameSize() for - // 8 bit PCM data: in this case, mCblk->frameSize is based on a sample size of - // 16 bit because data is converted to 16 bit before being stored in buffer + uint8_t mPad2; // unused // read-only for client, server writes once at initialization and is then read-only - uint8_t frameSize; // would normally be size_t, but 8 bits is plenty uint8_t mName; // normal tracks: track name, fast tracks: track index // used by client only @@ -111,7 +108,7 @@ public: // if there is a shared buffer, "buffers" is the value of pointer() for the shared // buffer, otherwise "buffers" points immediately after the control block - void* buffer(void *buffers, uint32_t offset) const; + void* buffer(void *buffers, uint32_t frameSize, uint32_t offset) const; uint32_t framesAvailableIn() { return framesAvailable(false); } uint32_t framesAvailableOut() { return framesAvailable(true); } |