diff options
author | Pannag Sanketi <psanketi@google.com> | 2011-07-22 16:42:41 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-22 16:42:41 -0700 |
commit | 77882a8deb5167235ae591e49c9dcff9abb373c1 (patch) | |
tree | 92f1198bc7488f47b2160d10e772c3823ed7fb40 /media/libstagefright/SurfaceMediaSource.cpp | |
parent | 29a142c7237821b6dc7bd1e8b56bb1efdc56767b (diff) | |
parent | b33f3407bab0970a7f9241680723a1140b177c50 (diff) | |
download | frameworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.zip frameworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.tar.gz frameworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.tar.bz2 |
Merge "Connect MediaRecorder Native to SurfaceMediaSource"
Diffstat (limited to 'media/libstagefright/SurfaceMediaSource.cpp')
-rw-r--r-- | media/libstagefright/SurfaceMediaSource.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp index 7d08f09..ff4b08f 100644 --- a/media/libstagefright/SurfaceMediaSource.cpp +++ b/media/libstagefright/SurfaceMediaSource.cpp @@ -35,18 +35,18 @@ namespace android { SurfaceMediaSource::SurfaceMediaSource(uint32_t bufW, uint32_t bufH) : - mDefaultWidth(bufW), - mDefaultHeight(bufH), - mPixelFormat(0), - mBufferCount(MIN_ASYNC_BUFFER_SLOTS), - mClientBufferCount(0), - mServerBufferCount(MIN_ASYNC_BUFFER_SLOTS), - mCurrentSlot(INVALID_BUFFER_SLOT), - mCurrentTimestamp(0), - mSynchronousMode(true), - mConnectedApi(NO_CONNECTED_API), - mFrameRate(30), - mStarted(false) { + mDefaultWidth(bufW), + mDefaultHeight(bufH), + mPixelFormat(0), + mBufferCount(MIN_ASYNC_BUFFER_SLOTS), + mClientBufferCount(0), + mServerBufferCount(MIN_ASYNC_BUFFER_SLOTS), + mCurrentSlot(INVALID_BUFFER_SLOT), + mCurrentTimestamp(0), + mSynchronousMode(true), + mConnectedApi(NO_CONNECTED_API), + mFrameRate(30), + mStarted(false) { LOGV("SurfaceMediaSource::SurfaceMediaSource"); sp<ISurfaceComposer> composer(ComposerService::getComposerService()); mGraphicBufferAlloc = composer->createGraphicBufferAlloc(); @@ -373,7 +373,7 @@ status_t SurfaceMediaSource::setSynchronousMode(bool enabled) { status_t SurfaceMediaSource::connect(int api) { LOGV("SurfaceMediaSource::connect"); Mutex::Autolock lock(mMutex); - int err = NO_ERROR; + status_t err = NO_ERROR; switch (api) { case NATIVE_WINDOW_API_EGL: case NATIVE_WINDOW_API_CPU: @@ -395,7 +395,7 @@ status_t SurfaceMediaSource::connect(int api) { status_t SurfaceMediaSource::disconnect(int api) { LOGV("SurfaceMediaSource::disconnect"); Mutex::Autolock lock(mMutex); - int err = NO_ERROR; + status_t err = NO_ERROR; switch (api) { case NATIVE_WINDOW_API_EGL: case NATIVE_WINDOW_API_CPU: @@ -620,13 +620,23 @@ void SurfaceMediaSource::dump(String8& result, const char* prefix, } } -void SurfaceMediaSource::setFrameRate(uint32_t fps) +status_t SurfaceMediaSource::setFrameRate(int32_t fps) { Mutex::Autolock lock(mMutex); + const int MAX_FRAME_RATE = 60; + if (fps < 0 || fps > MAX_FRAME_RATE) { + return BAD_VALUE; + } mFrameRate = fps; + return OK; } -uint32_t SurfaceMediaSource::getFrameRate( ) const { +bool SurfaceMediaSource::isMetaDataStoredInVideoBuffers() const { + LOGV("isMetaDataStoredInVideoBuffers"); + return true; +} + +int32_t SurfaceMediaSource::getFrameRate( ) const { Mutex::Autolock lock(mMutex); return mFrameRate; } @@ -658,8 +668,7 @@ sp<MetaData> SurfaceMediaSource::getFormat() LOGV("getFormat"); Mutex::Autolock autoLock(mMutex); sp<MetaData> meta = new MetaData; - // XXX: Check if this is right. or should we wait on some - // condition? + meta->setInt32(kKeyWidth, mDefaultWidth); meta->setInt32(kKeyHeight, mDefaultHeight); // The encoder format is set as an opaque colorformat |