diff options
Diffstat (limited to 'modules/video_coding/svc/scalability_structure_simulcast.cc')
-rw-r--r-- | modules/video_coding/svc/scalability_structure_simulcast.cc | 11 |
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()); } |