diff options
author | Marco Nelissen <marcone@google.com> | 2015-02-13 14:12:42 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-02-18 09:14:06 -0800 |
commit | f09611f2f33752afc28141e1bbaa897651c05d6f (patch) | |
tree | 0c22a41f082abda66b93bb73840a072c8837d277 /media/libmediaplayerservice/MediaPlayerService.cpp | |
parent | ec0472ba9c1cfaee293636536f3951c0e6e671b4 (diff) | |
download | frameworks_av-f09611f2f33752afc28141e1bbaa897651c05d6f.zip frameworks_av-f09611f2f33752afc28141e1bbaa897651c05d6f.tar.gz frameworks_av-f09611f2f33752afc28141e1bbaa897651c05d6f.tar.bz2 |
Add dumpsys info
Print a list of looper-handler pairs and the number of messages
they've processed, and optionally break those stats out by
message type.
Change-Id: I68ce4a7003152d5c9b5cb3f42e6f3949b471aa6e
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index 1936218..694f1a4 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -59,6 +59,7 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/AudioPlayer.h> #include <media/stagefright/foundation/ADebug.h> +#include <media/stagefright/foundation/ALooperRoster.h> #include <system/audio.h> @@ -247,6 +248,9 @@ void unmarshallAudioAttributes(const Parcel& parcel, audio_attributes_t *attribu namespace android { +extern ALooperRoster gLooperRoster; + + static bool checkPermission(const char* permissionString) { #ifndef HAVE_ANDROID_OS return true; @@ -428,6 +432,10 @@ status_t MediaPlayerService::Client::dump(int fd, const Vector<String16>& args) return NO_ERROR; } +/** + * The only arguments this understands right now are -c, -von and -voff, + * which are parsed by ALooperRoster::dump() + */ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) { const size_t SIZE = 256; @@ -461,7 +469,7 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) } result.append(" Files opened and/or mapped:\n"); - snprintf(buffer, SIZE, "/proc/%d/maps", gettid()); + snprintf(buffer, SIZE, "/proc/%d/maps", getpid()); FILE *f = fopen(buffer, "r"); if (f) { while (!feof(f)) { @@ -481,13 +489,13 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) result.append("\n"); } - snprintf(buffer, SIZE, "/proc/%d/fd", gettid()); + snprintf(buffer, SIZE, "/proc/%d/fd", getpid()); DIR *d = opendir(buffer); if (d) { struct dirent *ent; while((ent = readdir(d)) != NULL) { if (strcmp(ent->d_name,".") && strcmp(ent->d_name,"..")) { - snprintf(buffer, SIZE, "/proc/%d/fd/%s", gettid(), ent->d_name); + snprintf(buffer, SIZE, "/proc/%d/fd/%s", getpid(), ent->d_name); struct stat s; if (lstat(buffer, &s) == 0) { if ((s.st_mode & S_IFMT) == S_IFLNK) { @@ -528,6 +536,8 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) result.append("\n"); } + gLooperRoster.dump(fd, args); + bool dumpMem = false; for (size_t i = 0; i < args.size(); i++) { if (args[i] == String16("-m")) { |