diff options
author | James Dong <jdong@google.com> | 2010-11-02 13:20:11 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-11-04 17:40:02 -0700 |
commit | 8480835b4bc1350646376aa7f3ae33742a7adeb1 (patch) | |
tree | 287195077d7d6e96d8a85228e2609bc8613af94b /media/libmediaplayerservice/StagefrightRecorder.cpp | |
parent | a3d7a3174b600a0df3cf452b708c940e93bb651a (diff) | |
download | frameworks_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.cpp | 14 |
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; |