diff --git a/system/stack/a2dp/a2dp_aac_encoder.cc b/system/stack/a2dp/a2dp_aac_encoder.cc
index e7fe184935191e906a3ac70e17740da869e65261..09cfaf1c06dbf66f583f79f55a0f8e65876a77dc 100644
--- a/system/stack/a2dp/a2dp_aac_encoder.cc
+++ b/system/stack/a2dp/a2dp_aac_encoder.cc
@@ -222,6 +222,7 @@ static void a2dp_aac_encoder_update(uint16_t peer_mtu,
   LOG_DEBUG(LOG_TAG, "%s: sample_rate=%u bits_per_sample=%u channel_count=%u",
             __func__, p_feeding_params->sample_rate,
             p_feeding_params->bits_per_sample, p_feeding_params->channel_count);
+  a2dp_aac_feeding_reset();
 
   // The codec parameters
   p_encoder_params->sample_rate =
diff --git a/system/stack/a2dp/a2dp_sbc_encoder.cc b/system/stack/a2dp/a2dp_sbc_encoder.cc
index 4ca38b50d95eeb179480b4730a04d882a6cfeea4..966d5c335100585e2e67f3e041707ba9c5bcfddc 100644
--- a/system/stack/a2dp/a2dp_sbc_encoder.cc
+++ b/system/stack/a2dp/a2dp_sbc_encoder.cc
@@ -222,6 +222,7 @@ static void a2dp_sbc_encoder_update(uint16_t peer_mtu,
   LOG_DEBUG(LOG_TAG, "%s: sample_rate=%u bits_per_sample=%u channel_count=%u",
             __func__, p_feeding_params->sample_rate,
             p_feeding_params->bits_per_sample, p_feeding_params->channel_count);
+  a2dp_sbc_feeding_reset();
 
   // The codec parameters
   p_encoder_params->s16ChannelMode = A2DP_GetChannelModeCodeSbc(p_codec_info);
diff --git a/system/stack/a2dp/a2dp_vendor_aptx_encoder.cc b/system/stack/a2dp/a2dp_vendor_aptx_encoder.cc
index 54210820f5b040b61c1ffbec5d3fb53779a8990f..497cfcc042e8c2ffac1c1cc63d15d7452ed430f3 100644
--- a/system/stack/a2dp/a2dp_vendor_aptx_encoder.cc
+++ b/system/stack/a2dp/a2dp_vendor_aptx_encoder.cc
@@ -263,8 +263,7 @@ static void a2dp_vendor_aptx_encoder_update(uint16_t peer_mtu,
   LOG_DEBUG(LOG_TAG, "%s: sample_rate=%u bits_per_sample=%u channel_count=%u",
             __func__, p_feeding_params->sample_rate,
             p_feeding_params->bits_per_sample, p_feeding_params->channel_count);
-
-  aptx_init_framing_params(&a2dp_aptx_encoder_cb.framing_params);
+  a2dp_vendor_aptx_feeding_reset();
 }
 
 void a2dp_vendor_aptx_encoder_cleanup(void) {
diff --git a/system/stack/a2dp/a2dp_vendor_aptx_hd_encoder.cc b/system/stack/a2dp/a2dp_vendor_aptx_hd_encoder.cc
index 1a5a89f8919c54ac102e73cf27efc75b52a5fb57..cdc82e6b3c7daf3c6286584ebc652d344a34fae8 100644
--- a/system/stack/a2dp/a2dp_vendor_aptx_hd_encoder.cc
+++ b/system/stack/a2dp/a2dp_vendor_aptx_hd_encoder.cc
@@ -264,8 +264,7 @@ static void a2dp_vendor_aptx_hd_encoder_update(
   LOG_DEBUG(LOG_TAG, "%s: sample_rate=%u bits_per_sample=%u channel_count=%u",
             __func__, p_feeding_params->sample_rate,
             p_feeding_params->bits_per_sample, p_feeding_params->channel_count);
-
-  aptx_hd_init_framing_params(&a2dp_aptx_hd_encoder_cb.framing_params);
+  a2dp_vendor_aptx_hd_feeding_reset();
 }
 
 void a2dp_vendor_aptx_hd_encoder_cleanup(void) {
diff --git a/system/stack/a2dp/a2dp_vendor_ldac_encoder.cc b/system/stack/a2dp/a2dp_vendor_ldac_encoder.cc
index 9da6afe705304ff4aa82e36491b1ca4ee4b76958..19beb4e34538463ae9198645cc7c0726afc021f8 100644
--- a/system/stack/a2dp/a2dp_vendor_ldac_encoder.cc
+++ b/system/stack/a2dp/a2dp_vendor_ldac_encoder.cc
@@ -381,6 +381,7 @@ static void a2dp_vendor_ldac_encoder_update(uint16_t peer_mtu,
   LOG_DEBUG(LOG_TAG, "%s: sample_rate=%u bits_per_sample=%u channel_count=%u",
             __func__, p_feeding_params->sample_rate,
             p_feeding_params->bits_per_sample, p_feeding_params->channel_count);
+  a2dp_vendor_ldac_feeding_reset();
 
   // The codec parameters
   p_encoder_params->sample_rate =