AEC3: Fix render buffer headroom calculation on underruns

The read and write pointers can meet. Currently, this causes an overflow in the headroom calculation (headroom == buffer size) which offsets the buffers needlessly. This causes a loss of transparency when using the neural residual echo estimation module.

Tested:
  1. audioproc_f is bitexact on a large set of aecdumps, without ML-REE
  2. I see improved transparency on a dump with underruns, with ML-REE

Bug: b:487988676, webrtc:442444736
Change-Id: I902a20f28c603f85a1c10ae5b525788e3a54c285
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/456301
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47153}
diff --git a/modules/audio_processing/aec3/render_buffer.h b/modules/audio_processing/aec3/render_buffer.h
index f25416f..6fc0317 100644
--- a/modules/audio_processing/aec3/render_buffer.h
+++ b/modules/audio_processing/aec3/render_buffer.h
@@ -88,12 +88,12 @@
   int Headroom() const {
     // The write and read indices are decreased over time.
     int headroom =
-        fft_buffer_->write < fft_buffer_->read
+        fft_buffer_->write <= fft_buffer_->read
             ? fft_buffer_->read - fft_buffer_->write
             : fft_buffer_->size - fft_buffer_->write + fft_buffer_->read;
 
     RTC_DCHECK_LE(0, headroom);
-    RTC_DCHECK_GE(fft_buffer_->size, headroom);
+    RTC_DCHECK_GT(fft_buffer_->size, headroom);
 
     return headroom;
   }