am 4b027f12: Merge change 23165 into eclair

Merge commit '4b027f128fea32bfcabee55bf4d994400453c00c' into eclair-plus-aosp

* commit '4b027f128fea32bfcabee55bf4d994400453c00c':
  Fixes a race condition between entering ERROR state and initial buffer submit.
This commit is contained in:
Andreas Huber
2009-08-28 13:32:54 -07:00
committed by Android Git Automerger

View File

@@ -1272,7 +1272,7 @@ void OMXCodec::fillOutputBuffers() {
}
void OMXCodec::drainInputBuffers() {
CHECK_EQ(mState, EXECUTING);
CHECK(mState == EXECUTING || mState == RECONFIGURING);
Vector<BufferInfo> *buffers = &mPortBuffers[kPortIndexInput];
for (size_t i = 0; i < buffers->size(); ++i) {
@@ -1716,15 +1716,20 @@ status_t OMXCodec::read(
Mutex::Autolock autoLock(mLock);
if (mState != EXECUTING && mState != RECONFIGURING) {
return UNKNOWN_ERROR;
}
if (mInitialBufferSubmit) {
mInitialBufferSubmit = false;
drainInputBuffers();
fillOutputBuffers();
}
if (mState != EXECUTING && mState != RECONFIGURING) {
return UNKNOWN_ERROR;
if (mState == EXECUTING) {
// Otherwise mState == RECONFIGURING and this code will trigger
// after the output port is reenabled.
fillOutputBuffers();
}
}
int64_t seekTimeUs;