diff options
author | Pablo Ceballos | 2016-03-15 17:07:54 -0500 |
---|---|---|
committer | Pablo Ceballos | 2016-03-15 17:21:21 -0500 |
commit | e07e3e5ef56b768d73e78fb273f2cfe6ebffc945 (patch) | |
tree | 5389063fd296967d34389f32cbba367f3b7a34cb /include | |
parent | 5229d8f558dfa7d91037321dcf26fbc1131df15a (diff) | |
download | frameworks-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.h | 55 |
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 | |||
31 | namespace android { | 29 | namespace 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 | // ---------------------------------------------------------------------------- |