Loading include/media/AudioBufferProvider.h +11 −1 Original line number Original line Diff line number Diff line Loading @@ -36,8 +36,11 @@ public: size_t frameCount; size_t frameCount; }; }; virtual ~AudioBufferProvider() {} protected: AudioBufferProvider() : mValid(kValid) { } virtual ~AudioBufferProvider() { mValid = kDead; } public: // value representing an invalid presentation timestamp // value representing an invalid presentation timestamp static const int64_t kInvalidPTS = 0x7FFFFFFFFFFFFFFFLL; // <stdint.h> is too painful static const int64_t kInvalidPTS = 0x7FFFFFFFFFFFFFFFLL; // <stdint.h> is too painful Loading @@ -47,6 +50,13 @@ public: virtual status_t getNextBuffer(Buffer* buffer, int64_t pts = kInvalidPTS) = 0; virtual status_t getNextBuffer(Buffer* buffer, int64_t pts = kInvalidPTS) = 0; virtual void releaseBuffer(Buffer* buffer) = 0; virtual void releaseBuffer(Buffer* buffer) = 0; int getValid() const { return mValid; } static const int kValid = 'GOOD'; static const int kDead = 'DEAD'; private: int mValid; }; }; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading services/audioflinger/AudioMixer.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1098,6 +1098,12 @@ void AudioMixer::process__genericNoResampling(state_t* state, int64_t pts) e0 &= ~(1<<i); e0 &= ~(1<<i); track_t& t = state->tracks[i]; track_t& t = state->tracks[i]; t.buffer.frameCount = state->frameCount; t.buffer.frameCount = state->frameCount; int valid = t.bufferProvider->getValid(); if (valid != AudioBufferProvider::kValid) { ALOGE("invalid bufferProvider=%p name=%d frameCount=%d valid=%#x enabledTracks=%#x", t.bufferProvider, i, t.buffer.frameCount, valid, enabledTracks); // expect to crash } t.bufferProvider->getNextBuffer(&t.buffer, pts); t.bufferProvider->getNextBuffer(&t.buffer, pts); t.frameCount = t.buffer.frameCount; t.frameCount = t.buffer.frameCount; t.in = t.buffer.raw; t.in = t.buffer.raw; Loading Loading
include/media/AudioBufferProvider.h +11 −1 Original line number Original line Diff line number Diff line Loading @@ -36,8 +36,11 @@ public: size_t frameCount; size_t frameCount; }; }; virtual ~AudioBufferProvider() {} protected: AudioBufferProvider() : mValid(kValid) { } virtual ~AudioBufferProvider() { mValid = kDead; } public: // value representing an invalid presentation timestamp // value representing an invalid presentation timestamp static const int64_t kInvalidPTS = 0x7FFFFFFFFFFFFFFFLL; // <stdint.h> is too painful static const int64_t kInvalidPTS = 0x7FFFFFFFFFFFFFFFLL; // <stdint.h> is too painful Loading @@ -47,6 +50,13 @@ public: virtual status_t getNextBuffer(Buffer* buffer, int64_t pts = kInvalidPTS) = 0; virtual status_t getNextBuffer(Buffer* buffer, int64_t pts = kInvalidPTS) = 0; virtual void releaseBuffer(Buffer* buffer) = 0; virtual void releaseBuffer(Buffer* buffer) = 0; int getValid() const { return mValid; } static const int kValid = 'GOOD'; static const int kDead = 'DEAD'; private: int mValid; }; }; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading
services/audioflinger/AudioMixer.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1098,6 +1098,12 @@ void AudioMixer::process__genericNoResampling(state_t* state, int64_t pts) e0 &= ~(1<<i); e0 &= ~(1<<i); track_t& t = state->tracks[i]; track_t& t = state->tracks[i]; t.buffer.frameCount = state->frameCount; t.buffer.frameCount = state->frameCount; int valid = t.bufferProvider->getValid(); if (valid != AudioBufferProvider::kValid) { ALOGE("invalid bufferProvider=%p name=%d frameCount=%d valid=%#x enabledTracks=%#x", t.bufferProvider, i, t.buffer.frameCount, valid, enabledTracks); // expect to crash } t.bufferProvider->getNextBuffer(&t.buffer, pts); t.bufferProvider->getNextBuffer(&t.buffer, pts); t.frameCount = t.buffer.frameCount; t.frameCount = t.buffer.frameCount; t.in = t.buffer.raw; t.in = t.buffer.raw; Loading