Loading media/libmediaplayerservice/StagefrightRecorder.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ status_t StagefrightRecorder::setOutputFile(int fd) { } status_t StagefrightRecorder::setNextOutputFile(int fd) { Mutex::Autolock autolock(mLock); // Only support MPEG4 if (mOutputFormat != OUTPUT_FORMAT_MPEG_4) { ALOGE("Only MP4 file format supports setting next output file"); Loading @@ -290,6 +291,10 @@ status_t StagefrightRecorder::setNextOutputFile(int fd) { // start with a clean, empty file ftruncate(fd, 0); int nextFd = dup(fd); if (mWriter == NULL) { ALOGE("setNextOutputFile failed. Writer has been freed"); return INVALID_OPERATION; } return mWriter->setNextFd(nextFd); } Loading Loading @@ -851,6 +856,8 @@ status_t StagefrightRecorder::prepareInternal() { } status_t StagefrightRecorder::prepare() { ALOGV("prepare"); Mutex::Autolock autolock(mLock); if (mVideoSource == VIDEO_SOURCE_SURFACE) { return prepareInternal(); } Loading @@ -859,6 +866,7 @@ status_t StagefrightRecorder::prepare() { status_t StagefrightRecorder::start() { ALOGV("start"); Mutex::Autolock autolock(mLock); if (mOutputFd < 0) { ALOGE("Output file descriptor is invalid"); return INVALID_OPERATION; Loading Loading @@ -1867,6 +1875,7 @@ status_t StagefrightRecorder::resume() { status_t StagefrightRecorder::stop() { ALOGV("stop"); Mutex::Autolock autolock(mLock); status_t err = OK; if (mCaptureFpsEnable && mCameraSourceTimeLapse != NULL) { Loading Loading @@ -1984,6 +1993,7 @@ status_t StagefrightRecorder::getMaxAmplitude(int *max) { status_t StagefrightRecorder::dump( int fd, const Vector<String16>& args) const { ALOGV("dump"); Mutex::Autolock autolock(mLock); const size_t SIZE = 256; char buffer[SIZE]; String8 result; Loading media/libmediaplayerservice/StagefrightRecorder.h +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ struct ALooper; struct StagefrightRecorder : public MediaRecorderBase { explicit StagefrightRecorder(const String16 &opPackageName); virtual ~StagefrightRecorder(); virtual status_t init(); virtual status_t setAudioSource(audio_source_t as); virtual status_t setVideoSource(video_source vs); Loading Loading @@ -73,6 +72,7 @@ struct StagefrightRecorder : public MediaRecorderBase { virtual sp<IGraphicBufferProducer> querySurfaceMediaSource() const; private: mutable Mutex mLock; sp<hardware::ICamera> mCamera; sp<ICameraRecordingProxy> mCameraProxy; sp<IGraphicBufferProducer> mPreviewSurface; Loading Loading
media/libmediaplayerservice/StagefrightRecorder.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ status_t StagefrightRecorder::setOutputFile(int fd) { } status_t StagefrightRecorder::setNextOutputFile(int fd) { Mutex::Autolock autolock(mLock); // Only support MPEG4 if (mOutputFormat != OUTPUT_FORMAT_MPEG_4) { ALOGE("Only MP4 file format supports setting next output file"); Loading @@ -290,6 +291,10 @@ status_t StagefrightRecorder::setNextOutputFile(int fd) { // start with a clean, empty file ftruncate(fd, 0); int nextFd = dup(fd); if (mWriter == NULL) { ALOGE("setNextOutputFile failed. Writer has been freed"); return INVALID_OPERATION; } return mWriter->setNextFd(nextFd); } Loading Loading @@ -851,6 +856,8 @@ status_t StagefrightRecorder::prepareInternal() { } status_t StagefrightRecorder::prepare() { ALOGV("prepare"); Mutex::Autolock autolock(mLock); if (mVideoSource == VIDEO_SOURCE_SURFACE) { return prepareInternal(); } Loading @@ -859,6 +866,7 @@ status_t StagefrightRecorder::prepare() { status_t StagefrightRecorder::start() { ALOGV("start"); Mutex::Autolock autolock(mLock); if (mOutputFd < 0) { ALOGE("Output file descriptor is invalid"); return INVALID_OPERATION; Loading Loading @@ -1867,6 +1875,7 @@ status_t StagefrightRecorder::resume() { status_t StagefrightRecorder::stop() { ALOGV("stop"); Mutex::Autolock autolock(mLock); status_t err = OK; if (mCaptureFpsEnable && mCameraSourceTimeLapse != NULL) { Loading Loading @@ -1984,6 +1993,7 @@ status_t StagefrightRecorder::getMaxAmplitude(int *max) { status_t StagefrightRecorder::dump( int fd, const Vector<String16>& args) const { ALOGV("dump"); Mutex::Autolock autolock(mLock); const size_t SIZE = 256; char buffer[SIZE]; String8 result; Loading
media/libmediaplayerservice/StagefrightRecorder.h +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ struct ALooper; struct StagefrightRecorder : public MediaRecorderBase { explicit StagefrightRecorder(const String16 &opPackageName); virtual ~StagefrightRecorder(); virtual status_t init(); virtual status_t setAudioSource(audio_source_t as); virtual status_t setVideoSource(video_source vs); Loading Loading @@ -73,6 +72,7 @@ struct StagefrightRecorder : public MediaRecorderBase { virtual sp<IGraphicBufferProducer> querySurfaceMediaSource() const; private: mutable Mutex mLock; sp<hardware::ICamera> mCamera; sp<ICameraRecordingProxy> mCameraProxy; sp<IGraphicBufferProducer> mPreviewSurface; Loading