summaryrefslogtreecommitdiffstats
path: root/media/libmedia/mediarecorder.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-01-15 18:13:58 -0800
committerJames Dong <jdong@google.com>2010-01-15 18:28:16 -0800
commitdd172fce75b2a1c3cb3a5d3b3bbb5020b1ae8675 (patch)
tree538c2d1505e11dbb55aa0839c3181d96e812868c /media/libmedia/mediarecorder.cpp
parent97419ed670a12f48a7609673da8ee5dc0376f075 (diff)
downloadframeworks_av-dd172fce75b2a1c3cb3a5d3b3bbb5020b1ae8675.zip
frameworks_av-dd172fce75b2a1c3cb3a5d3b3bbb5020b1ae8675.tar.gz
frameworks_av-dd172fce75b2a1c3cb3a5d3b3bbb5020b1ae8675.tar.bz2
Media server death nodification
Diffstat (limited to 'media/libmedia/mediarecorder.cpp')
-rw-r--r--media/libmedia/mediarecorder.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/media/libmedia/mediarecorder.cpp b/media/libmedia/mediarecorder.cpp
index 6b63931..7b5dabb 100644
--- a/media/libmedia/mediarecorder.cpp
+++ b/media/libmedia/mediarecorder.cpp
@@ -24,6 +24,7 @@
#include <utils/String8.h>
#include <media/IMediaPlayerService.h>
#include <media/IMediaRecorder.h>
+#include <media/mediaplayer.h> // for MEDIA_ERROR_SERVER_DIED
namespace android {
@@ -576,19 +577,8 @@ status_t MediaRecorder::release()
MediaRecorder::MediaRecorder()
{
LOGV("constructor");
- sp<IServiceManager> sm = defaultServiceManager();
- sp<IBinder> binder;
- do {
- binder = sm->getService(String16("media.player"));
- if (binder != NULL) {
- break;
- }
- LOGW("MediaPlayerService not published, waiting...");
- usleep(500000); // 0.5 s
- } while(true);
-
- sp<IMediaPlayerService> service = interface_cast<IMediaPlayerService>(binder);
+ const sp<IMediaPlayerService>& service(getMediaPlayerService());
if (service != NULL) {
mMediaRecorder = service->createMediaRecorder(getpid());
}
@@ -637,5 +627,11 @@ void MediaRecorder::notify(int msg, int ext1, int ext2)
}
}
+void MediaRecorder::died()
+{
+ LOGV("died");
+ notify(MEDIA_RECORDER_EVENT_ERROR, MEDIA_ERROR_SERVER_DIED, 0);
+}
+
}; // namespace android