Computer >> Máy Tính >  >> Xử lý sự cố >> Android

Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

Cảnh báo:Đây là hướng dẫn nâng cao liên quan đến việc sửa đổi ngăn xếp Bluetooth của bạn trên Android - hãy đọc toàn bộ hướng dẫn này và làm theo tất cả các hướng dẫn chính xác như đã cho.

Mặc dù thực tế là tai nghe Bluetooth và âm thanh Bluetooth đã trở nên khá phổ biến, nhưng đó là một vấn đề đối với những người đam mê âm thanh vì Bluetooth đã được chứng minh là làm giảm chất lượng âm thanh, khi các bit thông tin và tần số âm thanh bị mất trong không khí qua phát trực tuyến Bluetooth.

Đây là lý do tại sao một số nhà sản xuất đang đưa ra codec aptX và LDAC, để nâng cao chất lượng âm thanh so với codec Bluetooth SBC tiêu chuẩn được hỗ trợ bởi tất cả tai nghe và hầu hết các thiết bị Bluetooth - tuy nhiên, các thiết bị có codec aptX và LDAC đắt hơn nhiều vì những codec này yêu cầu phí cấp phép mà người tiêu dùng phải trả về lâu dài.

Chất lượng âm thanh thấp của codec Bluetooth SBC là do các giới hạn giả tạo của tất cả các ngăn xếp Bluetooth và cấu hình tai nghe hiện tại và giới hạn này có thể được phá vỡ trên bất kỳ thiết bị hiện có nào.

Nếu bạn quan tâm đến âm thanh Bluetooth, chúng tôi sẽ chỉ cho bạn ở cuối hướng dẫn này cách lấy bản ghi âm thanh Bluetooth và kiểm tra nó để xem loại chất lượng và tần số âm thanh bạn nhận được từ bộ thu Bluetooth của Android.

Phần lớn hướng dẫn này sẽ tập trung vào một số chỉnh sửa đơn giản và cách đọc đầu ra âm thanh Bluetooth của bạn để nâng cao đáng kể chất lượng đầu ra của codec Bluetooth SBC tiêu chuẩn - vui lòng đọc kỹ toàn bộ hướng dẫn này vì nó khá giáo dục và có rất nhiều nội dung khác nhau để flash hoặc chỉnh sửa, tùy thuộc vào kiểu thiết bị của bạn.

Ở cuối hướng dẫn này là danh sách các ngăn xếp Bluetooth đã được vá sẵn cho nhiều thiết bị Android phổ biến - chúng có thể được khôi phục trong quá trình khôi phục như bạn làm với bất kỳ .zip có thể nhấp nháy nào khác - nếu không có thiết bị nào thuộc về bạn, bạn sẽ có để làm theo hướng dẫn sửa đổi ngăn xếp Bluetooth trên Android.

Thông tin kỹ thuật ngắn về codec SBC

SBC có nhiều thông số khác nhau được thương lượng trong giai đoạn thiết lập kết nối:

  • Loại và số kênh âm thanh:Âm thanh nổi kết hợp, Âm thanh nổi, Kênh đôi, Đơn âm;
  • Số lượng dải tần:4 hoặc 8;
  • Số lượng khối âm thanh trong một gói:4, 8, 12, 16;
  • Thuật toán phân bổ bit lượng tử hóa:Độ ồn, SNR;
  • Nhóm bit tối đa và tối thiểu được sử dụng trong quá trình lượng tử hóa:thường là 2-53.

Bộ giải mã được yêu cầu để hỗ trợ bất kỳ sự kết hợp nào của các tham số này. Bộ mã hóa chỉ có thể triển khai một phần của chúng.

Các ngăn xếp Bluetooth hiện tại thường thỏa thuận cấu hình sau:Âm thanh nổi chung, 8 băng tần, 16 khối, Độ ồn, bitpool 2..53. Cấu hình này mã hóa âm thanh 44,1 kHz với tốc độ bit là 328 kbps.

Tham số Bitpool ảnh hưởng trực tiếp đến tốc độ bit trong cùng một cấu hình:càng cao, tốc độ bit càng cao và do đó chất lượng.

Tuy nhiên, tham số bitpool không bị ràng buộc với một cấu hình cụ thể. Tốc độ bit cũng bị ảnh hưởng đáng kể bởi các thông số khác:loại kênh âm thanh, số dải tần, số khối âm thanh. Bạn có thể tăng tốc độ bit một cách gián tiếp bằng cách thương lượng các cấu hình không chuẩn mà không cần thay đổi bitpool.

Ví dụ:Kênh kép mã hóa các kênh riêng biệt, sử dụng toàn bộ bitpool cho mỗi kênh. Việc buộc thiết bị sử dụng Kênh đôi thay vì Âm thanh nổi chung sẽ khiến chúng tôi tăng gần gấp đôi tốc độ bit ở cùng một bitpool tối đa, 617 kbps.

Đối với tôi, nó cảm thấy rằng bitpool nên là một biến nội bộ. Đó là lỗi thiết kế đặc tả A2DP mà giá trị bitpool không bị ràng buộc với các tham số codec khác và chỉ được xác định là giá trị toàn cục.

Các giá trị Bitpool và Bitrate cố định này bắt nguồn từ các giá trị được đề xuất cho âm thanh chất lượng cao. Nhưng đề xuất không phải là cái cớ để giới hạn hồ sơ ở những giá trị này.

Đặc tả A2DP v1.2, hoạt động từ năm 2007 đến năm 2015, yêu cầu tất cả các bộ giải mã hoạt động chính xác với tốc độ bit lên đến 512 kbps:

Bộ giải mã của SNK phải hỗ trợ tất cả các giá trị bitpool có thể không dẫn đến việc vượt quá tốc độ bit tối đa. Cấu hình này giới hạn tốc độ bit tối đa có sẵn là 320kb / giây đối với đơn âm và 512kb / s đối với chế độ hai kênh.

Trong phiên bản mới của thông số kỹ thuật, không có giới hạn về tốc độ bit. Người ta cho rằng tai nghe hiện đại được phát hành sau năm 2015 có thể hỗ trợ tốc độ bit lên đến 1000 kbps .

Vì một số lý do, tất cả các ngăn xếp Bluetooth được thử nghiệm hiện tại (Linux (PulseAudio), Android, Blackberry và macOS) đều có các hạn chế giả tạo về thông số bitpool tối đa, ảnh hưởng trực tiếp đến tốc độ bit tối đa. Nhưng đây không phải là vấn đề lớn nhất, hầu như tất cả các tai nghe cũng giới hạn giá trị bitpool tối đa là 53.

Hầu hết các thiết bị hoạt động tốt trên ngăn xếp Bluetooth đã sửa đổi với tốc độ bit là 507 kbps, không bị gián đoạn và rè. Nhưng tốc độ bit như vậy sẽ không bao giờ được thương lượng trong điều kiện bình thường, với các ngăn xếp Bluetooth có sẵn.

*** Bắt buộc để Kiểm tra Sử dụng Hướng dẫn Bên dưới:bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent

Cách kiểm tra trên PC

Kiểm tra khả năng tương thích với tai nghe SBC bitrate cao là cách dễ thực hiện nhất trên PC bằng bộ điều hợp Bluetooth. Tôi đã chuẩn bị hình ảnh Ubuntu với ngăn xếp Bluetooth đã sửa đổi, có thể chạy như trong một máy ảo (bằng cách kết nối bộ điều hợp Bluetooth như một thiết bị USB bên trong máy ảo, nó cũng hoạt động với bộ điều hợp được tích hợp trong máy tính xách tay) hoặc bằng cách khởi động từ ổ đĩa flash USB. Hình ảnh này sử dụng cấu hình sau:Kênh kép, 8 băng tần, 16 khối, Độ ồn, bitpool 2..41, 44,1 kHz, cung cấp tốc độ bit 485 kbps.

Chạy trong máy ảo

  • Tải xuống Virtualbox và Gói mở rộng Virtualbox:https://www.virtualbox.org/wiki/Downloads;
  • Cài đặt Virtualbox, khởi động nó;
  • Cài đặt Gói tiện ích mở rộng bằng Tệp → Tùy chọn → Tiện ích mở rộng;
  • Tạo máy ảo mới:Linux, Ubuntu (64-bit), 1024 RAM. Không tạo ổ cứng.
  • Điều hướng đến cài đặt máy ảo, trong Bộ nhớ, chọn Bộ điều khiển:IDE, Empty, nhấn biểu tượng CD → Chọn tệp đĩa quang ảo;
  • Chọn bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso đã tải xuống;
  • Lưu và đóng cửa sổ cài đặt, khởi động máy ảo;
  • Nhấp chuột phải vào biểu tượng cáp USB ở dưới cùng bên phải, chọn bộ điều hợp Bluetooth của bạn;

Chạy trên PC

Hình ảnh hỗ trợ khởi động BIOS / CSM và UEFI.

  • Ghi hình ảnh vào ổ đĩa flash USB bằng Etcher:https://www.balena.io/etcher/. Thao tác này sẽ xóa tất cả các tệp hiện có trên ổ USB.
  • Tắt PC;
  • Cắm ổ đĩa flash USB, bật PC và nhấn nút thứ tự khởi động (thường là Esc hoặc F12);
  • Chọn ổ đĩa flash USB của bạn.

Thực hiện kiểm tra

  • (tùy chọn nhưng được khuyến nghị) Nhấp đúp vào tập lệnh “Btsnoop Dump” trên màn hình. Nó sẽ bắt đầu thu thập dữ liệu Bluetooth để phân tích sau này. Không đóng cửa sổ dòng lệnh.
  • Chuyển tai nghe sang chế độ ghép nối;
  • Nhấp vào mũi tên ở góc trên cùng bên phải, chọn biểu tượng Bluetooth → Cài đặt Bluetooth;
  • Chọn tai nghe của bạn, đợi cho đến khi quá trình ghép nối hoàn tất và đóng cửa sổ;
  • Đặt âm lượng Ubuntu thành khoảng 2/3. Ngoài ra, hãy giảm âm lượng bằng các nút tai nghe vì nó có thể rất to sau khi ghép nối.
  • Mở thư mục “nhạc”, phát “testrecord1.flac”;
  • (tùy chọn nhưng được khuyến nghị) Đóng trình phát, đóng cửa sổ đầu cuối. Thao tác này sẽ ngừng thu thập dữ liệu.
  • (tùy chọn nhưng được khuyến nghị) Mở trình duyệt Firefox, tải kết xuất dữ liệu (btsnoop_hci.btsnoop trên máy tính để bàn) lên https://btcodecs.valdikss.org.ru/

Bạn có thể nghe nhạc khác trong thư mục nhạc hoặc tải lên của riêng bạn;

Tai nghe không được có tiếng kêu lách tách, gián đoạn âm thanh hoặc biến dạng âm thanh khác. Nếu bạn nghe thấy âm thanh chất lượng cao tốt, điều đó có nghĩa là tai nghe của bạn hỗ trợ âm thanh với tốc độ bit 485 kbps.

Cách kiểm tra trên thiết bị Android

Để kiểm tra từ điện thoại thông minh hoặc máy tính bảng Android, bạn cần sử dụng ngăn xếp Bluetooth đã sửa đổi, yêu cầu đặc quyền root.

Cách ghi kết xuất dữ liệu Bluetooth trên Android

  1. Tắt Bluetooth;
  2. Trong Cài đặt dành cho nhà phát triển, hãy bật nút chuyển “Bật nhật ký theo dõi Bluetooth HCI”;
  3. Bật Bluetooth, kết nối với tai nghe của bạn bằng menu Bluetooth (điều này rất quan trọng! Không cho phép kết nối tự động!);
  4. Phát mẫu âm thanh ngắn;
  5. Mở cài đặt dành cho nhà phát triển, tắt nút chuyển “Bật nhật ký theo dõi HCI Bluetooth”;
  6. Phải tạo /storage/emulated/0/btsnoop_hci.log hoặc /data/misc/bl Bluetooth/logs/btsnoop_hci.log. Nếu bị thiếu, hãy mở /etc/bl Bluetooth/bt_stack.conf bằng trình soạn thảo văn bản và xem đường dẫn trong tùy chọn BtSnoopFileName.

Tai nghe không được có tiếng kêu lách tách, gián đoạn âm thanh hoặc biến dạng âm thanh khác. Nếu bạn nghe thấy âm thanh chất lượng cao tốt với thư viện được vá, điều đó có nghĩa là tai nghe của bạn hỗ trợ âm thanh với tốc độ bit 512 kbps.

Hãy cẩn thận làm theo thuật toán trên. Đặc biệt, nếu bạn tắt nguồn tai nghe hoặc ngắt kết nối sau khi ghép nối, điều quan trọng là phải kết nối với tai nghe theo cách thủ công từ cài đặt Bluetooth, không cho phép kết nối tự động!

Thiết bị hỗ trợ SBC ít nhất 512 kbit / s

  • HƠN 1 triệu iBFree
  • JBL Everest 310
  • JBL Everest 700
  • Skullcandy HESH 3
  • Sony WI-C400
  • Sony MDR-1ABT
  • Sony MDR-ZX770BT
  • Sony MDR-XB650BT
  • Sony MDR-XB950B1
  • Sony SBH50
  • Bluedio T4s (Bitpool tối đa 39. Phản hồi để không hỗ trợ Kênh kép, nhưng hoạt động nếu bị ép buộc, 462 kbit / s. Không tuân theo đặc điểm kỹ thuật A2DP.)
  • Bluedio T5 (Phản hồi để không hỗ trợ Kênh đôi, nhưng hoạt động nếu bị ép buộc. Không tuân theo đặc điểm kỹ thuật A2DP.)
  • Bluedio T6 (Phản hồi để không hỗ trợ Kênh đôi, nhưng hoạt động nếu bị ép buộc. Không tuân theo đặc điểm kỹ thuật A2DP. Sử dụng chip Max 97220.)
  • Marshall Major II Bluetooth
  • Overdrive RealForce D1
  • Bộ chỉnh âm W830BT
  • DEXP BT-250
  • Bộ điều hợp BT của Logitech
  • Bộ phận đầu ô tô Noname (chip CSR8645)
  • Bộ đầu ô tô Sony DSX-A400BT

Thiết bị hỗ trợ SBC cao hơn 512 kbit / s

  • JBL Everest 310 (617-660 kbit / s)
  • Sony WI-C400 (576 kbit / s)
  • Sony MDR-ZX770BT (617-660 kbit / s)
  • Marshall Major II Bluetooth (617-660 kbit / s)
  • Overdrive RealForce D1 (730 kbit / s, kênh đôi, 4 băng con)

Các thiết bị không hoạt động với tốc độ bit cao hơn hoặc Kênh kép

  1. Harper HB-202 (bánh quy giòn; chip Beken BK3256)
  2. Sony Ericsson MW600 (méo tần số cao, kêu răng rắc; thiết bị từ năm 2009)

Tại sao điều này lại quan trọng:SBC 328k và 485k so với aptX

Trái với suy nghĩ của nhiều người về chất lượng âm thanh aptX, trong một số trường hợp, nó có thể tạo ra chất lượng âm thanh kém hơn SBC với tốc độ bit 328k tiêu chuẩn.

SBC tự động phân bổ các bit lượng tử hóa cho các dải tần, hoạt động trên cơ sở “từ dưới lên trên”. Nếu toàn bộ tốc độ bit được sử dụng cho tần số thấp hơn và tần số trung bình, thì các tần số trên sẽ bị "cắt" (tắt tiếng).

aptX lượng tử hóa các dải tần số với cùng một số bit liên tục, khiến nó trở thành codec tốc độ bit không đổi:352 kbps cho 44,1 kHz, 384 kbps cho 48 kHz. Nó không thể “chuyển các bit” sang các tần số cần thiết nhất. Không giống như SBC, aptX sẽ không "cắt" các tần số, nhưng sẽ thêm nhiễu lượng tử hóa vào chúng, làm giảm dải động của âm thanh và đôi khi gây ra tiếng ồn. Ngược lại, SBC “ăn theo chi tiết” - loại bỏ những khu vực yên tĩnh nhất.

Trung bình, so với SBC 328k, aptX ít gây méo tiếng hơn trong nhạc có dải tần rộng, nhưng đối với nhạc có dải tần hẹp và dải động rộng thì SBC 328k đôi khi lại chiến thắng.

Chúng ta hãy xem xét một trường hợp đặc biệt, một bản ghi âm piano. Đây là một biểu đồ quang phổ:

Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể
Năng lượng nhiều nhất nằm ở tần số 0-4 kHz và kéo dài tới 10 kHz.
Quang phổ của tệp aptX tệp có dạng như sau:
Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

Đây là SBC 328k:
Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

Có thể thấy rằng SBC 328k định kỳ cắt hoàn toàn dải tần trên 16 kHz và sử dụng tất cả các tốc độ bit có sẵn cho dải dưới giá trị này. Tuy nhiên, aptX đã tạo ra nhiều biến dạng hơn đối với phổ tần số mà tai người có thể nghe thấy, có thể thấy trên biểu đồ quang phổ gốc đã trừ đi từ biểu đồ phổ aptX (càng sáng, càng méo):

Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể
Trong khi SBC 328k đã giới thiệu tín hiệu ít méo hơn trong dải từ 0 đến 10 kHz, và phần còn lại đã được сut:
Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

Tốc độ bit 485k cho SBC đủ để tiết kiệm toàn bộ dải tần mà không cắt dải.
Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

SBC 485k trên mẫu âm thanh này tốt hơn nhiều so với aptX trong dải 0-15 kHz và với sự khác biệt nhỏ hơn nhưng vẫn đáng chú ý - ở 15-22 kHz (càng tối, càng ít méo):

Cách sửa đổi ngăn xếp Bluetooth trên Android để có chất lượng âm thanh Bluetooth được cải thiện đáng kể

Chuyển sang SBC tốc độ bit cao, bạn sẽ luôn có được âm thanh vượt trội so với aptX trên bất kỳ tai nghe nào.

  • original_and_aptx.zip
  • sbc.zip

Cách sửa đổi ngăn xếp Bluetooth trên Android 5 - 7

Những sửa đổi này sẽ được áp dụng cho ngăn xếp bluetooth Android gốc Bluedroid (Android 5) và Fluoride (Android 6-7). Ngăn xếp do Qualcomm sửa đổi không được hỗ trợ.

Thay thế Joint Stereo bằng Dual Channel trong cấu hình SBC tiêu chuẩn

android / platform / external / bluetooth / bluedroid / btif / co / bta_av_co.c:99

Mã:

 const tA2D_SBC_CIE btif_av_sbc_default_config ={BTIF_AV_SBC_DEFAULT_SAMP_FREQ, / * samp_freq * / A2D_SBC_IE_CH_MD_JOINT, / * ch_mode * / A2D_SBC_IE_BLOCKS_16, / * block_len * / A2D_SBC_IE_SUBBAND_8, / * num_subbands * / A2D_SBC_IE_ALLOC_MD_L, / * alloc_mthd * / BTA_AV_CO_SBC_MAX_BITPOOL, / * max_bitpool * / A2D_SBC_IE_MIN_BITPOOL / * min_bitpool * /}; 

Thay A2D_SBC_IE_CH_MD_JOINT bằng A2D_SBC_IE_CH_MD_DUAL.

Tăng mức độ ưu tiên của Kênh kép

android / platform / external / bluetooth / bluedroid / btif / co / bta_av_co.c:41

Mã:

 if (src_cap.ch_mode &A2D_SBC_IE_CH_MD_JOINT) pref_cap.ch_mode =A2D_SBC_IE_CH_MD_JOINT; else if (src_cap.ch_mode &A2D_SBC_IE_CH_MD_STEREO) pref_cap.ch_mode =A2D_SBC_IE_CH_MD_STEREO; else if (src_cap.ch_mode &A2D_SBC_IE_CH_MD_DUAL) pref_cap.ch_mode =A2D_SBC_IE_CH_MD_DUAL; else if (src_cap.ch_mode &A2D_SBC_IE_CH_MD_MONO) pref_cap.ch_mode =A2D_SBC_IE_CH_MD_MONO; Di chuyển if với A2D_SBC_IE_CH_MD_DUAL lên trên cùng. 

  1. Tắt hoặc tăng giới hạn tốc độ bit

Ngăn xếp bluetooth Android không chỉ có giới hạn bitpool mà còn có giới hạn tốc độ bit, 328 kbit / s. Ví dụ:nếu tai nghe hỗ trợ bitpool 53 cho 48 kHz, Android sẽ giảm bitpool xuống để phù hợp với giới hạn 328 kbit / s. Điều này sẽ xảy ra SAU khi thương lượng codec, ở giai đoạn mã hóa, không tính đến giá trị bitpool trong gói Bluetooth SetCapabilities.

android / platform / external / bluetooth / bluedroid / btif / src / btif_media_task.c:172

Mã:

 #define DEFAULT_SBC_BITRATE 328 

Thay thế bằng 512.

  1. (chỉ dành cho thử nghiệm) Tắt giới hạn MTU.

Điều này là bắt buộc đối với tốc độ bit cao hơn ~ 580 kbit / s.

btif / src / btif_media_task.c:174

Mã:

 / * Kích thước tải trọng 2DH5 là 679 byte - (4 byte Tiêu đề L2CAP + 12 byte Tiêu đề AVDTP) * / # xác định MAX_2MBPS_AVDTP_MTU 663 

Cách sửa đổi ngăn xếp Bluetooth trên Android 8-9

Những sửa đổi này chưa được thử nghiệm, nhưng sẽ hoạt động.

Thêm hỗ trợ Kênh kép vào Nguồn A2DP SBC

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:55

Mã:

 / * khả năng SBC SRC giải mã * / static const tA2DP_SBC_CIE a2dp_sbc_caps ={A2DP_SBC_IE_SAMP_FREQ_44, / * samp_freq * / (A2DP_SBC_IE_CH_MD_MONO | A2DP_SBC_IE_CH_MD_JOINT), / * ch_mode * / (A2DP_SBC_IE_BLOCKS_16 | A2DP_SBC_IE_BLOCKS_12 | A2DP_SBC_IE_BLOCKS_8 | A2DP_SBC_IE_BLOCKS_4), / * block_len * / A2DP_SBC_IE_SUBBAND_8, / * num_subbands * / A2DP_SBC_IE_ALLOC_MD_L, / * allow_method * / A2DP_SBC_IE_MIN_BITPOOL, / * min_bitpool * / A2DP_SBC_MAX_BITP_OOL, / * max_bitpool_per_dung_dung_dung_dung / * 

thêm A2DP_SBC_IE_CH_MD_DUAL trong ch_mode.

Thay thế Joint Stereo bằng Dual Channel trong cấu hình mặc định

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:82

Mã:

 / * Mặc định SBC giải mã cấu hình * / const tA2DP_SBC_CIE a2dp_sbc_default_config ={A2DP_SBC_IE_SAMP_FREQ_44, / * samp_freq * / A2DP_SBC_IE_CH_MD_JOINT, / * ch_mode * / A2DP_SBC_IE_BLOCKS_16, / * block_len * / A2DP_SBC_IE_SUBBAND_8, / * num_subbands * / A2DP_SBC_IE_ALLOC_MD_L, / * alloc_method * / A2DP_SBC_IE_MIN_BITPOOL, / * min_bitpool * / A2DP_SBC_MAX_BITPOOL, / * max_bitpool * / BTAV_A2DP_CODEC_BITS_PER_SAMPLE_16 / * bits_per_sample * /}; 

Thay A2DP_SBC_IE_CH_MD_JOINT bằng A2DP_SBC_IE_CH_MD_DUAL.

Tăng mức độ ưu tiên của Kênh kép

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:1155

Mã:

 tĩnh bool select_best_channel_mode (uint8_t ch_mode, tA2DP_SBC_CIE * p_result, btav_a2dp_codec_config_t * p_codec_config) {if (ch_mode &A2DP_SBC_IE_CH_MD_JOINT_DP_DP) p_codec_config-> channel_mode =BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; trả về true; } If (ch_mode &A2DP_SBC_IE_CH_MD_STEREO) {p_result-> ch_mode =A2DP_SBC_IE_CH_MD_STEREO; p_codec_config-> channel_mode =BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; trả về true; } If (ch_mode &A2DP_SBC_IE_CH_MD_DUAL) {p_result-> ch_mode =A2DP_SBC_IE_CH_MD_DUAL; p_codec_config-> channel_mode =BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; trả về true; } If (ch_mode &A2DP_SBC_IE_CH_MD_MONO) {p_result-> ch_mode =A2DP_SBC_IE_CH_MD_MONO; p_codec_config-> channel_mode =BTAV_A2DP_CODEC_CHANNEL_MODE_MONO; trả về true; } Trả về false;} 

Di chuyển nếu bằng A2DP_SBC_IE_CH_MD_DUAL lên trên cùng.

Tăng giới hạn tốc độ bit

/platform/system/bt/stack/a2dp/a2dp_sbc_encoder.cc:42

Mã:

 #define A2DP_SBC_DEFAULT_BITRATE 328 

Thay thế bằng 512.

  1. (chỉ dành cho thử nghiệm) Tắt giới hạn MTU

Điều này là bắt buộc đối với tốc độ bit cao hơn ~ 580 kbit / s.

/platform/system/bt/stack/a2dp/a2dp_sbc_encoder.cc:47

Mã:

 #define MAX_2MBPS_AVDTP_MTU 663