summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MediaPlayerService.cpp
diff options
context:
space:
mode:
authorGloria Wang <gwang@google.com>2009-10-29 15:46:37 -0700
committerGloria Wang <gwang@google.com>2009-10-29 15:46:37 -0700
commit608a2630bb1eec63431cf065a76962e138aa1dc2 (patch)
tree33a262ec8a5dff421de759f8aadf6c8be28a46e5 /media/libmediaplayerservice/MediaPlayerService.cpp
parentfae288c7987f96df05e91ed154e934de267098be (diff)
downloadframeworks_base-608a2630bb1eec63431cf065a76962e138aa1dc2.zip
frameworks_base-608a2630bb1eec63431cf065a76962e138aa1dc2.tar.gz
frameworks_base-608a2630bb1eec63431cf065a76962e138aa1dc2.tar.bz2
Dump media recorder PID in dumpsys media.player, and fix minor bugs.
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 84be874..9d2c779 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -225,7 +225,10 @@ MediaPlayerService::~MediaPlayerService()
sp<IMediaRecorder> MediaPlayerService::createMediaRecorder(pid_t pid)
{
#ifndef NO_OPENCORE
- sp<MediaRecorderClient> recorder = new MediaRecorderClient(pid);
+ sp<MediaRecorderClient> recorder = new MediaRecorderClient(this, pid);
+ wp<MediaRecorderClient> w = recorder;
+ Mutex::Autolock lock(mLock);
+ mMediaRecorderClients.add(w);
#else
sp<MediaRecorderClient> recorder = NULL;
#endif
@@ -233,6 +236,13 @@ sp<IMediaRecorder> MediaPlayerService::createMediaRecorder(pid_t pid)
return recorder;
}
+void MediaPlayerService::removeMediaRecorderClient(wp<MediaRecorderClient> client)
+{
+ Mutex::Autolock lock(mLock);
+ mMediaRecorderClients.remove(client);
+ LOGV("Delete media recorder client");
+}
+
sp<IMediaMetadataRetriever> MediaPlayerService::createMetadataRetriever(pid_t pid)
{
sp<MetadataRetrieverClient> retriever = new MetadataRetrieverClient(pid);
@@ -460,6 +470,13 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args)
sp<Client> c = mClients[i].promote();
if (c != 0) c->dump(fd, args);
}
+ for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) {
+ result.append(" MediaRecorderClient\n");
+ sp<MediaRecorderClient> c = mMediaRecorderClients[i].promote();
+ snprintf(buffer, 255, " pid(%d)\n\n", c->mPid);
+ result.append(buffer);
+ }
+
result.append(" Files opened and/or mapped:\n");
snprintf(buffer, SIZE, "/proc/%d/maps", myTid());
FILE *f = fopen(buffer, "r");