On Wed, 19 May 2021 07:48:52 +0200, re.mcclue wrote:
I'm trying to play PCM buffer single threaded without buffer underrun. Program source: https://gist.github.com/takaswie/d8a9553c230971d974a3dfc759b2ff67 (struct snd_pcm_sw_params).start_threshold is altered so as to allow specifying the start of audio frame transmission and prevent underrun issues. In my application, on ioctl(fd, SNDRV_PCM_IOCTL_STATUS, &status), I receive: File descriptor in bad state Output of $(dmesg) is: [ 69.013084] snd_hda_intel 0000:00:1f.3: Too big adjustment 128 What is causing this issue and how can I solve it?
The warning message is likely a red herring and it's irrelevant from your bug itself. The driver has some small number of periods to be put at the beginning of the buffer for correcting the reported position. Judging from the message, you seem to have set a quite high rate and a very shot number, and that's possibly too tight to operate properly.
Takashi