summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Ceballos2016-03-15 17:07:54 -0500
committerPablo Ceballos2016-03-15 17:21:21 -0500
commite07e3e5ef56b768d73e78fb273f2cfe6ebffc945 (patch)
tree5389063fd296967d34389f32cbba367f3b7a34cb /include
parent5229d8f558dfa7d91037321dcf26fbc1131df15a (diff)
downloadframeworks-native-e07e3e5ef56b768d73e78fb273f2cfe6ebffc945.tar.gz
frameworks-native-e07e3e5ef56b768d73e78fb273f2cfe6ebffc945.tar.xz
frameworks-native-e07e3e5ef56b768d73e78fb273f2cfe6ebffc945.zip
Revert "Add a callback thread to ConsumerBase"
This reverts commit 22b5702b40eca423171124e69c3d4ad03a3e6900. Bug 27557176 Change-Id: Icc0e79af82329e6414ed44a99e90631cfcf140fa
Diffstat (limited to 'include')
-rw-r--r--include/gui/ConsumerBase.h55
1 files changed, 12 insertions, 43 deletions
diff --git a/include/gui/ConsumerBase.h b/include/gui/ConsumerBase.h
index 1b63552fc..9307a26fb 100644
--- a/include/gui/ConsumerBase.h
+++ b/include/gui/ConsumerBase.h
@@ -26,8 +26,6 @@
26#include <utils/threads.h> 26#include <utils/threads.h>
27#include <gui/IConsumerListener.h> 27#include <gui/IConsumerListener.h>
28 28
29#include <queue>
30
31namespace android { 29namespace android {
32// ---------------------------------------------------------------------------- 30// ----------------------------------------------------------------------------
33 31
@@ -110,18 +108,18 @@ protected:
110 // from the derived class. 108 // from the derived class.
111 virtual void onLastStrongRef(const void* id); 109 virtual void onLastStrongRef(const void* id);
112 110
113 // Handlers for the IConsumerListener interface, these will be called from 111 // Implementation of the IConsumerListener interface. These
114 // the message queue thread. These calls are used to notify the ConsumerBase 112 // calls are used to notify the ConsumerBase of asynchronous events in the
115 // of asynchronous events in the BufferQueue. The onFrameAvailableHandler, 113 // BufferQueue. The onFrameAvailable, onFrameReplaced, and
116 // onFrameReplacedHandler, and onBuffersReleasedHandler methods should not 114 // onBuffersReleased methods should not need to be overridden by derived
117 // need to be overridden by derived classes, but if they are overridden the 115 // classes, but if they are overridden the ConsumerBase implementation must
118 // ConsumerBase implementation must be called from the derived class. The 116 // be called from the derived class. The ConsumerBase version of
119 // ConsumerBase version of onSidebandStreamChangedHandler does nothing and 117 // onSidebandStreamChanged does nothing and can be overriden by derived
120 // can be overriden by derived classes if they want the notification. 118 // classes if they want the notification.
121 virtual void onFrameAvailableHandler(const BufferItem& item); 119 virtual void onFrameAvailable(const BufferItem& item) override;
122 virtual void onFrameReplacedHandler(const BufferItem& item); 120 virtual void onFrameReplaced(const BufferItem& item) override;
123 virtual void onBuffersReleasedHandler(); 121 virtual void onBuffersReleased() override;
124 virtual void onSidebandStreamChangedHandler(); 122 virtual void onSidebandStreamChanged() override;
125 123
126 // freeBufferLocked frees up the given buffer slot. If the slot has been 124 // freeBufferLocked frees up the given buffer slot. If the slot has been
127 // initialized this will release the reference to the GraphicBuffer in that 125 // initialized this will release the reference to the GraphicBuffer in that
@@ -246,35 +244,6 @@ protected:
246 // 244 //
247 // This mutex is intended to be locked by derived classes. 245 // This mutex is intended to be locked by derived classes.
248 mutable Mutex mMutex; 246 mutable Mutex mMutex;
249
250 // Implements the ConsumerListener interface
251 virtual void onFrameAvailable(const BufferItem& item) override;
252 virtual void onFrameReplaced(const BufferItem& item) override;
253 virtual void onBuffersReleased() override;
254 virtual void onSidebandStreamChanged() override;
255
256 enum MessageType {
257 ON_FRAME_AVAILABLE,
258 ON_FRAME_REPLACED,
259 ON_BUFFERS_RELEASED,
260 ON_SIDEBAND_STREAM_CHANGED,
261 EXIT,
262 };
263
264 mutable Mutex mMessageQueueLock;
265 Condition mMessageAvailable;
266 std::queue<std::pair<MessageType, BufferItem>> mMessageQueue;
267
268 class MessageThread : public Thread {
269 public:
270 MessageThread(ConsumerBase* consumerBase) :
271 mConsumerBase(consumerBase) {};
272 protected:
273 virtual bool threadLoop() override;
274 ConsumerBase* mConsumerBase;
275 };
276
277 sp<MessageThread> mMessageThread;
278}; 247};
279 248
280// ---------------------------------------------------------------------------- 249// ----------------------------------------------------------------------------