diff options
author | Nipun Kwatra <nkwatra@google.com> | 2010-08-26 17:05:18 -0700 |
---|---|---|
committer | Nipun Kwatra <nkwatra@google.com> | 2010-08-31 10:38:49 -0700 |
commit | 9c075bca0b75093ca0514a3c8f74d73c8e9e83fd (patch) | |
tree | 5669e5acd20c684e4ec8f28e68f883066c640600 /media/libmediaplayerservice/StagefrightRecorder.h | |
parent | 6865ddb29fc7e7a14104d73c65b71074502bb6c7 (diff) | |
download | frameworks_av-9c075bca0b75093ca0514a3c8f74d73c8e9e83fd.zip frameworks_av-9c075bca0b75093ca0514a3c8f74d73c8e9e83fd.tar.gz frameworks_av-9c075bca0b75093ca0514a3c8f74d73c8e9e83fd.tar.bz2 |
Adding support for parallel recording sessions.
- Added setOutputFileAuxiliary to pass the auxiliary file descriptor. The java
interface through JNI will be checked in next.
- renamed setupCameraSource to setupCamera as the function just sets the camera.
- Added setupCameraSource which sets up the camera source. This functionality
was in setupVideoEncoder before.
- setupVideoEncoder now takes in a cameraSource instead of creating it on it
own.
- Refactored startMPEG4Recording() to use setupMPEG4Recording,
setupMPEG4MetaData.
- setupMPEG4Recording() takes in file descriptor, bitrates to setup a mpeg4
writer. This function can be called multiple times to setup multiple
writers.
- Added setupMPEG4MetaData() for setting up the meta data for mpeg4 writer.
startMPEG4Recording() now calls setupMPEG4Recording, setupMPEG4MetaData for
each recording session.
Change-Id: I07f5334a1ff8e12a36f58e94129fcfa6add2208b
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.h')
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index 628e19b..d75a540 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -24,8 +24,11 @@ namespace android { class Camera; +class CameraSource; +class MediaSourceSplitter; struct MediaSource; struct MediaWriter; +class MetaData; struct AudioSource; class MediaProfiles; @@ -45,6 +48,7 @@ struct StagefrightRecorder : public MediaRecorderBase { virtual status_t setPreviewSurface(const sp<Surface>& surface); virtual status_t setOutputFile(const char *path); virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); + virtual status_t setOutputFileAuxiliary(int fd); virtual status_t setParameters(const String8& params); virtual status_t setListener(const sp<IMediaRecorderClient>& listener); virtual status_t prepare(); @@ -65,7 +69,7 @@ private: sp<Camera> mCamera; sp<Surface> mPreviewSurface; sp<IMediaRecorderClient> mListener; - sp<MediaWriter> mWriter; + sp<MediaWriter> mWriter, mWriterAux; sp<AudioSource> mAudioSourceNode; audio_source mAudioSource; @@ -76,8 +80,8 @@ private: bool mUse64BitFileOffset; int32_t mVideoWidth, mVideoHeight; int32_t mFrameRate; - int32_t mVideoBitRate; - int32_t mAudioBitRate; + int32_t mVideoBitRate, mVideoBitRateAux; + int32_t mAudioBitRate, mAudioBitRateAux; int32_t mAudioChannels; int32_t mSampleRate; int32_t mInterleaveDurationUs; @@ -95,21 +99,34 @@ private: bool mCaptureTimeLapse; bool mUseStillCameraForTimeLapse; int64_t mTimeBetweenTimeLapseFrameCaptureUs; + bool mCaptureAuxVideo; + sp<MediaSourceSplitter> mCameraSourceSplitter; String8 mParams; - int mOutputFd; + int mOutputFd, mOutputFdAux; int32_t mFlags; MediaProfiles *mEncoderProfiles; + status_t setupMPEG4Recording( + bool useAuxiliaryCameraSource, + int outputFd, int32_t audioBitRate, int32_t videoBitRate, + int32_t *totalBitRate, + sp<MediaWriter> *mediaWriter); + void setupMPEG4MetaData(int64_t startTimeUs, int32_t totalBitRate, + sp<MetaData> *meta); status_t startMPEG4Recording(); status_t startAMRRecording(); status_t startAACRecording(); status_t startRTPRecording(); sp<MediaSource> createAudioSource(); - status_t setupCameraSource(); + status_t setupCamera(); + status_t setupCameraSource(sp<CameraSource> *cameraSource); status_t setupAudioEncoder(const sp<MediaWriter>& writer); - status_t setupVideoEncoder(sp<MediaSource> *source); + status_t setupVideoEncoder( + sp<MediaSource> cameraSource, + int32_t videoBitRate, + sp<MediaSource> *source); // Encoding parameter handling utilities status_t setParameter(const String8 &key, const String8 &value); |