Merge change Ia67d5388 into eclair-mr2

* changes:
  remote destructors are not synchronously executed by the binder...
This commit is contained in:
Android (Google) Code Review
2009-12-11 08:48:47 -08:00

View File

@ -20,6 +20,7 @@
#include "include/AwesomePlayer.h"
#include <binder/IPCThreadState.h>
#include <media/stagefright/AudioPlayer.h>
#include <media/stagefright/DataSource.h>
#include <media/stagefright/FileSource.h>
@ -313,6 +314,12 @@ void AwesomePlayer::initRenderer_l() {
CHECK(meta->findInt32(kKeyWidth, &decodedWidth));
CHECK(meta->findInt32(kKeyHeight, &decodedHeight));
mVideoRenderer.clear();
// Must ensure that mVideoRenderer's destructor is actually executed
// before creating a new one.
IPCThreadState::self()->flushCommands();
mVideoRenderer =
mClient.interface()->createRenderer(
mISurface, component,
@ -530,6 +537,12 @@ void AwesomePlayer::onEvent(int32_t code) {
return;
}
if (mVideoBuffer->range_length() == 0) {
mVideoBuffer->release();
mVideoBuffer = NULL;
continue;
}
break;
}
}