Intel HDA Driver Issue With PCM RW Interleaved

Ryan McClue re.mcclue at protonmail.com
Mon Jul 26 08:37:52 CEST 2021


Hi,
I'm trying to play a simple PCM buffer single threaded without buffer underrun.
Program source:https://gist.github.com/takaswie/d8a9553c230971d974a3dfc759b2ff67
(struct snd_pcm_sw_params).start_thresholdis altered so as to allow specifying the start of audio frame transmission and prevent underrun issues.
In my application, onioctl(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

From a previous response on thealsa-develmailing list:

> 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.

However, I'm not sure what to change in this code to address this issue and get it to work. I tried alteringMY_PLAYBACK_DURATIONandparams.start_thresholdbut get the same error.

The program dumps the current hardware parameters:

Current hardware parameters:
  Changed parameters:
    access
    format
    subformat
    sample-bits
    frame-bits
    channels
    rate
    period-time
    period-size
    period-bytes
    periods
    buffer-time
    buffer-size
    buffer-bytes
    tick-time
  Runtime parameters:
    access:
      readwrite-interleaved
    format:
      s16-le
    subformat:
      std
    sample-bits:
      [16, 16], integer,
    frame-bits:
      [32, 32], integer,
    channels:
      [2, 2], integer,
    rate:
      [48000, 48000], integer,
    period-time:
      (666, 667),
    period-size:
      [32, 32], integer,
    periods:
      [32, 32], integer,
    buffer-time:
      (21333, 21334),
    buffer-size:
      [1024, 1024], integer,
    buffer-bytes:
      [4096, 4096], integer,
    tick-time:
      [0, 0], integer,
    info:
      mmap
      mmap-valid
      interleaved
      block-transfer
      pause
      sync-start
      no-period-wakeup
      has-wall-clock
      has-link-atime
      has-link-synchronized-atime
      most-significant-bits:    16
      rate_num: 48000
      rate_den: 1

Thanks


More information about the Alsa-devel mailing list