diff options
author | Lajos Molnar <lajos@google.com> | 2015-03-04 17:00:10 -0800 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-03-05 17:49:50 -0800 |
commit | 5804a76ac5f9f3c311f1bbbcc5ebdc8f8568ae14 (patch) | |
tree | 159660930b1c7f6300ea3054e47ce46719083a16 /media/libstagefright/foundation/AHandler.cpp | |
parent | c10e7f121d346b433c32d1c0d791c4b547cbe60e (diff) | |
download | frameworks_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.cpp | 18 |
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 |