On 30.07.2018 10:17, Pali Rohár wrote: > On Monday 30 July 2018 06:30:14 valdikss wrote: >> On 22.07.2018 14:37, Pali Rohár wrote: >> >>> Information which I have about FastStream: It is just SBC codec with >>> following parameters: frequency rate 44.1 kHz or 48.0 kHz, Blocks 16, >>> Sub-bands 8, Joint Stereo, Loudness and Bitpool = 29. So data rate = 212 >>> kbps, packet size = 72*3+4 = 220 = DM5 and that DSP decoders round 71 >>> bytes frames to 72 bytes. So I'm not sure how "low latency" it is. >>> Normal SBC codec allows you to specify all those parameters. But >>> FastStream has one additional feature: it supports backchannel for >>> voice, so you do not have to switch between HFP/HSP and A2DP once you >>> have incoming voice call. You can always use just A2DP with FastStream. >>> >>> Pulseaudio for SBC codec choose those parameters: Joint Stereo, Block >>> 16, Sub-bands 8, Loudness. Frequency and bitpool depends on pulseaudio >>> source. If bluetooth device does not support those parameters, >>> pulseaudio lower values. So for me it looks like that FastStream matches >>> default SBC pulseaudio configuration. >>> >>> Backchannel in FastStream for microphone voice again uses SBC codec with >>> parameters: 16 KHz frequency rate, Blocks 16, Sub-bands 8, Loudness, >>> Bitpool 32. So data rate = 72 kbps, packet size = 3*72 + 4 = 220 <= DM5. >>> Which should be much better then CVSD codec at 8 kHz used in HFP/HSP. >>> But is there really difference for voice data which comes from >>> (probably poor) microphone integrated in headsets? >>> >>>> handful of Creative headsets that don't seem to support any other codecs. I >>>> would put it between SBC and AAC. If someone prefers SBC over it, they know >>>> enough about Bluetooth operation to qualify as a power user capable of using >>>> the config file to disable FastStream. >>> Based on above details I would say it must be similar (or same?) as SBC >>> for streaming. But who knows how is receiver implemented? I would not be >>> surprised if some bluetooth headset have degraded SBC A2DP codec just >>> for marketing purposed to show that other vendor codec is "better". >>> >>> As I said, I need to play with FastStream and see what my headset would >>> do with it. For me interesting part is that backchannel support to avoid >>> all problems with switching between A2DP and HSP/HFP profiles (to >>> activate HSP/HFP only in case I have incoming call and after hangup >>> switch back to AD2P...). >> It would be great if FastStream support could be implemented. I have a headset with CSR (now Qualcomm) chip which supports SBC, AptX, AAC and FastStream. The headset is rather unknown and not expensive (but surprisingly good), so I assume FastStream support is not that rare. >> If high-quality duplex audio is possible with Bluetooth, that would be very handy for conferences. > Now I have working sink support (sending audio from host to headset) for > FastStream codec in pulseaudio. Voice backchannel support would be > rather challenge as I do not know if bluez provides API for such thing. > > Anyway good news is that at least my Creative headset automatically > starts sending voice data after FastStream codec is negotiated and via > "btmon" I was able to capture voice data and via "sbcdec" decode them to > check that it is correct and usable. > > May I ask which headset it is? I was told that FastStream is supported > only by Creative headsets. > It's RealForce OverDrive D1. Here's what could be seen in btmon upon connection: > ACL Data RX: Handle 256 flags 0x02 dlen 20              #100 [hci0] 5.331899      Channel: 66 len 16 [PSM 25 mode 0] {chan 2}      AVDTP: Get Capabilities (0x02) Response Accept (0x02) type 0x00 label 13 nosp 0        Service Category: Media Transport (0x01)        Service Category: Media Codec (0x07)          Media Type: Audio (0x00)          Media Codec: SBC (0x00)            Frequency: 0xf0              16000              32000              44100              48000            Channel Mode: 0x0f              Mono              Dual Channel              Stereo              Joint Stereo            Block Length: 0xf0              4              8              12              16            Subbands: 0x0c              4              8            Allocation Method: 0x03              SNR              Loudness            Minimum Bitpool: 2            Maximum Bitpool: 53        Service Category: Content Protection (0x04)          Content Protection Type: SCMS-T (0x0002) > ACL Data RX: Handle 256 flags 0x02 dlen 19              #103 [hci0] 5.361891      Channel: 66 len 15 [PSM 25 mode 0] {chan 2}      AVDTP: Get Capabilities (0x02) Response Accept (0x02) type 0x00 label 14 nosp 0        Service Category: Media Transport (0x01)        Service Category: Media Codec (0x07)          Media Type: Audio (0x00)          Media Codec: Non-A2DP (0xff)            Vendor ID: APT Licensing Ltd. (0x0000004f)            Vendor Specific Codec ID: aptX (0x0001)              Frequency: 0xf0                16000                32000                44100                48000              Channel Mode: 0x02                Stereo > ACL Data RX: Handle 256 flags 0x02 dlen 20              #106 [hci0] 5.391902      Channel: 66 len 16 [PSM 25 mode 0] {chan 2}      AVDTP: Get Capabilities (0x02) Response Accept (0x02) type 0x00 label 15 nosp 0        Service Category: Media Transport (0x01)        Service Category: Media Codec (0x07)          Media Type: Audio (0x00)          Media Codec: MPEG-1,2 Audio (0x01)            Layer: 0x20              Layer III (mp3)            CRC: Yes            Channel Mode: 0x0f              Mono              Dual Channel              Stereo              Joint Stereo            Media Payload Format: RFC-2250            Frequency: 0x3f              16000              22050              24000              32000              44100              48000            VBR: Yes        Service Category: Content Protection (0x04)          Content Protection Type: SCMS-T (0x0002) > ACL Data RX: Handle 256 flags 0x02 dlen 20              #109 [hci0] 5.421906      Channel: 66 len 16 [PSM 25 mode 0] {chan 2}      AVDTP: Get Capabilities (0x02) Response Accept (0x02) type 0x00 label 0 nosp 0        Service Category: Media Transport (0x01)        Service Category: Media Codec (0x07)          Media Type: Audio (0x00)          Media Codec: Non-A2DP (0xff)            Vendor ID: Cambridge Silicon Radio (0x0000000a)            Vendor Specific Codec ID: Unknown (0x0001)        03 23                                           .# Am I misunderstanding the latest item? Is it not a FastStream?