diff options
Diffstat (limited to 'media/libstagefright/wifi-display/source/RepeaterSource.cpp')
-rw-r--r-- | media/libstagefright/wifi-display/source/RepeaterSource.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/media/libstagefright/wifi-display/source/RepeaterSource.cpp b/media/libstagefright/wifi-display/source/RepeaterSource.cpp index 56e8860..483d29c 100644 --- a/media/libstagefright/wifi-display/source/RepeaterSource.cpp +++ b/media/libstagefright/wifi-display/source/RepeaterSource.cpp @@ -50,6 +50,8 @@ status_t RepeaterSource::start(MetaData *params) { } status_t RepeaterSource::stop() { + ALOGV("stopping"); + if (mLooper != NULL) { mLooper->stop(); mLooper.clear(); @@ -57,7 +59,17 @@ status_t RepeaterSource::stop() { mReflector.clear(); } - return mSource->stop(); + if (mBuffer != NULL) { + ALOGV("releasing mbuf %p", mBuffer); + mBuffer->release(); + mBuffer = NULL; + } + + status_t err = mSource->stop(); + + ALOGV("stopped"); + + return err; } sp<MetaData> RepeaterSource::getFormat() { @@ -117,6 +129,8 @@ void RepeaterSource::onMessageReceived(const sp<AMessage> &msg) { MediaBuffer *buffer; status_t err = mSource->read(&buffer); + ALOGV("read mbuf %p", buffer); + Mutex::Autolock autoLock(mLock); if (mBuffer != NULL) { mBuffer->release(); |