From 3cecf640c4daf2df616b278bd9986018c8182908 Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 29 Jun 2011 16:56:52 -0700 Subject: Do not support still image capture mode for timelapse video recording related-to-bug: 4973779 Change-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45 --- include/media/IMediaRecorder.h | 1 - include/media/mediarecorder.h | 2 - include/media/stagefright/CameraSourceTimeLapse.h | 76 ----------------------- 3 files changed, 79 deletions(-) (limited to 'include') diff --git a/include/media/IMediaRecorder.h b/include/media/IMediaRecorder.h index 007aea6..ec84e25 100644 --- a/include/media/IMediaRecorder.h +++ b/include/media/IMediaRecorder.h @@ -43,7 +43,6 @@ public: virtual status_t setAudioEncoder(int ae) = 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 setOutputFileAuxiliary(int fd) = 0; virtual status_t setVideoSize(int width, int height) = 0; virtual status_t setVideoFrameRate(int frames_per_second) = 0; virtual status_t setParameters(const String8& params) = 0; diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h index 72d3736..30db642 100644 --- a/include/media/mediarecorder.h +++ b/include/media/mediarecorder.h @@ -215,7 +215,6 @@ public: status_t setAudioEncoder(int ae); status_t setOutputFile(const char* path); status_t setOutputFile(int fd, int64_t offset, int64_t length); - status_t setOutputFileAuxiliary(int fd); status_t setVideoSize(int width, int height); status_t setVideoFrameRate(int frames_per_second); status_t setParameters(const String8& params); @@ -249,7 +248,6 @@ private: bool mIsAudioEncoderSet; bool mIsVideoEncoderSet; bool mIsOutputFileSet; - bool mIsAuxiliaryOutputFileSet; Mutex mLock; Mutex mNotifyLock; }; diff --git a/include/media/stagefright/CameraSourceTimeLapse.h b/include/media/stagefright/CameraSourceTimeLapse.h index f07ebba..0e264c7 100644 --- a/include/media/stagefright/CameraSourceTimeLapse.h +++ b/include/media/stagefright/CameraSourceTimeLapse.h @@ -53,27 +53,10 @@ public: void startQuickReadReturns(); private: - // If true, will use still camera takePicture() for time lapse frames - // If false, will use the videocamera frames instead. - bool mUseStillCameraForTimeLapse; - - // Size of picture taken from still camera. This may be larger than the size - // of the video, as still camera may not support the exact video resolution - // demanded. See setPictureSizeToClosestSupported(). - int32_t mPictureWidth; - int32_t mPictureHeight; - // size of the encoded video. int32_t mVideoWidth; int32_t mVideoHeight; - // True if we need to crop the still camera image to get the video frame. - bool mNeedCropping; - - // Start location of the cropping rectangle. - int32_t mCropRectStartX; - int32_t mCropRectStartY; - // Time between capture of two frames during time lapse recording // Negative value indicates that timelapse is disabled. int64_t mTimeBetweenTimeLapseFrameCaptureUs; @@ -84,9 +67,6 @@ private: // Real timestamp of the last encoded time lapse frame int64_t mLastTimeLapseFrameRealTimestampUs; - // Thread id of thread which takes still picture and sleeps in a loop. - pthread_t mThreadTimeLapse; - // Variable set in dataCallbackTimestamp() to help skipCurrentFrame() // to know if current frame needs to be skipped. bool mSkipCurrentFrame; @@ -111,9 +91,6 @@ private: // Lock for accessing quick stop variables. Mutex mQuickStopLock; - // Condition variable to wake up still picture thread. - Condition mTakePictureCondition; - // mQuickStop is set to true if we use quick read() returns, otherwise it is set // to false. Once in this mode read() return a copy of the last read frame // with the same time stamp. See startQuickReadReturns(). @@ -148,32 +125,13 @@ private: // Wrapper over CameraSource::read() to implement quick stop. virtual status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL); - // For still camera case starts a thread which calls camera's takePicture() - // in a loop. For video camera case, just starts the camera's video recording. - virtual void startCameraRecording(); - - // For still camera case joins the thread created in startCameraRecording(). // For video camera case, just stops the camera's video recording. virtual void stopCameraRecording(); - // For still camera case don't need to do anything as memory is locally - // allocated with refcounting. - // For video camera case just tell the camera to release the frame. - virtual void releaseRecordingFrame(const sp& frame); - // mSkipCurrentFrame is set to true in dataCallbackTimestamp() if the current // frame needs to be skipped and this function just returns the value of mSkipCurrentFrame. virtual bool skipCurrentFrame(int64_t timestampUs); - // Handles the callback to handle raw frame data from the still camera. - // Creates a copy of the frame data as the camera can reuse the frame memory - // once this callback returns. The function also sets a new timstamp corresponding - // to one frame time ahead of the last encoded frame's time stamp. It then - // calls dataCallbackTimestamp() of the base class with the copied data and the - // modified timestamp, which will think that it recieved the frame from a video - // camera and proceed as usual. - virtual void dataCallback(int32_t msgType, const sp &data); - // In the video camera case calls skipFrameAndModifyTimeStamp() to modify // timestamp and set mSkipCurrentFrame. // Then it calls the base CameraSource::dataCallbackTimestamp() @@ -189,24 +147,6 @@ private: // Otherwise returns false. bool trySettingVideoSize(int32_t width, int32_t height); - // The still camera may not support the demanded video width and height. - // We look for the supported picture sizes from the still camera and - // choose the smallest one with either dimensions higher than the corresponding - // video dimensions. The still picture will be cropped to get the video frame. - // The function returns true if the camera supports picture sizes greater than - // or equal to the passed in width and height, and false otherwise. - bool setPictureSizeToClosestSupported(int32_t width, int32_t height); - - // Computes the offset of the rectangle from where to start cropping the - // still image into the video frame. We choose the center of the image to be - // cropped. The offset is stored in (mCropRectStartX, mCropRectStartY). - bool computeCropRectangleOffset(); - - // Crops the source data into a smaller image starting at - // (mCropRectStartX, mCropRectStartY) and of the size of the video frame. - // The data is returned into a newly allocated IMemory. - sp cropYUVImage(const sp &source_data); - // When video camera is used for time lapse capture, returns true // until enough time has passed for the next time lapse frame. When // the frame needs to be encoded, it returns false and also modifies @@ -217,22 +157,6 @@ private: // Wrapper to enter threadTimeLapseEntry() static void *ThreadTimeLapseWrapper(void *me); - // Runs a loop which sleeps until a still picture is required - // and then calls mCamera->takePicture() to take the still picture. - // Used only in the case mUseStillCameraForTimeLapse = true. - void threadTimeLapseEntry(); - - // Wrapper to enter threadStartPreview() - static void *ThreadStartPreviewWrapper(void *me); - - // Starts the camera's preview. - void threadStartPreview(); - - // Starts thread ThreadStartPreviewWrapper() for restarting preview. - // Needs to be done in a thread so that dataCallback() which calls this function - // can return, and the camera can know that takePicture() is done. - void restartPreview(); - // Creates a copy of source_data into a new memory of final type MemoryBase. sp createIMemoryCopy(const sp &source_data); -- cgit v1.1