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/libmedia/IMediaRecorder.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'media/libmedia/IMediaRecorder.cpp') diff --git a/media/libmedia/IMediaRecorder.cpp b/media/libmedia/IMediaRecorder.cpp index 8ca256c..c7a1394 100644 --- a/media/libmedia/IMediaRecorder.cpp +++ b/media/libmedia/IMediaRecorder.cpp @@ -35,6 +35,7 @@ enum { RELEASE = IBinder::FIRST_CALL_TRANSACTION, INIT, CLOSE, + USE_PERSISTENT_SURFACE, QUERY_SURFACE_MEDIASOURCE, RESET, STOP, @@ -75,6 +76,16 @@ public: return reply.readInt32(); } + status_t usePersistentSurface(const sp& surface) + { + ALOGV("usePersistentSurface(%p)", surface.get()); + Parcel data, reply; + data.writeInterfaceToken(IMediaRecorder::getInterfaceDescriptor()); + data.writeStrongBinder(IInterface::asBinder(surface)); + remote()->transact(USE_PERSISTENT_SURFACE, data, &reply); + return reply.readInt32(); + } + sp querySurfaceMediaSource() { ALOGV("Query SurfaceMediaSource"); @@ -442,6 +453,14 @@ status_t BnMediaRecorder::onTransact( reply->writeInt32(setCamera(camera, proxy)); return NO_ERROR; } break; + case USE_PERSISTENT_SURFACE: { + ALOGV("USE_PERSISTENT_SURFACE"); + CHECK_INTERFACE(IMediaRecorder, data, reply); + sp surface = interface_cast( + data.readStrongBinder()); + reply->writeInt32(usePersistentSurface(surface)); + return NO_ERROR; + } break; case QUERY_SURFACE_MEDIASOURCE: { ALOGV("QUERY_SURFACE_MEDIASOURCE"); CHECK_INTERFACE(IMediaRecorder, data, reply); -- cgit v1.1