From ac3e9db88ddb1f24bc6c8fb744a37dfdeec332bb Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Thu, 6 Mar 2014 08:00:31 -0800 Subject: Add mFrameSize but do not remove mFrameBitShift yet Change-Id: Icb1edefeb6a0e659503f6b7a92c9d15784df9865 --- include/media/nbaio/NBAIO.h | 4 +++- include/media/nbaio/SourceAudioBufferProvider.h | 1 + media/libnbaio/AudioStreamInSource.cpp | 1 + media/libnbaio/AudioStreamOutSink.cpp | 1 + media/libnbaio/SourceAudioBufferProvider.cpp | 3 ++- 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/media/nbaio/NBAIO.h b/include/media/nbaio/NBAIO.h index 56896b9..be91c3a 100644 --- a/include/media/nbaio/NBAIO.h +++ b/include/media/nbaio/NBAIO.h @@ -126,7 +126,8 @@ public: protected: NBAIO_Port(const NBAIO_Format& format) : mNegotiated(false), mFormat(format), - mBitShift(Format_frameBitShift(format)) { } + mBitShift(Format_frameBitShift(format)), + mFrameSize(Format_frameSize(format)) { } virtual ~NBAIO_Port() { } // Implementations are free to ignore these if they don't need them @@ -134,6 +135,7 @@ protected: bool mNegotiated; // mNegotiated implies (mFormat != Format_Invalid) NBAIO_Format mFormat; // (mFormat != Format_Invalid) does not imply mNegotiated size_t mBitShift; // assign in parallel with any assignment to mFormat + size_t mFrameSize; // assign in parallel with any assignment to mFormat }; // Abstract class (interface) representing a non-blocking data sink, for use by a data provider. diff --git a/include/media/nbaio/SourceAudioBufferProvider.h b/include/media/nbaio/SourceAudioBufferProvider.h index cdfb6fe..7357aa5 100644 --- a/include/media/nbaio/SourceAudioBufferProvider.h +++ b/include/media/nbaio/SourceAudioBufferProvider.h @@ -42,6 +42,7 @@ public: private: const sp mSource; // the wrapped source /*const*/ size_t mFrameBitShift; // log2(frame size in bytes) + /*const*/ size_t mFrameSize; // frame size in bytes void* mAllocated; // pointer to base of allocated memory size_t mSize; // size of mAllocated in frames size_t mOffset; // frame offset within mAllocated of valid data diff --git a/media/libnbaio/AudioStreamInSource.cpp b/media/libnbaio/AudioStreamInSource.cpp index ae8fac8..ca7b8e0 100644 --- a/media/libnbaio/AudioStreamInSource.cpp +++ b/media/libnbaio/AudioStreamInSource.cpp @@ -49,6 +49,7 @@ ssize_t AudioStreamInSource::negotiate(const NBAIO_Format offers[], size_t numOf (audio_channel_mask_t) mStream->common.get_channels(&mStream->common); mFormat = Format_from_SR_C(sampleRate, popcount(channelMask)); mBitShift = Format_frameBitShift(mFormat); + mFrameSize = Format_frameSize(mFormat); } } return NBAIO_Source::negotiate(offers, numOffers, counterOffers, numCounterOffers); diff --git a/media/libnbaio/AudioStreamOutSink.cpp b/media/libnbaio/AudioStreamOutSink.cpp index aa9810e..5158f01 100644 --- a/media/libnbaio/AudioStreamOutSink.cpp +++ b/media/libnbaio/AudioStreamOutSink.cpp @@ -46,6 +46,7 @@ ssize_t AudioStreamOutSink::negotiate(const NBAIO_Format offers[], size_t numOff (audio_channel_mask_t) mStream->common.get_channels(&mStream->common); mFormat = Format_from_SR_C(sampleRate, popcount(channelMask)); mBitShift = Format_frameBitShift(mFormat); + mFrameSize = Format_frameSize(mFormat); } } return NBAIO_Sink::negotiate(offers, numOffers, counterOffers, numCounterOffers); diff --git a/media/libnbaio/SourceAudioBufferProvider.cpp b/media/libnbaio/SourceAudioBufferProvider.cpp index 062fa0f..0e77795 100644 --- a/media/libnbaio/SourceAudioBufferProvider.cpp +++ b/media/libnbaio/SourceAudioBufferProvider.cpp @@ -24,7 +24,7 @@ namespace android { SourceAudioBufferProvider::SourceAudioBufferProvider(const sp& source) : mSource(source), - // mFrameBitShiftFormat below + // mFrameSize below mAllocated(NULL), mSize(0), mOffset(0), mRemaining(0), mGetCount(0), mFramesReleased(0) { ALOG_ASSERT(source != 0); @@ -38,6 +38,7 @@ SourceAudioBufferProvider::SourceAudioBufferProvider(const sp& sou index = source->negotiate(counterOffers, 1, NULL, numCounterOffers); ALOG_ASSERT(index == 0); mFrameBitShift = Format_frameBitShift(source->format()); + mFrameSize = Format_frameSize(source->format()); } SourceAudioBufferProvider::~SourceAudioBufferProvider() -- cgit v1.1