Can we please factor this out to keep the actual work clean?  Something like
```
if (bytes != wanted)
  LogLevel(bytes, wanted);
...

void LogLevels(unsigned int got, unsigned int wanted)
{
  static unsigned int lastReported = 0;
  if (got != lastReported)
  {
    CLog::Log(LOGWARNING, "DARWINOSX: %sflow (%u vs %u bytes)", got > wanted ? "over" : "under", got, wanted);
    lastReported = got;
  }
}
```
I think this will still log where we want it to - there's a small chance of it not logging on the first under/overflow after resuming audio, but only if it under/over flows by the same amount as it did last time around.  I dropped it to WARNING instead of ERROR as well, as usually this is what it is.