diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-13 13:04:22 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-13 13:04:22 -0700 |
commit | c048cae0367db6fbb4fe1127be5011910713d4ad (patch) | |
tree | e567bfa2e8218b065db13858b77b12b2f2d8d53a /media/libmedia | |
parent | 65e731f393f704eedab6fbe0af7f8a580c8d4617 (diff) | |
download | frameworks_av-c048cae0367db6fbb4fe1127be5011910713d4ad.zip frameworks_av-c048cae0367db6fbb4fe1127be5011910713d4ad.tar.gz frameworks_av-c048cae0367db6fbb4fe1127be5011910713d4ad.tar.bz2 |
auto import from //branches/cupcake_rel/...@138607
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/IMediaRecorder.cpp | 17 | ||||
-rw-r--r-- | media/libmedia/mediarecorder.cpp | 18 |
2 files changed, 35 insertions, 0 deletions
diff --git a/media/libmedia/IMediaRecorder.cpp b/media/libmedia/IMediaRecorder.cpp index f187bf5..84d08c4 100644 --- a/media/libmedia/IMediaRecorder.cpp +++ b/media/libmedia/IMediaRecorder.cpp @@ -44,6 +44,7 @@ enum { SET_OUTPUT_FILE_FD, SET_VIDEO_SIZE, SET_VIDEO_FRAMERATE, + SET_PARAMETERS, SET_PREVIEW_SURFACE, SET_CAMERA, SET_LISTENER @@ -178,6 +179,16 @@ public: return reply.readInt32(); } + status_t setParameters(const String8& params) + { + LOGV("setParameter(%s)", params.string()); + Parcel data, reply; + data.writeInterfaceToken(IMediaRecorder::getInterfaceDescriptor()); + data.writeString8(params); + remote()->transact(SET_PARAMETERS, data, &reply); + return reply.readInt32(); + } + status_t setListener(const sp<IMediaPlayerClient>& listener) { LOGV("setListener(%p)", listener.get()); @@ -385,6 +396,12 @@ status_t BnMediaRecorder::onTransact( reply->writeInt32(setVideoFrameRate(frames_per_second)); return NO_ERROR; } break; + case SET_PARAMETERS: { + LOGV("SET_PARAMETER"); + CHECK_INTERFACE(IMediaRecorder, data, reply); + reply->writeInt32(setParameters(data.readString8())); + return NO_ERROR; + } break; case SET_LISTENER: { LOGV("SET_LISTENER"); CHECK_INTERFACE(IMediaRecorder, data, reply); diff --git a/media/libmedia/mediarecorder.cpp b/media/libmedia/mediarecorder.cpp index 572b1e7..23b3b9d 100644 --- a/media/libmedia/mediarecorder.cpp +++ b/media/libmedia/mediarecorder.cpp @@ -21,6 +21,7 @@ #include <ui/Surface.h> #include <media/mediarecorder.h> #include <utils/IServiceManager.h> +#include <utils/String8.h> #include <media/IMediaPlayerService.h> #include <media/IMediaRecorder.h> @@ -356,6 +357,23 @@ status_t MediaRecorder::setVideoFrameRate(int frames_per_second) return ret; } +status_t MediaRecorder::setParameters(const String8& params) { + LOGV("setParameters(%s)", params.string()); + if(mMediaRecorder == NULL) { + LOGE("media recorder is not initialized yet"); + return INVALID_OPERATION; + } + + status_t ret = mMediaRecorder->setParameters(params); + if (OK != ret) { + LOGE("setParameters(%s) failed: %d", params.string(), ret); + mCurrentState = MEDIA_RECORDER_ERROR; + return ret; + } + + return ret; +} + status_t MediaRecorder::prepare() { LOGV("prepare"); |