summaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
commit99ffda877980468a9ae31e013cd10fb3645df1b0 (patch)
treedbcbf90028d4e60763724ca1bac4a63af7170973 /include/media
parent925a349b45d1d16eaaca6a1f4827191831271ca0 (diff)
downloadframeworks_av-99ffda877980468a9ae31e013cd10fb3645df1b0.zip
frameworks_av-99ffda877980468a9ae31e013cd10fb3645df1b0.tar.gz
frameworks_av-99ffda877980468a9ae31e013cd10fb3645df1b0.tar.bz2
auto import from //depot/cupcake/@137055
Diffstat (limited to 'include/media')
-rw-r--r--include/media/AudioRecord.h9
-rw-r--r--include/media/IMediaRecorder.h2
-rw-r--r--include/media/PVMediaRecorder.h2
-rw-r--r--include/media/mediarecorder.h39
4 files changed, 43 insertions, 9 deletions
diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h
index dd585c9..ff64855 100644
--- a/include/media/AudioRecord.h
+++ b/include/media/AudioRecord.h
@@ -125,7 +125,8 @@ public:
* channelCount: Number of PCM channels (e.g 2 for stereo).
* frameCount: Total size of track PCM buffer in frames. This defines the
* latency of the track.
- * flags: Reserved for future use.
+ * flags: A bitmask of acoustic values from enum record_flags. It enables
+ * AGC, NS, and IIR.
* cbf: Callback function. If not null, this function is called periodically
* to provide new PCM data.
* notificationFrames: The callback function is called each time notificationFrames PCM
@@ -133,6 +134,12 @@ public:
* user Context for use by the callback receiver.
*/
+ enum record_flags {
+ RECORD_AGC_ENABLE = AudioSystem::AGC_ENABLE,
+ RECORD_NS_ENABLE = AudioSystem::NS_ENABLE,
+ RECORD_IIR_ENABLE = AudioSystem::TX_IIR_ENABLE
+ };
+
AudioRecord(int streamType,
uint32_t sampleRate = 0,
int format = 0,
diff --git a/include/media/IMediaRecorder.h b/include/media/IMediaRecorder.h
index 0dff84e..eace996 100644
--- a/include/media/IMediaRecorder.h
+++ b/include/media/IMediaRecorder.h
@@ -24,6 +24,7 @@ namespace android {
class ISurface;
class ICamera;
+class IMediaPlayerClient;
class IMediaRecorder: public IInterface
{
@@ -41,6 +42,7 @@ public:
virtual status_t setOutputFile(int fd, int64_t offset, int64_t length) = 0;
virtual status_t setVideoSize(int width, int height) = 0;
virtual status_t setVideoFrameRate(int frames_per_second) = 0;
+ virtual status_t setListener(const sp<IMediaPlayerClient>& listener) = 0;
virtual status_t prepare() = 0;
virtual status_t getMaxAmplitude(int* max) = 0;
virtual status_t start() = 0;
diff --git a/include/media/PVMediaRecorder.h b/include/media/PVMediaRecorder.h
index f795d04..3315c59 100644
--- a/include/media/PVMediaRecorder.h
+++ b/include/media/PVMediaRecorder.h
@@ -19,6 +19,7 @@
#define ANDROID_PVMEDIARECORDER_H
#include <media/mediarecorder.h>
+#include <media/IMediaPlayerClient.h>
namespace android {
@@ -44,6 +45,7 @@ public:
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 setListener(const sp<IMediaPlayerClient>& listener);
status_t prepare();
status_t start();
status_t stop();
diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h
index 436e8f1..8991f08 100644
--- a/include/media/mediarecorder.h
+++ b/include/media/mediarecorder.h
@@ -19,6 +19,7 @@
#define ANDROID_MEDIARECORDER_H
#include <utils.h>
+#include <media/IMediaPlayerClient.h>
namespace android {
@@ -87,7 +88,24 @@ enum media_recorder_states {
MEDIA_RECORDER_RECORDING = 1 << 4,
};
-class MediaRecorder
+// The "msg" code passed to the listener in notify.
+enum {
+ MEDIA_RECORDER_EVENT_ERROR = 1
+};
+
+enum {
+ MEDIA_RECORDER_ERROR_UNKNOWN = 1
+};
+
+// ----------------------------------------------------------------------------
+// ref-counted object for callbacks
+class MediaRecorderListener: virtual public RefBase
+{
+public:
+ virtual void notify(int msg, int ext1, int ext2) = 0;
+};
+
+class MediaRecorder : public BnMediaPlayerClient
{
public:
MediaRecorder();
@@ -105,6 +123,7 @@ public:
status_t setOutputFile(int fd, int64_t offset, int64_t length);
status_t setVideoSize(int width, int height);
status_t setVideoFrameRate(int frames_per_second);
+ status_t setListener(const sp<MediaRecorderListener>& listener);
status_t prepare();
status_t getMaxAmplitude(int* max);
status_t start();
@@ -113,18 +132,22 @@ public:
status_t init();
status_t close();
status_t release();
+ void notify(int msg, int ext1, int ext2);
private:
void doCleanUp();
status_t doReset();
- sp<IMediaRecorder> mMediaRecorder;
- media_recorder_states mCurrentState;
- bool mIsAudioSourceSet;
- bool mIsVideoSourceSet;
- bool mIsAudioEncoderSet;
- bool mIsVideoEncoderSet;
- bool mIsOutputFileSet;
+ sp<IMediaRecorder> mMediaRecorder;
+ sp<MediaRecorderListener> mListener;
+ media_recorder_states mCurrentState;
+ bool mIsAudioSourceSet;
+ bool mIsVideoSourceSet;
+ bool mIsAudioEncoderSet;
+ bool mIsVideoEncoderSet;
+ bool mIsOutputFileSet;
+ Mutex mLock;
+ Mutex mNotifyLock;
};
}; // namespace android