summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPannag Sanketi <psanketi@google.com>2011-07-22 16:42:41 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-22 16:42:41 -0700
commit77882a8deb5167235ae591e49c9dcff9abb373c1 (patch)
tree92f1198bc7488f47b2160d10e772c3823ed7fb40 /include
parent29a142c7237821b6dc7bd1e8b56bb1efdc56767b (diff)
parentb33f3407bab0970a7f9241680723a1140b177c50 (diff)
downloadframeworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.zip
frameworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.tar.gz
frameworks_av-77882a8deb5167235ae591e49c9dcff9abb373c1.tar.bz2
Merge "Connect MediaRecorder Native to SurfaceMediaSource"
Diffstat (limited to 'include')
-rw-r--r--include/media/IMediaRecorder.h2
-rw-r--r--include/media/MediaRecorderBase.h2
-rw-r--r--include/media/mediarecorder.h10
-rw-r--r--include/media/stagefright/SurfaceMediaSource.h10
4 files changed, 21 insertions, 3 deletions
diff --git a/include/media/IMediaRecorder.h b/include/media/IMediaRecorder.h
index a73267d..007aea6 100644
--- a/include/media/IMediaRecorder.h
+++ b/include/media/IMediaRecorder.h
@@ -26,6 +26,7 @@ class Surface;
class ICamera;
class ICameraRecordingProxy;
class IMediaRecorderClient;
+class ISurfaceTexture;
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 sp<ISurfaceTexture> querySurfaceMediaSource() = 0;
};
// ----------------------------------------------------------------------------
diff --git a/include/media/MediaRecorderBase.h b/include/media/MediaRecorderBase.h
index 1c08969..ef799f5 100644
--- a/include/media/MediaRecorderBase.h
+++ b/include/media/MediaRecorderBase.h
@@ -26,6 +26,7 @@ namespace android {
class ICameraRecordingProxy;
class Surface;
+class ISurfaceTexture;
struct MediaRecorderBase {
MediaRecorderBase() {}
@@ -54,6 +55,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 sp<ISurfaceTexture> querySurfaceMediaSource() const = 0;
private:
MediaRecorderBase(const MediaRecorderBase &);
diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h
index af12d3c..72d3736 100644
--- a/include/media/mediarecorder.h
+++ b/include/media/mediarecorder.h
@@ -31,12 +31,15 @@ class Surface;
class IMediaRecorder;
class ICamera;
class ICameraRecordingProxy;
+class ISurfaceTexture;
+class SurfaceTextureClient;
typedef void (*media_completion_f)(status_t status, void *cookie);
enum video_source {
VIDEO_SOURCE_DEFAULT = 0,
VIDEO_SOURCE_CAMERA = 1,
+ VIDEO_SOURCE_GRALLOC_BUFFER = 2,
VIDEO_SOURCE_LIST_END // must be last - used to validate audio source type
};
@@ -226,6 +229,7 @@ public:
status_t close();
status_t release();
void notify(int msg, int ext1, int ext2);
+ sp<ISurfaceTexture> querySurfaceMediaSourceFromMediaServer();
private:
void doCleanUp();
@@ -233,6 +237,12 @@ private:
sp<IMediaRecorder> mMediaRecorder;
sp<MediaRecorderListener> mListener;
+
+ // Reference toISurfaceTexture
+ // for encoding GL Frames. That is useful only when the
+ // video source is set to VIDEO_SOURCE_GRALLOC_BUFFER
+ sp<ISurfaceTexture> mSurfaceMediaSource;
+
media_recorder_states mCurrentState;
bool mIsAudioSourceSet;
bool mIsVideoSourceSet;
diff --git a/include/media/stagefright/SurfaceMediaSource.h b/include/media/stagefright/SurfaceMediaSource.h
index 4251ba9..56bd9c3 100644
--- a/include/media/stagefright/SurfaceMediaSource.h
+++ b/include/media/stagefright/SurfaceMediaSource.h
@@ -64,8 +64,8 @@ public:
virtual sp<MetaData> getFormat();
// Get / Set the frame rate used for encoding. Default fps = 30
- void setFrameRate(uint32_t fps) ;
- uint32_t getFrameRate( ) const;
+ status_t setFrameRate(int32_t fps) ;
+ int32_t getFrameRate( ) const;
// The call for the StageFrightRecorder to tell us that
// it is done using the MediaBuffer data so that its state
@@ -171,7 +171,11 @@ public:
void dump(String8& result, const char* prefix, char* buffer,
size_t SIZE) const;
- protected:
+ // isMetaDataStoredInVideoBuffers tells the encoder whether we will
+ // pass metadata through the buffers. Currently, it is force set to true
+ bool isMetaDataStoredInVideoBuffers() const;
+
+protected:
// freeAllBuffers frees the resources (both GraphicBuffer and EGLImage) for
// all slots.