summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2015-05-01 12:36:13 -0700
committerChong Zhang <chz@google.com>2015-05-01 19:18:49 -0700
commite2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049 (patch)
tree8060421e6bb2732c1b84d0810f5e83a57a7d25ea /media/libmediaplayerservice/StagefrightRecorder.cpp
parentd291c222357303b9611cab89d0c3b047584ef377 (diff)
downloadframeworks_av-e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049.zip
frameworks_av-e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049.tar.gz
frameworks_av-e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049.tar.bz2
MediaRecorder: implement persistent input surface APIs
Bug: 19127604 Bug: 19489395 Change-Id: I7dd8015a8fe029f9867fcdb52322629c77eff50b
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index aa19a25..509a592 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -243,6 +243,13 @@ status_t StagefrightRecorder::setPreviewSurface(const sp<IGraphicBufferProducer>
return OK;
}
+status_t StagefrightRecorder::usePersistentSurface(
+ const sp<IGraphicBufferConsumer>& surface) {
+ mPersistentSurface = surface;
+
+ return OK;
+}
+
status_t StagefrightRecorder::setOutputFile(int fd, int64_t offset, int64_t length) {
ALOGV("setOutputFile: %d, %lld, %lld", fd, offset, length);
// These don't make any sense, do they?
@@ -1560,8 +1567,8 @@ status_t StagefrightRecorder::setupVideoEncoder(
flags |= MediaCodecSource::FLAG_USE_SURFACE_INPUT;
}
- sp<MediaCodecSource> encoder =
- MediaCodecSource::Create(mLooper, format, cameraSource, flags);
+ sp<MediaCodecSource> encoder = MediaCodecSource::Create(
+ mLooper, format, cameraSource, mPersistentSurface, flags);
if (encoder == NULL) {
ALOGE("Failed to create video encoder");
// When the encoder fails to be created, we need