Loading media/libaudioclient/AudioRecord.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -1231,6 +1231,14 @@ status_t AudioRecord::restoreRecord_l(const char *from) ALOGW("dead IAudioRecord, creating a new one from %s()", from); ++mSequence; const int INITIAL_RETRIES = 3; int retries = INITIAL_RETRIES; retry: if (retries < INITIAL_RETRIES) { // refresh the audio configuration cache in this process to make sure we get new // input parameters and new IAudioRecord in createRecord_l() AudioSystem::clearAudioConfigCache(); } mFlags = mOrigFlags; // if the new IAudioRecord is created, createRecord_l() will modify the Loading @@ -1239,7 +1247,11 @@ status_t AudioRecord::restoreRecord_l(const char *from) Modulo<uint32_t> position(mProxy->getPosition()); mNewPosition = position + mUpdatePeriod; status_t result = createRecord_l(position, mOpPackageName); if (result == NO_ERROR) { if (result != NO_ERROR) { ALOGW("%s(): createRecord_l failed, do not retry", __func__); retries = 0; } else { if (mActive) { // callback thread or sync event hasn't changed // FIXME this fails if we have a new AudioFlinger instance Loading @@ -1248,6 +1260,14 @@ status_t AudioRecord::restoreRecord_l(const char *from) } mFramesReadServerOffset = mFramesRead; // server resets to zero so we need an offset. } if (result != NO_ERROR) { ALOGW("%s() failed status %d, retries %d", __func__, result, retries); if (--retries > 0) { goto retry; } } if (result != NO_ERROR) { ALOGW("restoreRecord_l() failed status %d", result); mActive = false; Loading Loading
media/libaudioclient/AudioRecord.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -1231,6 +1231,14 @@ status_t AudioRecord::restoreRecord_l(const char *from) ALOGW("dead IAudioRecord, creating a new one from %s()", from); ++mSequence; const int INITIAL_RETRIES = 3; int retries = INITIAL_RETRIES; retry: if (retries < INITIAL_RETRIES) { // refresh the audio configuration cache in this process to make sure we get new // input parameters and new IAudioRecord in createRecord_l() AudioSystem::clearAudioConfigCache(); } mFlags = mOrigFlags; // if the new IAudioRecord is created, createRecord_l() will modify the Loading @@ -1239,7 +1247,11 @@ status_t AudioRecord::restoreRecord_l(const char *from) Modulo<uint32_t> position(mProxy->getPosition()); mNewPosition = position + mUpdatePeriod; status_t result = createRecord_l(position, mOpPackageName); if (result == NO_ERROR) { if (result != NO_ERROR) { ALOGW("%s(): createRecord_l failed, do not retry", __func__); retries = 0; } else { if (mActive) { // callback thread or sync event hasn't changed // FIXME this fails if we have a new AudioFlinger instance Loading @@ -1248,6 +1260,14 @@ status_t AudioRecord::restoreRecord_l(const char *from) } mFramesReadServerOffset = mFramesRead; // server resets to zero so we need an offset. } if (result != NO_ERROR) { ALOGW("%s() failed status %d, retries %d", __func__, result, retries); if (--retries > 0) { goto retry; } } if (result != NO_ERROR) { ALOGW("restoreRecord_l() failed status %d", result); mActive = false; Loading