From c26d923712a59e669d18191d93fbe3696789d592 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Fri, 9 May 2014 13:37:29 -0700 Subject: Allow placement of Pipe buffer to be specified Change-Id: I2f6b68089ecfe85cd975d29ad0d0afd13c487002 --- include/media/nbaio/Pipe.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/media/nbaio/Pipe.h b/include/media/nbaio/Pipe.h index c784129..eba37bc 100644 --- a/include/media/nbaio/Pipe.h +++ b/include/media/nbaio/Pipe.h @@ -30,7 +30,11 @@ class Pipe : public NBAIO_Sink { public: // maxFrames will be rounded up to a power of 2, and all slots are available. Must be >= 2. - Pipe(size_t maxFrames, const NBAIO_Format& format); + // buffer is an optional parameter specifying the virtual address of the pipe buffer, + // which must be of size roundup(maxFrames) * Format_frameSize(format) bytes. + Pipe(size_t maxFrames, const NBAIO_Format& format, void *buffer = NULL); + + // If a buffer was specified in the constructor, it is not automatically freed by destructor. virtual ~Pipe(); // NBAIO_Port interface @@ -57,6 +61,7 @@ private: void * const mBuffer; volatile int32_t mRear; // written by android_atomic_release_store volatile int32_t mReaders; // number of PipeReader clients currently attached to this Pipe + const bool mFreeBufferInDestructor; }; } // namespace android -- cgit v1.1