Only instantiate TemporalLayersChecker in debug builds

Bug: None
Change-Id: I0f700451df4c9adfc07c77e62a5964c85079fefa
Reviewed-on: https://webrtc-review.googlesource.com/c/120051
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26439}
This commit is contained in:
Elad Alon
2019-01-28 15:02:04 +01:00
committed by Commit Bot
parent f5b216a1b7
commit e008248c7d

View File

@ -264,10 +264,7 @@ DefaultTemporalLayers::DefaultTemporalLayers(int number_of_temporal_layers)
temporal_ids_(GetTemporalIds(num_layers_)),
temporal_pattern_(GetTemporalPattern(num_layers_)),
kf_buffers_(FindKfBuffers(temporal_pattern_)),
pattern_idx_(kUninitializedPatternIndex),
checker_(TemporalLayersChecker::CreateTemporalLayersChecker(
Vp8TemporalLayersType::kFixedPattern,
number_of_temporal_layers)) {
pattern_idx_(kUninitializedPatternIndex) {
RTC_CHECK_GE(kMaxTemporalStreams, number_of_temporal_layers);
RTC_CHECK_GE(number_of_temporal_layers, 0);
RTC_CHECK_LE(number_of_temporal_layers, 4);
@ -276,6 +273,11 @@ DefaultTemporalLayers::DefaultTemporalLayers(int number_of_temporal_layers)
// wrap at max(temporal_ids_.size(), temporal_pattern_.size()).
RTC_DCHECK_LE(temporal_ids_.size(), temporal_pattern_.size());
#if RTC_DCHECK_IS_ON
checker_ = TemporalLayersChecker::CreateTemporalLayersChecker(
Vp8TemporalLayersType::kFixedPattern, number_of_temporal_layers);
#endif
// Always need to start with a keyframe, so pre-populate all frame counters.
for (Vp8BufferReference buffer : kAllBuffers) {
frames_since_buffer_refresh_[buffer] = 0;
@ -399,12 +401,12 @@ Vp8TemporalLayers::FrameConfig DefaultTemporalLayers::UpdateLayerConfig(
pending_frames_[timestamp] =
PendingFrame{false, GetUpdatedBuffers(tl_config), tl_config};
if (checker_) {
// Checker does not yet support encoder frame dropping, so validate flags
// here before they can be dropped.
// TODO(sprang): Update checker to support dropping.
RTC_DCHECK(checker_->CheckTemporalConfig(false, tl_config));
}
#if RTC_DCHECK_IS_ON
// Checker does not yet support encoder frame dropping, so validate flags
// here before they can be dropped.
// TODO(sprang): Update checker to support dropping.
RTC_DCHECK(checker_->CheckTemporalConfig(false, tl_config));
#endif
return tl_config;
}
@ -481,10 +483,12 @@ void DefaultTemporalLayers::OnEncodeDone(uint32_t rtp_timestamp,
}
PendingFrame& frame = pending_frame->second;
if (is_keyframe && checker_) {
#if RTC_DCHECK_IS_ON
if (is_keyframe) {
// Signal key-frame so checker resets state.
RTC_DCHECK(checker_->CheckTemporalConfig(true, frame.frame_config));
}
#endif
if (num_layers_ == 1) {
vp8_info->temporalIdx = kNoTemporalIdx;