summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-11-02 13:20:11 -0700
committerJames Dong <jdong@google.com>2010-11-04 17:40:02 -0700
commit8480835b4bc1350646376aa7f3ae33742a7adeb1 (patch)
tree287195077d7d6e96d8a85228e2609bc8613af94b /media/libmediaplayerservice/StagefrightRecorder.cpp
parenta3d7a3174b600a0df3cf452b708c940e93bb651a (diff)
downloadframeworks_av-8480835b4bc1350646376aa7f3ae33742a7adeb1.zip
frameworks_av-8480835b4bc1350646376aa7f3ae33742a7adeb1.tar.gz
frameworks_av-8480835b4bc1350646376aa7f3ae33742a7adeb1.tar.bz2
Use meta data in the media recording framework
o This patch allows us to do 720p video recording Change-Id: I2ea37e80a59630145396b08ebcdc6ee71df53333
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 913d953..6a25dc5 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -1035,7 +1035,8 @@ void StagefrightRecorder::clipVideoFrameHeight() {
}
}
-status_t StagefrightRecorder::setupCameraSource(sp<CameraSource> *cameraSource) {
+status_t StagefrightRecorder::setupCameraSource(
+ sp<CameraSource> *cameraSource) {
status_t err = OK;
if ((err = checkVideoEncoderCapabilities()) != OK) {
return err;
@@ -1051,7 +1052,8 @@ status_t StagefrightRecorder::setupCameraSource(sp<CameraSource> *cameraSource)
*cameraSource = mCameraSourceTimeLapse;
} else {
*cameraSource = CameraSource::CreateFromCamera(
- mCamera, mCameraId, videoSize, mFrameRate, mPreviewSurface);
+ mCamera, mCameraId, videoSize, mFrameRate,
+ mPreviewSurface, true /*storeMetaDataInVideoBuffers*/);
}
CHECK(*cameraSource != NULL);
@@ -1067,6 +1069,10 @@ status_t StagefrightRecorder::setupCameraSource(sp<CameraSource> *cameraSource)
}
CHECK(mFrameRate != -1);
+
+ mIsMetaDataStoredInVideoBuffers =
+ (*cameraSource)->isMetaDataStoredInVideoBuffers();
+
return OK;
}
@@ -1135,6 +1141,9 @@ status_t StagefrightRecorder::setupVideoEncoder(
// Use software codec for time lapse
uint32_t encoder_flags = (mCaptureTimeLapse) ? OMXCodec::kPreferSoftwareCodecs : 0;
+ if (mIsMetaDataStoredInVideoBuffers) {
+ encoder_flags |= OMXCodec::kStoreMetaDataInVideoBuffers;
+ }
sp<MediaSource> encoder = OMXCodec::Create(
client.interface(), enc_meta,
true /* createEncoder */, cameraSource,
@@ -1412,6 +1421,7 @@ status_t StagefrightRecorder::reset() {
mCaptureAuxVideo = false;
mCameraSourceSplitter = NULL;
mCameraSourceTimeLapse = NULL;
+ mIsMetaDataStoredInVideoBuffers = false;
mEncoderProfiles = MediaProfiles::getInstance();
mOutputFd = -1;