diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index a179681..ac39d21 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -490,9 +490,6 @@
     FieldTrial('WebRTC-BindUsingInterfaceName',
                42220770,
                date(2024, 4, 1)),
-    FieldTrial('WebRTC-BoostedScreenshareQp',
-               42234864,
-               date(2024, 4, 1)),
     FieldTrial('WebRTC-Bwe-AllocationProbing',
                42220440,
                date(2024, 4, 1)),
@@ -890,7 +887,7 @@
 ])  # yapf: disable
 
 POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
-    'f74a8c7f29f03ef83154393d0a7ea0b7258d7441'
+    '230533dd083ddb73124412b928105b4c2ef3c1e9'
 
 REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
     POLICY_EXEMPT_FIELD_TRIALS)
diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc
index 7007db6..ab2947f 100644
--- a/media/engine/simulcast_encoder_adapter.cc
+++ b/media/engine/simulcast_encoder_adapter.cc
@@ -44,18 +44,6 @@
 // Max qp for lowest spatial resolution when doing simulcast.
 const unsigned int kLowestResMaxQp = 45;
 
-absl::optional<unsigned int> GetScreenshareBoostedQpValue(
-    const webrtc::FieldTrialsView& field_trials) {
-  std::string experiment_group =
-      field_trials.Lookup("WebRTC-BoostedScreenshareQp");
-  unsigned int qp;
-  if (sscanf(experiment_group.c_str(), "%u", &qp) != 1)
-    return absl::nullopt;
-  qp = std::min(qp, 63u);
-  qp = std::max(qp, 1u);
-  return qp;
-}
-
 uint32_t SumStreamMaxBitrate(int streams, const webrtc::VideoCodec& codec) {
   uint32_t bitrate_sum = 0;
   for (int i = 0; i < streams; ++i) {
@@ -258,8 +246,6 @@
       total_streams_count_(0),
       bypass_mode_(false),
       encoded_complete_callback_(nullptr),
-      experimental_boosted_screenshare_qp_(
-          GetScreenshareBoostedQpValue(env_.field_trials())),
       boost_base_layer_quality_(
           RateControlSettings::ParseFromKeyValueConfig(&env_.field_trials())
               .Vp8BoostBaseLayerQuality()),
@@ -825,11 +811,8 @@
   // Settings that are based on stream/resolution.
   if (is_lowest_quality_stream) {
     // Settings for lowest spatial resolutions.
-    if (codec.mode == VideoCodecMode::kScreensharing) {
-      if (experimental_boosted_screenshare_qp_) {
-        codec_params.qpMax = *experimental_boosted_screenshare_qp_;
-      }
-    } else if (boost_base_layer_quality_) {
+    if (codec.mode == VideoCodecMode::kRealtimeVideo &&
+        boost_base_layer_quality_) {
       codec_params.qpMax = kLowestResMaxQp;
     }
   }
diff --git a/media/engine/simulcast_encoder_adapter.h b/media/engine/simulcast_encoder_adapter.h
index 951eb85..f394b70 100644
--- a/media/engine/simulcast_encoder_adapter.h
+++ b/media/engine/simulcast_encoder_adapter.h
@@ -189,7 +189,6 @@
   // GetEncoderInfo(), which is const.
   mutable std::list<std::unique_ptr<EncoderContext>> cached_encoder_contexts_;
 
-  const absl::optional<unsigned int> experimental_boosted_screenshare_qp_;
   const bool boost_base_layer_quality_;
   const bool prefer_temporal_support_on_base_layer_;
   const bool per_layer_pli_;
