I am currently working on an embed linux video server. When I deployed the application to the boards we are planning on using for production I noticed that the audio was noisy.
I discovered that the audio capture is supposed to be grabbing 640 bytes of data (16 khz, 1 channel, with 16 bit width @ 20 ms per buffer). However regardless of how I grab the data, it always returns 682 bytes, which is, assuming, that I am achieving the sample rate, 21.3 ms of data.
I thought, ok, maybe this is just an alsa problem, so I tried pulse... same problem. Then I tried using PTLib grabbing straight from the sound card ... same problem. I know the code is right (hence the reason the question is here and not on stack overflow). What should I be looking for to solve this problem?
It has to be exactly 20 ms of data for me to pass to the rtp stream for the purposes of the jitter buffer. Any ideas?
The sound card is an Integrated Realtek ALC888 6-channel HD audio codec.
Sounds like a hardware/chip problem to me. It wouldn't be the first time hardware doesn't follow a data sheet. I would check with the driver coders.