From e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Fri, 1 May 2015 12:36:13 -0700 Subject: MediaRecorder: implement persistent input surface APIs Bug: 19127604 Bug: 19489395 Change-Id: I7dd8015a8fe029f9867fcdb52322629c77eff50b --- media/libmediaplayerservice/StagefrightRecorder.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp') 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 return OK; } +status_t StagefrightRecorder::usePersistentSurface( + const sp& 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 encoder = - MediaCodecSource::Create(mLooper, format, cameraSource, flags); + sp 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 -- cgit v1.1