Hey I was browsing thru that code and saw this

bool AudioFlinger::MixerThread::threadLoop()

1190 {

1191     int16_t* curBuf = mMixBuffer;

1192     Vector< sp<Track> > tracksToRemove;

1193     uint32_t mixerStatus = MIXER_IDLE;

1194     nsecs_t standbyTime = systemTime();

1195     size_t mixBufferSize = mFrameCount * mFrameSize;

1196     // FIXME: Relaxed timing because of a certain device that
can't meet latency

1197     // Should be reduced to 2x after the vendor fixes the driver
issue

1198     nsecs_t maxPeriod = seconds(mFrameCount) / mSampleRate * 3;

1199     nsecs_t lastWarning = 0;

1200     bool longStandbyExit = false;

1201     uint32_t activeSleepTime = activeSleepTimeUs();

1202     uint32_t idleSleepTime = idleSleepTimeUs();

1203     uint32_t sleepTime = idleSleepTime;

1204

1205     while (!exitPending())

1206     {

1207         processConfigEvents();

1208

1209         mixerStatus = MIXER_IDLE;

1210         { // scope for mLock

1211

1212             Mutex::Autolock _l(mLock);

1213

1214             if (checkForNewParameters_l()) {

1215                 mixBufferSize = mFrameCount * mFrameSize;

1216                 // FIXME: Relaxed timing because of a certain
device that can't meet latency

1217                 // Should be reduced to 2x after the vendor fixes
the driver issue

1218                 maxPeriod = seconds(mFrameCount) / mSampleRate *
3;

1219                 activeSleepTime = activeSleepTimeUs();

1220                 idleSleepTime = idleSleepTimeUs();

1221             }

1222

1223             const SortedVector< wp<Track> >& activeTracks =
mActiveTracks;

1224

1225             // put audio hardware into standby after short delay

1226             if UNLIKELY((!activeTracks.size() && systemTime() >
standbyTime) ||

1227                         mSuspended) {

1228                 if (!mStandby) {

1229                     LOGV("Audio hardware entering standby, mixer
%p, mSuspended %d\n", this, mSuspended);

1230                     mOutput->standby();

1231                     mStandby = true;

1232                     mBytesWritten = 0;




First they have a comment about a vendor bug with buffer latency -
then they have a macro called UNLIKELY that puts the mixer to
sleep....maybe it's happening in here...?



On May 9, 6:17 am, Hunter  Peress <[email protected]> wrote:
> On the nexus one, my app goes into Audio Record Stanby randomly after
> 0-40 seconds. I'm using the AudioRecord class, and while the standby
> is reported in the terminal, the AudioRecord instance reports the same
> states of RECORDSTATE_RECORDING and STATE_INITIALIZED throughout the
> entire sequence.
>
> The bottom line is that when this anomaly occurs, audio is not
> captured. and this is what im working to prevent was only able to
> reproduce on nexus one android2.1 not g1 android1.6
>
> I have looked extensively through the Android C/C++ libraries such as
> at this 
> file:http://android.git.kernel.org/?p=platform/hardware/msm7k.git;a=blob_p...
>
> andhttp://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;...
>
> Most interesting to me, is this line in 
> AudioFlinger:http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;...
>
> Specifically the  bool AudioFlinger::RecordThread::threadLoop()
>
> As you can see, minput->standby() occurs in 4 different places in the
> code.
>
> I believe that one of these is entering an undesirable state.
>
> Now, I'm looking for a solution. Maybe I've missed something really
> obvious.
>
> Another person's perspective on the issue would be highly appreciated.
> Thank you.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to