diff options
author | James Dong <jdong@google.com> | 2010-07-08 11:16:11 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-07-08 21:25:55 -0700 |
commit | 929642ee003895b6e4e85ad7e43c7c6f01b29020 (patch) | |
tree | 94498d866ffcb165ae3778ab0e5ae193257f71e4 /media | |
parent | fd84f97af4b44d54bba53bb85b31a6dbce07f6e2 (diff) | |
download | frameworks_base-929642ee003895b6e4e85ad7e43c7c6f01b29020.zip frameworks_base-929642ee003895b6e4e85ad7e43c7c6f01b29020.tar.gz frameworks_base-929642ee003895b6e4e85ad7e43c7c6f01b29020.tar.bz2 |
Add runtime dumpsys support for media recorder client
Change-Id: I4c8a81720f3be2db54678a7e84fe12849255046b
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 16 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaRecorderClient.cpp | 7 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaRecorderClient.h | 19 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 60 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.h | 1 | ||||
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 2 |
6 files changed, 90 insertions, 15 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index 4872047..5401ec0 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -511,11 +511,17 @@ 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); + if (mMediaRecorderClients.size() == 0) { + result.append(" No media recorder client\n\n"); + } else { + for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) { + sp<MediaRecorderClient> c = mMediaRecorderClients[i].promote(); + snprintf(buffer, 255, " MediaRecorderClient pid(%d)\n", c->mPid); + result.append(buffer); + write(fd, result.string(), result.size()); + result = "\n"; + c->dump(fd, args); + } } result.append(" Files opened and/or mapped:\n"); diff --git a/media/libmediaplayerservice/MediaRecorderClient.cpp b/media/libmediaplayerservice/MediaRecorderClient.cpp index 80b1cfd..fef3e6e 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.cpp +++ b/media/libmediaplayerservice/MediaRecorderClient.cpp @@ -329,5 +329,12 @@ status_t MediaRecorderClient::setListener(const sp<IMediaRecorderClient>& listen return mRecorder->setListener(listener); } +status_t MediaRecorderClient::dump(int fd, const Vector<String16>& args) const { + if (mRecorder != NULL) { + return mRecorder->dump(fd, args); + } + return OK; +} + }; // namespace android diff --git a/media/libmediaplayerservice/MediaRecorderClient.h b/media/libmediaplayerservice/MediaRecorderClient.h index b53d950..d12e558 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.h +++ b/media/libmediaplayerservice/MediaRecorderClient.h @@ -28,7 +28,7 @@ class MediaPlayerService; class MediaRecorderClient : public BnMediaRecorder { public: - virtual status_t setCamera(const sp<ICamera>& camera); + virtual status_t setCamera(const sp<ICamera>& camera); virtual status_t setPreviewSurface(const sp<ISurface>& surface); virtual status_t setVideoSource(int vs); virtual status_t setAudioSource(int as); @@ -45,21 +45,22 @@ public: virtual status_t getMaxAmplitude(int* max); virtual status_t start(); virtual status_t stop(); - virtual status_t reset(); + virtual status_t reset(); virtual status_t init(); virtual status_t close(); virtual status_t release(); + virtual status_t dump(int fd, const Vector<String16>& args) const; private: - friend class MediaPlayerService; // for accessing private constructor + friend class MediaPlayerService; // for accessing private constructor - MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid); - virtual ~MediaRecorderClient(); + MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid); + virtual ~MediaRecorderClient(); - pid_t mPid; - Mutex mLock; - MediaRecorderBase *mRecorder; - sp<MediaPlayerService> mMediaPlayerService; + pid_t mPid; + Mutex mLock; + MediaRecorderBase *mRecorder; + sp<MediaPlayerService> mMediaPlayerService; }; }; // namespace android diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 50f74f2..72061ad 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -1057,4 +1057,64 @@ status_t StagefrightRecorder::getMaxAmplitude(int *max) { return OK; } +status_t StagefrightRecorder::dump(int fd, const Vector<String16>& args) const { + const size_t SIZE = 256; + char buffer[SIZE]; + String8 result; + snprintf(buffer, SIZE, " Recorder: %p", this); + snprintf(buffer, SIZE, " Output file (fd %d):\n", mOutputFd); + result.append(buffer); + snprintf(buffer, SIZE, " File format: %d\n", mOutputFormat); + result.append(buffer); + snprintf(buffer, SIZE, " Max file size (bytes): %lld\n", mMaxFileSizeBytes); + result.append(buffer); + snprintf(buffer, SIZE, " Max file duration (us): %lld\n", mMaxFileDurationUs); + result.append(buffer); + snprintf(buffer, SIZE, " File offset length (bits): %d\n", mUse64BitFileOffset? 64: 32); + result.append(buffer); + snprintf(buffer, SIZE, " Interleave duration (us): %d\n", mInterleaveDurationUs); + result.append(buffer); + snprintf(buffer, SIZE, " Progress notification: %d frames\n", mTrackEveryNumberOfFrames); + result.append(buffer); + snprintf(buffer, SIZE, " Progress notification: %lld us\n", mTrackEveryTimeDurationUs); + result.append(buffer); + snprintf(buffer, SIZE, " Audio\n"); + result.append(buffer); + snprintf(buffer, SIZE, " Source: %d\n", mAudioSource); + result.append(buffer); + snprintf(buffer, SIZE, " Encoder: %d\n", mAudioEncoder); + result.append(buffer); + snprintf(buffer, SIZE, " Bit rate (bps): %d\n", mAudioBitRate); + result.append(buffer); + snprintf(buffer, SIZE, " Sampling rate (hz): %d\n", mSampleRate); + result.append(buffer); + snprintf(buffer, SIZE, " Number of channels: %d\n", mAudioChannels); + result.append(buffer); + snprintf(buffer, SIZE, " Max amplitude: %d\n", mAudioSourceNode == 0? 0: mAudioSourceNode->getMaxAmplitude()); + result.append(buffer); + snprintf(buffer, SIZE, " Video\n"); + result.append(buffer); + snprintf(buffer, SIZE, " Source: %d\n", mVideoSource); + result.append(buffer); + snprintf(buffer, SIZE, " Camera Id: %d\n", mCameraId); + result.append(buffer); + snprintf(buffer, SIZE, " Camera flags: %d\n", mFlags); + result.append(buffer); + snprintf(buffer, SIZE, " Encoder: %d\n", mVideoEncoder); + result.append(buffer); + snprintf(buffer, SIZE, " Encoder profile: %d\n", mVideoEncoderProfile); + result.append(buffer); + snprintf(buffer, SIZE, " Encoder level: %d\n", mVideoEncoderLevel); + result.append(buffer); + snprintf(buffer, SIZE, " I frames interval (s): %d\n", mIFramesInterval); + result.append(buffer); + snprintf(buffer, SIZE, " Frame size (pixels): %dx%d\n", mVideoWidth, mVideoHeight); + result.append(buffer); + snprintf(buffer, SIZE, " Frame rate (fps): %d\n", mFrameRate); + result.append(buffer); + snprintf(buffer, SIZE, " Bit rate (bps): %d\n", mVideoBitRate); + result.append(buffer); + ::write(fd, result.string(), result.size()); + return OK; +} } // namespace android diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index 85d2557..704523f 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -54,6 +54,7 @@ struct StagefrightRecorder : public MediaRecorderBase { virtual status_t close(); virtual status_t reset(); virtual status_t getMaxAmplitude(int *max); + virtual status_t dump(int fd, const Vector<String16>& args) const; private: enum CameraFlags { diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 83f7040..efaab5b 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -948,7 +948,7 @@ status_t OMXCodec::getVideoProfileLevel( int32_t supportedProfile = static_cast<int32_t>(param.eProfile); int32_t supportedLevel = static_cast<int32_t>(param.eLevel); - CODEC_LOGV("Supported profile: %ld, level %ld", + CODEC_LOGV("Supported profile: %d, level %d", supportedProfile, supportedLevel); if (profile == supportedProfile && |