On 10.02.2018 02:11, Shinnosuke Suzuki wrote: > Hi > >> PA 11.1 should work fine with your kernel and bluez version. > > Thank you, Iâ??ll try that. > >>>> When you record from the BT headset, the BT headset is set to HSP/HFP. >>>> This means that recording and playback stream are at 8kHz, not 16kHz. > > I want to handle voice packet as Linear 16bit little endian 16000Hz, > I configure stream as follows. > static pa_sample_spec samplespec = { > .format = PA_SAMPLE_S16LE, /* Linear 16bit */ > .rate = 16000, /* 16000Hz */ > .channels = 1 /* mono */ > } > Does it means .rate should be 8000? It should work if you specify 16kHz because PA will do the resampling. But I would try with 8kHz, just to see if something changes. Did you try another source? Does parecord work with your headset? > >> You should not expect to get a fixed number of bytes in a fixed time >> interval. This is only true on average but not for a single callback. Are >> the 96 bytes an average value? >> If your application needs constant size data packets, you may have to >> buffer some data. >> Did you take a look at the pacat code to see how reading data from >> a stream is done correctly? > > I donâ??t expect fixed number of bytes. So, I implemented to  buffer > voice packets in read callback. > However I got voice packet on my callback at 96 bytes per 10ms constantly. > It means I couldnâ??t get sufficient voice packet because voice packet > needs > at least 320bytes per 10ms in case of Linear 16bit little endian 16000Hz. > > I read pacat how to handle voice packet in read callback. > I implemented like pacat except silence hole using pa_silence_memory(). Sorry, currently I have no idea what goes wrong. The number of 96 bytes / 10ms sounds weird and does not match any of the involved sample rates / formats. Is your code available somewhere so that I can take a look? -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20180210/84b09c4a/attachment-0001.html>