Add feature flag to control usage of fix size A2DP packet in CRAS

Some Bluetooth audio peripheral devices negotiate with the Chrome OS
Bluetooth stack (BlueZ) for a larger Advanced Audio Distribution
Profile (A2DP) stream packet size, a.k.a. AVDTP MTU. In a noisy RF
environment, the Bluetooth device may fail to consume such large packet
and result in packet fragmentation, which caused audio to stutter.

BluetoothFixA2dpPacketSize feature flag tells Chrome OS audio server
(CRAS) to override the packet size with a prefixed smaller value.

Bug=b:142499564
Test=Manual enable BluetoothFixA2dpPacketSize in chrome://flags and
verified audio packet BlueZ send to the reconnected Bluetooth headset,
using btmon, became smaller.

Change-Id: Id68a05be87c858cce416af284f1321770028402f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2134500
Commit-Queue: Michael Sun <[email protected]>
Reviewed-by: Ryo Hashimoto <[email protected]>
Cr-Commit-Position: refs/heads/master@{#756925}
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index bd02ee2..834f4de 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3105,6 +3105,11 @@
     "Enables a more aggressive Bluetooth filter in the UI to hide devices that "
     "likely cannot be connected to.";
 
+const char kBluetoothFixA2dpPacketSizeName[] = "Bluetooth fix A2DP packet size";
+const char kBluetoothFixA2dpPacketSizeDescription[] =
+    "Fixes Bluetooth A2DP packet size to a smaller default value to improve "
+    "audio quality and may fix audio stutter.";
+
 const char kBluetoothKernelSuspendNotifierName[] =
     "Bluetooth kernel suspend notifier handler";
 const char kBluetoothKernelSuspendNotifierDescription[] =