diff options
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/AudioEffect.h | 1 | ||||
-rw-r--r-- | include/media/stagefright/MediaBuffer.h | 8 | ||||
-rw-r--r-- | include/media/stagefright/foundation/ABuffer.h | 6 | ||||
-rw-r--r-- | include/media/stagefright/foundation/MediaBufferBase.h | 40 |
4 files changed, 52 insertions, 3 deletions
diff --git a/include/media/AudioEffect.h b/include/media/AudioEffect.h index f98002d..4932d40 100644 --- a/include/media/AudioEffect.h +++ b/include/media/AudioEffect.h @@ -449,6 +449,7 @@ private: sp<EffectClient> mIEffectClient; // IEffectClient implementation sp<IMemory> mCblkMemory; // shared memory for deferred parameter setting effect_param_cblk_t* mCblk; // control block for deferred parameter setting + pid_t mClientPid; }; diff --git a/include/media/stagefright/MediaBuffer.h b/include/media/stagefright/MediaBuffer.h index 3d79596..c8a50e8 100644 --- a/include/media/stagefright/MediaBuffer.h +++ b/include/media/stagefright/MediaBuffer.h @@ -18,6 +18,8 @@ #define MEDIA_BUFFER_H_ +#include <media/stagefright/foundation/MediaBufferBase.h> + #include <pthread.h> #include <utils/Errors.h> @@ -43,7 +45,7 @@ private: MediaBufferObserver &operator=(const MediaBufferObserver &); }; -class MediaBuffer { +class MediaBuffer : public MediaBufferBase { public: // The underlying data remains the responsibility of the caller! MediaBuffer(void *data, size_t size); @@ -56,10 +58,10 @@ public: // Decrements the reference count and returns the buffer to its // associated MediaBufferGroup if the reference count drops to 0. - void release(); + virtual void release(); // Increments the reference count. - void add_ref(); + virtual void add_ref(); void *data() const; size_t size() const; diff --git a/include/media/stagefright/foundation/ABuffer.h b/include/media/stagefright/foundation/ABuffer.h index 602f7ab..6294ee7 100644 --- a/include/media/stagefright/foundation/ABuffer.h +++ b/include/media/stagefright/foundation/ABuffer.h @@ -27,6 +27,7 @@ namespace android { struct AMessage; +class MediaBufferBase; struct ABuffer : public RefBase { ABuffer(size_t capacity); @@ -50,6 +51,9 @@ struct ABuffer : public RefBase { sp<AMessage> meta(); + MediaBufferBase *getMediaBufferBase(); + void setMediaBufferBase(MediaBufferBase *mediaBuffer); + protected: virtual ~ABuffer(); @@ -57,6 +61,8 @@ private: sp<AMessage> mFarewell; sp<AMessage> mMeta; + MediaBufferBase *mMediaBufferBase; + void *mData; size_t mCapacity; size_t mRangeOffset; diff --git a/include/media/stagefright/foundation/MediaBufferBase.h b/include/media/stagefright/foundation/MediaBufferBase.h new file mode 100644 index 0000000..99418fb --- /dev/null +++ b/include/media/stagefright/foundation/MediaBufferBase.h @@ -0,0 +1,40 @@ +/* + * Copyright 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MEDIA_BUFFER_BASE_H_ + +#define MEDIA_BUFFER_BASE_H_ + +namespace android { + +class MediaBufferBase { +public: + MediaBufferBase() {} + + virtual void release() = 0; + virtual void add_ref() = 0; + +protected: + virtual ~MediaBufferBase() {} + +private: + MediaBufferBase(const MediaBufferBase &); + MediaBufferBase &operator=(const MediaBufferBase &); +}; + +} // namespace android + +#endif // MEDIA_BUFFER_BASE_H_ |