Enforce VideoEncoderConfig.num_temporal_layers >= 1.
This change clarifies the semantics of this field:
unset: Depends on context.
== 0: Invalid.
== 1: No temporal layering.
>= 2: Temporal layering.
We should try to remove the wrapping optional later.
Bug: webrtc:11297
Change-Id: Id765f2dc1d31a4ba3cd424978ac6054cd60152ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166528
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30336}
diff --git a/api/video_codecs/video_encoder_config.cc b/api/video_codecs/video_encoder_config.cc
index 2b1adc0..6efcbf2 100644
--- a/api/video_codecs/video_encoder_config.cc
+++ b/api/video_codecs/video_encoder_config.cc
@@ -24,6 +24,7 @@
max_bitrate_bps(-1),
scale_resolution_down_by(-1.),
max_qp(-1),
+ num_temporal_layers(absl::nullopt),
active(true) {}
VideoStream::VideoStream(const VideoStream& other) = default;
@@ -39,7 +40,7 @@
ss << ", target_bitrate_bps:" << target_bitrate_bps;
ss << ", max_bitrate_bps:" << max_bitrate_bps;
ss << ", max_qp: " << max_qp;
- ss << ", num_temporal_layers: " << num_temporal_layers.value_or(0);
+ ss << ", num_temporal_layers: " << num_temporal_layers.value_or(1);
ss << ", bitrate_priority: " << bitrate_priority.value_or(0);
ss << ", active: " << active;