summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/foundation/AHandler.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-03-04 17:00:10 -0800
committerLajos Molnar <lajos@google.com>2015-03-05 17:49:50 -0800
commit5804a76ac5f9f3c311f1bbbcc5ebdc8f8568ae14 (patch)
tree159660930b1c7f6300ea3054e47ce46719083a16 /media/libstagefright/foundation/AHandler.cpp
parentc10e7f121d346b433c32d1c0d791c4b547cbe60e (diff)
downloadframeworks_av-5804a76ac5f9f3c311f1bbbcc5ebdc8f8568ae14.zip
frameworks_av-5804a76ac5f9f3c311f1bbbcc5ebdc8f8568ae14.tar.gz
frameworks_av-5804a76ac5f9f3c311f1bbbcc5ebdc8f8568ae14.tar.bz2
stagefright: use handler instead of handler-id in AMessage
This avoids locking gLooperRoster mutex on post() and deliver(). Bug: 19607784 Change-Id: If6d9d7884dbb08fc390983bda896d223803476ba
Diffstat (limited to 'media/libstagefright/foundation/AHandler.cpp')
-rw-r--r--media/libstagefright/foundation/AHandler.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/media/libstagefright/foundation/AHandler.cpp b/media/libstagefright/foundation/AHandler.cpp
index bd5f7e9..7dbbe54 100644
--- a/media/libstagefright/foundation/AHandler.cpp
+++ b/media/libstagefright/foundation/AHandler.cpp
@@ -19,15 +19,23 @@
#include <utils/Log.h>
#include <media/stagefright/foundation/AHandler.h>
-
-#include <media/stagefright/foundation/ALooperRoster.h>
+#include <media/stagefright/foundation/AMessage.h>
namespace android {
-sp<ALooper> AHandler::looper() {
- extern ALooperRoster gLooperRoster;
+void AHandler::deliverMessage(const sp<AMessage> &msg) {
+ onMessageReceived(msg);
+ mMessageCounter++;
- return gLooperRoster.findLooper(id());
+ if (mVerboseStats) {
+ uint32_t what = msg->what();
+ ssize_t idx = mMessages.indexOfKey(what);
+ if (idx < 0) {
+ mMessages.add(what, 1);
+ } else {
+ mMessages.editValueAt(idx)++;
+ }
+ }
}
} // namespace android