diff options
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); |