diff --git a/call/BUILD.gn b/call/BUILD.gn
index c975135..15e3b48 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -160,6 +160,7 @@
     "../api/units:time_delta",
     "../api/units:timestamp",
     "../api/video:video_frame",
+    "../api/video:video_layers_allocation",
     "../api/video:video_rtp_headers",
     "../api/video_codecs:video_codecs_api",
     "../logging:rtc_event_bwe",
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index 6614806..fd71248 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -592,6 +592,18 @@
     }
   }
 }
+void RtpVideoSender::OnVideoLayersAllocationUpdated(
+    const VideoLayersAllocation& allocation) {
+  MutexLock lock(&mutex_);
+  if (IsActiveLocked()) {
+    for (size_t i = 0; i < rtp_streams_.size(); ++i) {
+      VideoLayersAllocation stream_allocation = allocation;
+      stream_allocation.rtp_stream_index = i;
+      rtp_streams_[i].sender_video->SetVideoLayersAllocation(
+          std::move(stream_allocation));
+    }
+  }
+}
 
 bool RtpVideoSender::NackEnabled() const {
   const bool nack_enabled = rtp_config_.nack.rtp_history_ms > 0;
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index 2e2d198..49fd3cc 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -138,7 +138,8 @@
 
   void OnBitrateAllocationUpdated(const VideoBitrateAllocation& bitrate)
       RTC_LOCKS_EXCLUDED(mutex_) override;
-
+  void OnVideoLayersAllocationUpdated(
+      const VideoLayersAllocation& layers) override;
   void OnTransportOverheadChanged(size_t transport_overhead_bytes_per_packet)
       RTC_LOCKS_EXCLUDED(mutex_) override;
   void OnBitrateUpdated(BitrateAllocationUpdate update, int framerate)
diff --git a/call/rtp_video_sender_interface.h b/call/rtp_video_sender_interface.h
index bb72eb5..632c9e8 100644
--- a/call/rtp_video_sender_interface.h
+++ b/call/rtp_video_sender_interface.h
@@ -18,6 +18,7 @@
 #include "api/array_view.h"
 #include "api/call/bitrate_allocation.h"
 #include "api/fec_controller_override.h"
+#include "api/video/video_layers_allocation.h"
 #include "call/rtp_config.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtp_sequence_number_map.h"
@@ -50,6 +51,8 @@
 
   virtual void OnBitrateAllocationUpdated(
       const VideoBitrateAllocation& bitrate) = 0;
+  virtual void OnVideoLayersAllocationUpdated(
+      const VideoLayersAllocation& allocation) = 0;
   virtual void OnBitrateUpdated(BitrateAllocationUpdate update,
                                 int framerate) = 0;
   virtual void OnTransportOverheadChanged(
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 4673811..665fe09 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -483,7 +483,7 @@
     });
     return;
   }
-  // TODO(bugs.webrtc.org/12000): Implement
+  rtp_video_sender_->OnVideoLayersAllocationUpdated(allocation);
 }
 
 void VideoSendStreamImpl::SignalEncoderActive() {
diff --git a/video/video_send_stream_impl_unittest.cc b/video/video_send_stream_impl_unittest.cc
index 68813ca..795b181 100644
--- a/video/video_send_stream_impl_unittest.cc
+++ b/video/video_send_stream_impl_unittest.cc
@@ -80,6 +80,10 @@
               OnBitrateAllocationUpdated,
               (const VideoBitrateAllocation&),
               (override));
+  MOCK_METHOD(void,
+              OnVideoLayersAllocationUpdated,
+              (const VideoLayersAllocation&),
+              (override));
   MOCK_METHOD(EncodedImageCallback::Result,
               OnEncodedImage,
               (const EncodedImage&, const CodecSpecificInfo*),
