summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/SurfaceMediaSource.cpp
diff options
context:
space:
mode:
authorPannag Sanketi <psanketi@google.com>2011-07-22 16:42:41 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-22 16:42:41 -0700
commit77882a8deb5167235ae591e49c9dcff9abb373c1 (patch)
tree92f1198bc7488f47b2160d10e772c3823ed7fb40 /media/libstagefright/SurfaceMediaSource.cpp
parent29a142c7237821b6dc7bd1e8b56bb1efdc56767b (diff)
parentb33f3407bab0970a7f9241680723a1140b177c50 (diff)
downloadframeworks_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.cpp45
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