Make AudioEncoder::GetFrameLengthRange() pure virtual.
In order for WebRTC to be able to include packet overhead in its
bitrate calculations, the AudioEncoder::GetFrameLengthRange()
function must be implemented by all audio encoders. Making this
member function pure virtual as per the following PSA:
https://groups.google.com/forum/#!topic/discuss-webrtc/qscwYr38je0
Bug: webrtc:11427
Change-Id: I30d297ef05f57453bfc257624729559057cad118
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171517
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31127}
diff --git a/api/audio_codecs/audio_encoder.cc b/api/audio_codecs/audio_encoder.cc
index 2c11118..cd4d200 100644
--- a/api/audio_codecs/audio_encoder.cc
+++ b/api/audio_codecs/audio_encoder.cc
@@ -110,9 +110,4 @@
return ANAStats();
}
-absl::optional<std::pair<TimeDelta, TimeDelta>>
-AudioEncoder::GetFrameLengthRange() const {
- return absl::nullopt;
-}
-
} // namespace webrtc
diff --git a/api/audio_codecs/audio_encoder.h b/api/audio_codecs/audio_encoder.h
index c6e572c..fd2d948 100644
--- a/api/audio_codecs/audio_encoder.h
+++ b/api/audio_codecs/audio_encoder.h
@@ -244,7 +244,7 @@
// information. This is used to calculated the full bitrate range, including
// overhead.
virtual absl::optional<std::pair<TimeDelta, TimeDelta>> GetFrameLengthRange()
- const;
+ const = 0;
protected:
// Subclasses implement this to perform the actual encoding. Called by