diff options
author | Chong Zhang <chz@google.com> | 2015-05-01 12:36:13 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2015-05-01 19:18:49 -0700 |
commit | e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049 (patch) | |
tree | 8060421e6bb2732c1b84d0810f5e83a57a7d25ea /include | |
parent | d291c222357303b9611cab89d0c3b047584ef377 (diff) | |
download | frameworks_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 'include')
-rw-r--r-- | include/media/IMediaRecorder.h | 2 | ||||
-rw-r--r-- | include/media/MediaRecorderBase.h | 2 | ||||
-rw-r--r-- | include/media/mediarecorder.h | 2 | ||||
-rw-r--r-- | include/media/stagefright/MediaCodecSource.h | 4 |
4 files changed, 10 insertions, 0 deletions
diff --git a/include/media/IMediaRecorder.h b/include/media/IMediaRecorder.h index 509c06b..47de0ca 100644 --- a/include/media/IMediaRecorder.h +++ b/include/media/IMediaRecorder.h @@ -26,6 +26,7 @@ class Surface; class ICamera; class ICameraRecordingProxy; class IMediaRecorderClient; +class IGraphicBufferConsumer; class IGraphicBufferProducer; class IMediaRecorder: public IInterface @@ -55,6 +56,7 @@ public: virtual status_t init() = 0; virtual status_t close() = 0; virtual status_t release() = 0; + virtual status_t usePersistentSurface(const sp<IGraphicBufferConsumer>& surface) = 0; virtual sp<IGraphicBufferProducer> querySurfaceMediaSource() = 0; }; diff --git a/include/media/MediaRecorderBase.h b/include/media/MediaRecorderBase.h index f9feede..9947309 100644 --- a/include/media/MediaRecorderBase.h +++ b/include/media/MediaRecorderBase.h @@ -26,6 +26,7 @@ namespace android { class ICameraRecordingProxy; class Surface; +class IGraphicBufferConsumer; class IGraphicBufferProducer; struct MediaRecorderBase { @@ -56,6 +57,7 @@ struct MediaRecorderBase { virtual status_t reset() = 0; virtual status_t getMaxAmplitude(int *max) = 0; virtual status_t dump(int fd, const Vector<String16>& args) const = 0; + virtual status_t usePersistentSurface(const sp<IGraphicBufferConsumer>& surface) = 0; virtual sp<IGraphicBufferProducer> querySurfaceMediaSource() const = 0; diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h index 8e40c5d..9210feb 100644 --- a/include/media/mediarecorder.h +++ b/include/media/mediarecorder.h @@ -32,6 +32,7 @@ class IMediaRecorder; class ICamera; class ICameraRecordingProxy; class IGraphicBufferProducer; +struct PersistentSurface; class Surface; typedef void (*media_completion_f)(status_t status, void *cookie); @@ -236,6 +237,7 @@ public: status_t close(); status_t release(); void notify(int msg, int ext1, int ext2); + status_t usePersistentSurface(const sp<PersistentSurface>& surface); sp<IGraphicBufferProducer> querySurfaceMediaSourceFromMediaServer(); private: diff --git a/include/media/stagefright/MediaCodecSource.h b/include/media/stagefright/MediaCodecSource.h index 9d1f222..a991b02 100644 --- a/include/media/stagefright/MediaCodecSource.h +++ b/include/media/stagefright/MediaCodecSource.h @@ -27,6 +27,7 @@ struct ALooper; class AMessage; struct AReplyToken; class IGraphicBufferProducer; +class IGraphicBufferConsumer; class MediaCodec; class MetaData; @@ -41,6 +42,7 @@ struct MediaCodecSource : public MediaSource, const sp<ALooper> &looper, const sp<AMessage> &format, const sp<MediaSource> &source, + const sp<IGraphicBufferConsumer> &consumer = NULL, uint32_t flags = 0); bool isVideo() const { return mIsVideo; } @@ -79,6 +81,7 @@ private: const sp<ALooper> &looper, const sp<AMessage> &outputFormat, const sp<MediaSource> &source, + const sp<IGraphicBufferConsumer> &consumer, uint32_t flags = 0); status_t onStart(MetaData *params); @@ -107,6 +110,7 @@ private: bool mDoMoreWorkPending; sp<AMessage> mEncoderActivityNotify; sp<IGraphicBufferProducer> mGraphicBufferProducer; + sp<IGraphicBufferConsumer> mGraphicBufferConsumer; List<MediaBuffer *> mInputBufferQueue; List<size_t> mAvailEncoderInputIndices; List<int64_t> mDecodingTimeQueue; // decoding time (us) for video |