summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/libstagefright/AwesomePlayer.cpp1
-rwxr-xr-xmedia/libstagefright/OMXCodec.cpp7
-rw-r--r--services/audioflinger/AudioFlinger.cpp6
-rw-r--r--services/camera/libcameraservice/Camera2Client.cpp8
-rw-r--r--services/camera/libcameraservice/camera2/Parameters.h3
5 files changed, 20 insertions, 5 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp
index 0cb378d1..685e676b 100644
--- a/media/libstagefright/AwesomePlayer.cpp
+++ b/media/libstagefright/AwesomePlayer.cpp
@@ -1504,6 +1504,7 @@ status_t AwesomePlayer::initVideoDecoder(uint32_t flags) {
status_t err = mVideoSource->start();
if (err != OK) {
+ ALOGE("failed to start video source");
mVideoSource.clear();
return err;
}
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index 07f92c7c..70de1749 100755
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -1689,6 +1689,8 @@ status_t OMXCodec::applyRotation() {
if (transform) {
err = native_window_set_buffers_transform(
mNativeWindow.get(), transform);
+ ALOGE("native_window_set_buffers_transform failed: %s (%d)",
+ strerror(-err), -err);
}
return err;
@@ -1703,6 +1705,7 @@ status_t OMXCodec::allocateOutputBuffersFromNativeWindow() {
status_t err = mOMX->getParameter(
mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
if (err != OK) {
+ CODEC_LOGE("getParameter failed: %d", err);
return err;
}
@@ -3606,6 +3609,7 @@ status_t OMXCodec::start(MetaData *meta) {
Mutex::Autolock autoLock(mLock);
if (mState != LOADED) {
+ CODEC_LOGE("called start in the unexpected state: %d", mState);
return UNKNOWN_ERROR;
}
@@ -3639,12 +3643,14 @@ status_t OMXCodec::start(MetaData *meta) {
// if supported, the source to use exactly the same number of input
// buffers as requested by the encoder.
if ((err = init()) != OK) {
+ CODEC_LOGE("init failed: %d", err);
return err;
}
params->setInt32(kKeyNumBuffers, mPortBuffers[kPortIndexInput].size());
err = mSource->start(params.get());
if (err != OK) {
+ CODEC_LOGE("source failed to start: %d", err);
stopOmxComponent_l();
}
return err;
@@ -3652,6 +3658,7 @@ status_t OMXCodec::start(MetaData *meta) {
// Decoder case
if ((err = mSource->start(params.get())) != OK) {
+ CODEC_LOGE("source failed to start: %d", err);
return err;
}
return init();
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 6a350531..76d64476 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -3033,7 +3033,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac
(mOutput->stream->get_latency(mOutput->stream)*mSampleRate) / 1000;
size_t framesWritten =
mBytesWritten / audio_stream_frame_size(&mOutput->stream->common);
- if (!track->presentationComplete(framesWritten, audioHALFrames)) {
+ if (!(mStandby || track->presentationComplete(framesWritten, audioHALFrames))) {
// track stays in active list until presentation is complete
break;
}
@@ -3278,7 +3278,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac
size_t audioHALFrames = (latency_l() * mSampleRate) / 1000;
size_t framesWritten =
mBytesWritten / audio_stream_frame_size(&mOutput->stream->common);
- if (track->presentationComplete(framesWritten, audioHALFrames)) {
+ if (mStandby || track->presentationComplete(framesWritten, audioHALFrames)) {
if (track->isStopped()) {
track->reset();
}
@@ -3801,7 +3801,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep
size_t audioHALFrames = (latency_l() * mSampleRate) / 1000;
size_t framesWritten =
mBytesWritten / audio_stream_frame_size(&mOutput->stream->common);
- if (track->presentationComplete(framesWritten, audioHALFrames)) {
+ if (mStandby || track->presentationComplete(framesWritten, audioHALFrames)) {
if (track->isStopped()) {
track->reset();
}
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp
index c5ea3ed4..98332f90 100644
--- a/services/camera/libcameraservice/Camera2Client.cpp
+++ b/services/camera/libcameraservice/Camera2Client.cpp
@@ -1007,7 +1007,8 @@ status_t Camera2Client::autoFocus() {
*/
if (l.mParameters.quirks.triggerAfWithAuto &&
l.mParameters.sceneMode != ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED &&
- l.mParameters.focusMode != Parameters::FOCUS_MODE_AUTO) {
+ l.mParameters.focusMode != Parameters::FOCUS_MODE_AUTO &&
+ !l.mParameters.focusingAreas[0].isEmpty()) {
ALOGV("%s: Quirk: Switching from focusMode %d to AUTO",
__FUNCTION__, l.mParameters.focusMode);
l.mParameters.shadowFocusMode = l.mParameters.focusMode;
@@ -1038,13 +1039,16 @@ status_t Camera2Client::cancelAutoFocus() {
triggerId = ++l.mParameters.afTriggerCounter;
// When using triggerAfWithAuto quirk, may need to reset focus mode to
- // the real state at this point.
+ // the real state at this point. No need to cancel explicitly if
+ // changing the AF mode.
if (l.mParameters.shadowFocusMode != Parameters::FOCUS_MODE_INVALID) {
ALOGV("%s: Quirk: Restoring focus mode to %d", __FUNCTION__,
l.mParameters.shadowFocusMode);
l.mParameters.focusMode = l.mParameters.shadowFocusMode;
l.mParameters.shadowFocusMode = Parameters::FOCUS_MODE_INVALID;
updateRequests(l.mParameters);
+
+ return OK;
}
}
syncWithDevice();
diff --git a/services/camera/libcameraservice/camera2/Parameters.h b/services/camera/libcameraservice/camera2/Parameters.h
index 8a8645ee..54b1e8cb 100644
--- a/services/camera/libcameraservice/camera2/Parameters.h
+++ b/services/camera/libcameraservice/camera2/Parameters.h
@@ -100,6 +100,9 @@ struct Parameters {
Area(int left, int top, int right, int bottom, int weight):
left(left), top(top), right(right), bottom(bottom),
weight(weight) {}
+ bool isEmpty() const {
+ return (left == 0) && (top == 0) && (right == 0) && (bottom == 0);
+ }
};
Vector<Area> focusingAreas;