aboutsummaryrefslogtreecommitdiff
path: root/modules/video_coding/svc/scalability_structure_simulcast.cc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/video_coding/svc/scalability_structure_simulcast.cc')
-rw-r--r--modules/video_coding/svc/scalability_structure_simulcast.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/modules/video_coding/svc/scalability_structure_simulcast.cc b/modules/video_coding/svc/scalability_structure_simulcast.cc
index 13751daea6..c236066736 100644
--- a/modules/video_coding/svc/scalability_structure_simulcast.cc
+++ b/modules/video_coding/svc/scalability_structure_simulcast.cc
@@ -137,7 +137,7 @@ ScalabilityStructureSimulcast::NextFrameConfig(bool restart) {
}
configs.emplace_back();
ScalableVideoController::LayerFrameConfig& config = configs.back();
- config.S(sid).T(0);
+ config.Id(current_pattern).S(sid).T(0);
if (can_reference_t0_frame_for_spatial_id_[sid]) {
config.ReferenceAndUpdate(BufferIndex(sid, /*tid=*/0));
@@ -155,7 +155,10 @@ ScalabilityStructureSimulcast::NextFrameConfig(bool restart) {
}
configs.emplace_back();
ScalableVideoController::LayerFrameConfig& config = configs.back();
- config.S(sid).T(1).Reference(BufferIndex(sid, /*tid=*/0));
+ config.Id(current_pattern)
+ .S(sid)
+ .T(1)
+ .Reference(BufferIndex(sid, /*tid=*/0));
// Save frame only if there is a higher temporal layer that may need it.
if (num_temporal_layers_ > 2) {
config.Update(BufferIndex(sid, /*tid=*/1));
@@ -171,7 +174,7 @@ ScalabilityStructureSimulcast::NextFrameConfig(bool restart) {
}
configs.emplace_back();
ScalableVideoController::LayerFrameConfig& config = configs.back();
- config.S(sid).T(2);
+ config.Id(current_pattern).S(sid).T(2);
if (can_reference_t1_frame_for_spatial_id_[sid]) {
config.Reference(BufferIndex(sid, /*tid=*/1));
} else {
@@ -184,12 +187,12 @@ ScalabilityStructureSimulcast::NextFrameConfig(bool restart) {
break;
}
- last_pattern_ = current_pattern;
return configs;
}
GenericFrameInfo ScalabilityStructureSimulcast::OnEncodeDone(
const LayerFrameConfig& config) {
+ last_pattern_ = static_cast<FramePattern>(config.Id());
if (config.TemporalId() == 1) {
can_reference_t1_frame_for_spatial_id_.set(config.SpatialId());
}