am 929642ee: Add runtime dumpsys support for media recorder client
Merge commit '929642ee003895b6e4e85ad7e43c7c6f01b29020' into gingerbread-plus-aosp * commit '929642ee003895b6e4e85ad7e43c7c6f01b29020': Add runtime dumpsys support for media recorder client
This commit is contained in:
@@ -48,6 +48,7 @@ struct MediaRecorderBase {
|
|||||||
virtual status_t close() = 0;
|
virtual status_t close() = 0;
|
||||||
virtual status_t reset() = 0;
|
virtual status_t reset() = 0;
|
||||||
virtual status_t getMaxAmplitude(int *max) = 0;
|
virtual status_t getMaxAmplitude(int *max) = 0;
|
||||||
|
virtual status_t dump(int fd, const Vector<String16>& args) const = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MediaRecorderBase(const MediaRecorderBase &);
|
MediaRecorderBase(const MediaRecorderBase &);
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public:
|
|||||||
virtual status_t close();
|
virtual status_t close();
|
||||||
virtual status_t reset();
|
virtual status_t reset();
|
||||||
virtual status_t getMaxAmplitude(int *max);
|
virtual status_t getMaxAmplitude(int *max);
|
||||||
|
virtual status_t dump(int fd, const Vector<String16>& args) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
status_t doStop();
|
status_t doStop();
|
||||||
|
|||||||
@@ -511,11 +511,17 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args)
|
|||||||
sp<Client> c = mClients[i].promote();
|
sp<Client> c = mClients[i].promote();
|
||||||
if (c != 0) c->dump(fd, args);
|
if (c != 0) c->dump(fd, args);
|
||||||
}
|
}
|
||||||
for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) {
|
if (mMediaRecorderClients.size() == 0) {
|
||||||
result.append(" MediaRecorderClient\n");
|
result.append(" No media recorder client\n\n");
|
||||||
sp<MediaRecorderClient> c = mMediaRecorderClients[i].promote();
|
} else {
|
||||||
snprintf(buffer, 255, " pid(%d)\n\n", c->mPid);
|
for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) {
|
||||||
result.append(buffer);
|
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");
|
result.append(" Files opened and/or mapped:\n");
|
||||||
|
|||||||
@@ -329,5 +329,12 @@ status_t MediaRecorderClient::setListener(const sp<IMediaRecorderClient>& listen
|
|||||||
return mRecorder->setListener(listener);
|
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
|
}; // namespace android
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class MediaPlayerService;
|
|||||||
class MediaRecorderClient : public BnMediaRecorder
|
class MediaRecorderClient : public BnMediaRecorder
|
||||||
{
|
{
|
||||||
public:
|
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 setPreviewSurface(const sp<ISurface>& surface);
|
||||||
virtual status_t setVideoSource(int vs);
|
virtual status_t setVideoSource(int vs);
|
||||||
virtual status_t setAudioSource(int as);
|
virtual status_t setAudioSource(int as);
|
||||||
@@ -45,21 +45,22 @@ public:
|
|||||||
virtual status_t getMaxAmplitude(int* max);
|
virtual status_t getMaxAmplitude(int* max);
|
||||||
virtual status_t start();
|
virtual status_t start();
|
||||||
virtual status_t stop();
|
virtual status_t stop();
|
||||||
virtual status_t reset();
|
virtual status_t reset();
|
||||||
virtual status_t init();
|
virtual status_t init();
|
||||||
virtual status_t close();
|
virtual status_t close();
|
||||||
virtual status_t release();
|
virtual status_t release();
|
||||||
|
|
||||||
|
virtual status_t dump(int fd, const Vector<String16>& args) const;
|
||||||
private:
|
private:
|
||||||
friend class MediaPlayerService; // for accessing private constructor
|
friend class MediaPlayerService; // for accessing private constructor
|
||||||
|
|
||||||
MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid);
|
MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid);
|
||||||
virtual ~MediaRecorderClient();
|
virtual ~MediaRecorderClient();
|
||||||
|
|
||||||
pid_t mPid;
|
pid_t mPid;
|
||||||
Mutex mLock;
|
Mutex mLock;
|
||||||
MediaRecorderBase *mRecorder;
|
MediaRecorderBase *mRecorder;
|
||||||
sp<MediaPlayerService> mMediaPlayerService;
|
sp<MediaPlayerService> mMediaPlayerService;
|
||||||
};
|
};
|
||||||
|
|
||||||
}; // namespace android
|
}; // namespace android
|
||||||
|
|||||||
@@ -1057,4 +1057,64 @@ status_t StagefrightRecorder::getMaxAmplitude(int *max) {
|
|||||||
return OK;
|
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
|
} // namespace android
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ struct StagefrightRecorder : public MediaRecorderBase {
|
|||||||
virtual status_t close();
|
virtual status_t close();
|
||||||
virtual status_t reset();
|
virtual status_t reset();
|
||||||
virtual status_t getMaxAmplitude(int *max);
|
virtual status_t getMaxAmplitude(int *max);
|
||||||
|
virtual status_t dump(int fd, const Vector<String16>& args) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum CameraFlags {
|
enum CameraFlags {
|
||||||
|
|||||||
@@ -948,7 +948,7 @@ status_t OMXCodec::getVideoProfileLevel(
|
|||||||
|
|
||||||
int32_t supportedProfile = static_cast<int32_t>(param.eProfile);
|
int32_t supportedProfile = static_cast<int32_t>(param.eProfile);
|
||||||
int32_t supportedLevel = static_cast<int32_t>(param.eLevel);
|
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);
|
supportedProfile, supportedLevel);
|
||||||
|
|
||||||
if (profile == supportedProfile &&
|
if (profile == supportedProfile &&
|
||||||
|
|||||||
Reference in New Issue
Block a user