summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-11-17 10:46:41 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-11-17 10:46:41 -0800
commitf78933fdfc5bc71881b3011f921b643d90387664 (patch)
treee13d666ee10eea352fd7d3d253e1f4d96984578e /include
parentc77a293c4971d9f6c4e3b0c0573fb13276bedf18 (diff)
parent30ab66297501757d745b9ae10da61adcd891f497 (diff)
downloadframeworks_av-f78933fdfc5bc71881b3011f921b643d90387664.zip
frameworks_av-f78933fdfc5bc71881b3011f921b643d90387664.tar.gz
frameworks_av-f78933fdfc5bc71881b3011f921b643d90387664.tar.bz2
Merge change Iea6a38c6 into eclair-mr2
* changes: Squashed commit of the following:
Diffstat (limited to 'include')
-rw-r--r--include/media/MediaRecorderBase.h59
-rw-r--r--include/media/PVMediaRecorder.h50
-rw-r--r--include/media/stagefright/CameraSource.h5
-rw-r--r--include/media/stagefright/MPEG4Writer.h2
-rw-r--r--include/media/stagefright/MetaData.h3
-rw-r--r--include/media/stagefright/OMXCodec.h1
6 files changed, 95 insertions, 25 deletions
diff --git a/include/media/MediaRecorderBase.h b/include/media/MediaRecorderBase.h
new file mode 100644
index 0000000..5b787a7
--- /dev/null
+++ b/include/media/MediaRecorderBase.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MEDIA_RECORDER_BASE_H_
+
+#define MEDIA_RECORDER_BASE_H_
+
+#include <media/mediarecorder.h>
+
+namespace android {
+
+class ISurface;
+
+struct MediaRecorderBase {
+ MediaRecorderBase() {}
+ virtual ~MediaRecorderBase() {}
+
+ virtual status_t init() = 0;
+ virtual status_t setAudioSource(audio_source as) = 0;
+ virtual status_t setVideoSource(video_source vs) = 0;
+ virtual status_t setOutputFormat(output_format of) = 0;
+ virtual status_t setAudioEncoder(audio_encoder ae) = 0;
+ virtual status_t setVideoEncoder(video_encoder ve) = 0;
+ virtual status_t setVideoSize(int width, int height) = 0;
+ virtual status_t setVideoFrameRate(int frames_per_second) = 0;
+ virtual status_t setCamera(const sp<ICamera>& camera) = 0;
+ virtual status_t setPreviewSurface(const sp<ISurface>& surface) = 0;
+ virtual status_t setOutputFile(const char *path) = 0;
+ virtual status_t setOutputFile(int fd, int64_t offset, int64_t length) = 0;
+ virtual status_t setParameters(const String8& params) = 0;
+ virtual status_t setListener(const sp<IMediaPlayerClient>& listener) = 0;
+ virtual status_t prepare() = 0;
+ virtual status_t start() = 0;
+ virtual status_t stop() = 0;
+ virtual status_t close() = 0;
+ virtual status_t reset() = 0;
+ virtual status_t getMaxAmplitude(int *max) = 0;
+
+private:
+ MediaRecorderBase(const MediaRecorderBase &);
+ MediaRecorderBase &operator=(const MediaRecorderBase &);
+};
+
+} // namespace android
+
+#endif // MEDIA_RECORDER_BASE_H_
diff --git a/include/media/PVMediaRecorder.h b/include/media/PVMediaRecorder.h
index 0c71932..4f17c1a 100644
--- a/include/media/PVMediaRecorder.h
+++ b/include/media/PVMediaRecorder.h
@@ -18,8 +18,8 @@
#ifndef ANDROID_PVMEDIARECORDER_H
#define ANDROID_PVMEDIARECORDER_H
-#include <media/mediarecorder.h>
#include <media/IMediaPlayerClient.h>
+#include <media/MediaRecorderBase.h>
namespace android {
@@ -27,37 +27,39 @@ class ISurface;
class ICamera;
class AuthorDriverWrapper;
-class PVMediaRecorder
-{
+class PVMediaRecorder : public MediaRecorderBase {
public:
PVMediaRecorder();
- ~PVMediaRecorder();
+ virtual ~PVMediaRecorder();
- status_t init();
- status_t setAudioSource(audio_source as);
- status_t setVideoSource(video_source vs);
- status_t setOutputFormat(output_format of);
- status_t setAudioEncoder(audio_encoder ae);
- status_t setVideoEncoder(video_encoder ve);
- status_t setVideoSize(int width, int height);
- status_t setVideoFrameRate(int frames_per_second);
- status_t setCamera(const sp<ICamera>& camera);
- status_t setPreviewSurface(const sp<ISurface>& surface);
- status_t setOutputFile(const char *path);
- status_t setOutputFile(int fd, int64_t offset, int64_t length);
- status_t setParameters(const String8& params);
- status_t setListener(const sp<IMediaPlayerClient>& listener);
- status_t prepare();
- status_t start();
- status_t stop();
- status_t close();
- status_t reset();
- status_t getMaxAmplitude(int *max);
+ virtual status_t init();
+ virtual status_t setAudioSource(audio_source as);
+ virtual status_t setVideoSource(video_source vs);
+ virtual status_t setOutputFormat(output_format of);
+ virtual status_t setAudioEncoder(audio_encoder ae);
+ virtual status_t setVideoEncoder(video_encoder ve);
+ virtual status_t setVideoSize(int width, int height);
+ virtual status_t setVideoFrameRate(int frames_per_second);
+ virtual status_t setCamera(const sp<ICamera>& camera);
+ virtual status_t setPreviewSurface(const sp<ISurface>& surface);
+ virtual status_t setOutputFile(const char *path);
+ virtual status_t setOutputFile(int fd, int64_t offset, int64_t length);
+ virtual status_t setParameters(const String8& params);
+ virtual status_t setListener(const sp<IMediaPlayerClient>& listener);
+ virtual status_t prepare();
+ virtual status_t start();
+ virtual status_t stop();
+ virtual status_t close();
+ virtual status_t reset();
+ virtual status_t getMaxAmplitude(int *max);
private:
status_t doStop();
AuthorDriverWrapper* mAuthorDriverWrapper;
+
+ PVMediaRecorder(const PVMediaRecorder &);
+ PVMediaRecorder &operator=(const PVMediaRecorder &);
};
}; // namespace android
diff --git a/include/media/stagefright/CameraSource.h b/include/media/stagefright/CameraSource.h
index ff3ea05..ea435de 100644
--- a/include/media/stagefright/CameraSource.h
+++ b/include/media/stagefright/CameraSource.h
@@ -26,6 +26,7 @@
namespace android {
+class ICamera;
class IMemory;
class ISurface;
class Camera;
@@ -33,9 +34,12 @@ class Camera;
class CameraSource : public MediaSource {
public:
static CameraSource *Create();
+ static CameraSource *CreateFromICamera(const sp<ICamera> &icamera);
virtual ~CameraSource();
+ void setPreviewSurface(const sp<ISurface> &surface);
+
virtual status_t start(MetaData *params = NULL);
virtual status_t stop();
@@ -48,6 +52,7 @@ private:
friend class CameraSourceListener;
sp<Camera> mCamera;
+ sp<ISurface> mPreviewSurface;
Mutex mLock;
Condition mFrameAvailableCondition;
diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h
index 6b0399f..2ca04fa 100644
--- a/include/media/stagefright/MPEG4Writer.h
+++ b/include/media/stagefright/MPEG4Writer.h
@@ -33,6 +33,7 @@ class MetaData;
class MPEG4Writer : public RefBase {
public:
MPEG4Writer(const char *filename);
+ MPEG4Writer(int fd);
void addSource(const sp<MediaSource> &source);
status_t start();
@@ -65,6 +66,7 @@ private:
List<off_t> mBoxes;
off_t addSample(MediaBuffer *buffer);
+ off_t addLengthPrefixedSample(MediaBuffer *buffer);
MPEG4Writer(const MPEG4Writer &);
MPEG4Writer &operator=(const MPEG4Writer &);
diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h
index c2d8f98..583128f 100644
--- a/include/media/stagefright/MetaData.h
+++ b/include/media/stagefright/MetaData.h
@@ -38,7 +38,8 @@ enum {
kKeyESDS = 'esds', // raw data
kKeyAVCC = 'avcc', // raw data
kKeyWantsNALFragments = 'NALf',
- kKeyIsSyncFrame = 'sync',
+ kKeyIsSyncFrame = 'sync', // int32_t (bool)
+ kKeyIsCodecConfig = 'conf', // int32_t (bool)
kKeyTime = 'time', // int64_t (usecs)
kKeyDuration = 'dura', // int64_t (usecs)
kKeyColorFormat = 'colf',
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 7890883..4c60623 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -159,6 +159,7 @@ private:
const char *mime, OMX_U32 width, OMX_U32 height);
status_t setupMPEG4EncoderParameters();
+ status_t setupAVCEncoderParameters();
void setVideoOutputFormat(
const char *mime, OMX_U32 width, OMX_U32 height);