summaryrefslogtreecommitdiffstats
path: root/media/libstagefright
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-02-11 17:32:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-11 17:32:06 +0000
commit2cf312c2294f128423491a6cc6ba1b1afda5967b (patch)
tree292cdfdeabeffb2abc11c7cd7325b9dc237964f5 /media/libstagefright
parent1d6fa7af1288b550faabe4ec2cf98684236723db (diff)
parent456fa912e46edf0b01ea3b7760ea922c01ca1866 (diff)
downloadframeworks_av-2cf312c2294f128423491a6cc6ba1b1afda5967b.zip
frameworks_av-2cf312c2294f128423491a6cc6ba1b1afda5967b.tar.gz
frameworks_av-2cf312c2294f128423491a6cc6ba1b1afda5967b.tar.bz2
Merge "fix delay when shutting down wifi display"
Diffstat (limited to 'media/libstagefright')
-rw-r--r--media/libstagefright/SurfaceMediaSource.cpp5
-rw-r--r--media/libstagefright/wifi-display/source/RepeaterSource.cpp3
2 files changed, 5 insertions, 3 deletions
diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp
index 6b934d4..94c0a1e 100644
--- a/media/libstagefright/SurfaceMediaSource.cpp
+++ b/media/libstagefright/SurfaceMediaSource.cpp
@@ -202,6 +202,9 @@ status_t SurfaceMediaSource::stop()
return OK;
}
+ mStarted = false;
+ mFrameAvailableCondition.signal();
+
while (mNumPendingBuffers > 0) {
ALOGI("Still waiting for %d buffers to be returned.",
mNumPendingBuffers);
@@ -215,8 +218,6 @@ status_t SurfaceMediaSource::stop()
mMediaBuffersAvailableCondition.wait(mMutex);
}
- mStarted = false;
- mFrameAvailableCondition.signal();
mMediaBuffersAvailableCondition.signal();
return mBufferQueue->consumerDisconnect();
diff --git a/media/libstagefright/wifi-display/source/RepeaterSource.cpp b/media/libstagefright/wifi-display/source/RepeaterSource.cpp
index cc8dee3..59d7e6e 100644
--- a/media/libstagefright/wifi-display/source/RepeaterSource.cpp
+++ b/media/libstagefright/wifi-display/source/RepeaterSource.cpp
@@ -79,6 +79,8 @@ status_t RepeaterSource::stop() {
ALOGV("stopping");
+ status_t err = mSource->stop();
+
if (mLooper != NULL) {
mLooper->stop();
mLooper.clear();
@@ -92,7 +94,6 @@ status_t RepeaterSource::stop() {
mBuffer = NULL;
}
- status_t err = mSource->stop();
ALOGV("stopped");