summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/CameraSource.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-12-11 10:43:41 -0800
committerJames Dong <jdong@google.com>2010-12-11 10:57:03 -0800
commit79e23b41fad961008bfde6e26b3c6f86878ca69d (patch)
tree590d806e7ff9da6341c5185a4d7291d1de428e43 /media/libstagefright/CameraSource.cpp
parent8d45a37ff076814db39471f15d309567605b3416 (diff)
downloadframeworks_av-79e23b41fad961008bfde6e26b3c6f86878ca69d.zip
frameworks_av-79e23b41fad961008bfde6e26b3c6f86878ca69d.tar.gz
frameworks_av-79e23b41fad961008bfde6e26b3c6f86878ca69d.tar.bz2
Revert "Allows the authoring engine to skip frame."
o Skipping frames could lead to a lot of issues such as I frames is lost etc. It is not being used anyway. This reverts commit 53d4e0d58e2d5c18f6e026c705af833b9bdd7aba. Conflicts: media/libstagefright/AudioSource.cpp media/libstagefright/CameraSource.cpp Change-Id: I3abba1647de48db25bdc369066eb2a7ae4dedec2
Diffstat (limited to 'media/libstagefright/CameraSource.cpp')
-rw-r--r--media/libstagefright/CameraSource.cpp55
1 files changed, 16 insertions, 39 deletions
diff --git a/media/libstagefright/CameraSource.cpp b/media/libstagefright/CameraSource.cpp
index fac7b78..2f3353b 100644
--- a/media/libstagefright/CameraSource.cpp
+++ b/media/libstagefright/CameraSource.cpp
@@ -665,45 +665,22 @@ status_t CameraSource::read(
{
Mutex::Autolock autoLock(mLock);
- while (mStarted) {
- while(mFramesReceived.empty()) {
- mFrameAvailableCondition.wait(mLock);
- }
-
- if (!mStarted) {
- return OK;
- }
-
- frame = *mFramesReceived.begin();
- mFramesReceived.erase(mFramesReceived.begin());
-
- frameTime = *mFrameTimes.begin();
- mFrameTimes.erase(mFrameTimes.begin());
- int64_t skipTimeUs;
- if (!options || !options->getSkipFrame(&skipTimeUs)) {
- skipTimeUs = frameTime;
- }
- if (skipTimeUs > frameTime) {
- LOGV("skipTimeUs: %lld us > frameTime: %lld us",
- skipTimeUs, frameTime);
- releaseOneRecordingFrame(frame);
- ++mNumFramesDropped;
- // Safeguard against the abuse of the kSkipFrame_Option.
- if (skipTimeUs - frameTime >= 1E6) {
- LOGE("Frame skipping requested is way too long: %lld us",
- skipTimeUs - frameTime);
- return UNKNOWN_ERROR;
- }
- } else {
- mFramesBeingEncoded.push_back(frame);
- *buffer = new MediaBuffer(frame->pointer(), frame->size());
- (*buffer)->setObserver(this);
- (*buffer)->add_ref();
- (*buffer)->meta_data()->setInt64(kKeyTime, frameTime);
-
- return OK;
- }
+ while (mStarted && mFramesReceived.empty()) {
+ mFrameAvailableCondition.wait(mLock);
}
+ if (!mStarted) {
+ return OK;
+ }
+ frame = *mFramesReceived.begin();
+ mFramesReceived.erase(mFramesReceived.begin());
+
+ frameTime = *mFrameTimes.begin();
+ mFrameTimes.erase(mFrameTimes.begin());
+ mFramesBeingEncoded.push_back(frame);
+ *buffer = new MediaBuffer(frame->pointer(), frame->size());
+ (*buffer)->setObserver(this);
+ (*buffer)->add_ref();
+ (*buffer)->meta_data()->setInt64(kKeyTime, frameTime);
}
return OK;
}
@@ -729,7 +706,7 @@ void CameraSource::dataCallbackTimestamp(int64_t timestampUs,
// May need to skip frame or modify timestamp. Currently implemented
// by the subclass CameraSourceTimeLapse.
- if(skipCurrentFrame(timestampUs)) {
+ if (skipCurrentFrame(timestampUs)) {
releaseOneRecordingFrame(data);
return;
}