<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi <br>
        <br>
        below is what the terminate shows when running pcm_avail.c<br>
      <br>
        uid=0 gid=1007@nutshell:/ #
      alsactl_test                                       <br>
      min_period_size: 8 frames, dir: 0<br>
      Playback hwparams: FIFO size is 8<br>
      Hardware PCM card 0 'rsnd-dai.0-dirana3.0' device 0 subdevice 0<br>
      Its setup is:<br>
        stream       : PLAYBACK<br>
        access       : RW_INTERLEAVED<br>
        format       : S16_LE<br>
        subformat    : STD<br>
        channels     : 2<br>
        rate         : 48000<br>
        exact rate   : 48000 (48000/1)<br>
        msbits       : 16<br>
        buffer_size  : 4096<br>
        period_size  : 1024<br>
        period_time  : 21333<br>
        tstamp_mode  : NONE<br>
        period_step  : 1<br>
        avail_min    : 1024<br>
        period_event : 0<br>
        start_threshold  : 1024<br>
        stop_threshold   : 4096<br>
        silence_threshold: 0<br>
        silence_size : 0<br>
        boundary     : 1073741824<br>
        appl_ptr     : 0<br>
        hw_ptr       : 0<br>
      Playing silence<br>
      Available: 0, loop iteration: 0<br>
      Available: 1024, loop iteration: 1469<br>
      Available: 2048, loop iteration: 5609<br>
      Available: 3072, loop iteration: 9667<br>
      <br>
       All I got is just the 4 lines.<br>
      <br>
      BR,<br>
      Lixin<br>
      <br>
      <br>
      在 2015年06月09日 11:38, Raymond Yau 写道:<br>
    </div>
    <blockquote
cite="mid:CAN8cciZ7fsgFxzrQTHs_6cOMERsU5kzTXkFHF-WCgjrRV8jDqg@mail.gmail.com"
      type="cite">
      <p>><br>
        >    I found some audio noise problem when I trying to set
        the sink latency to a lower value.<br>
        ><br>
        >    here is the alsa dump:<br>
        ><br>
        >     D/NMAudio ( 1959): Its setup is:<br>
        >     D/NMAudio ( 1959):   stream       : PLAYBACK<br>
        >     D/NMAudio ( 1959):   access       : MMAP_INTERLEAVED<br>
        >     D/NMAudio ( 1959):   format       : S16_LE<br>
        >     D/NMAudio ( 1959):   subformat    : STD<br>
        >     D/NMAudio ( 1959):   channels     : 2<br>
        >     D/NMAudio ( 1959):   rate         : 22050<br>
        >     D/NMAudio ( 1959):   exact rate   : 22050 (22050/1)<br>
        >     D/NMAudio ( 1959):   msbits       : 16<br>
        >     D/NMAudio ( 1959):   buffer_size  : 8192<br>
        >     D/NMAudio ( 1959):   period_size  : 2048<br>
        >     D/NMAudio ( 1959):   period_time  : 92879<br>
        >     D/NMAudio ( 1959):   tstamp_mode  : ENABLE<br>
        >     D/NMAudio ( 1959):   period_step  : 1<br>
        >     D/NMAudio ( 1959):   avail_min    : 7751<br>
        >     D/NMAudio ( 1959):   period_event : 0<br>
        >     D/NMAudio ( 1959):   start_threshold  : -1<br>
        >     D/NMAudio ( 1959):   stop_threshold   : 1073741824<br>
        >     D/NMAudio ( 1959):   silence_threshold: 0<br>
        >     D/NMAudio ( 1959):   s<br>
        ><br>
        >    here is the log when problem happened:</p>
      <p><a moz-do-not-send="true"
href="https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/linux/dmaengine.h">https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/linux/dmaengine.h</a></p>
      <p>* @DMA_RESIDUE_GRANULARITY_SEGMENT: Residue is updated after
        each successfully<br>
        *  completed segment of the transfer (For cyclic transfers this
        is after each<br>
        *  period). This is typically implemented by having the hardware
        generate an<br>
        *  interrupt after each transferred segment and then the drivers
        updates the<br>
        *  outstanding residue by the size of the segment. Another
        possibility is if<br>
        *  the hardware supports scatter-gather and the segment
        descriptor has a field<br>
        *  which gets set after the segment has been completed. The
        driver then counts<br>
        *  the number of segments without the flag set to compute the
        residue.<br>
        * @DMA_RESIDUE_GRANULARITY_BURST: Residue is updated after each
        transferred<br>
        *  burst. This is typically only supported if the hardware has a
        progress<br>
        *  register of some sort (E.g. a register with the current
        read/write address<br>
        *  or a register with the amount of bursts/beats/bytes that have
        been<br>
        *  transferred or still need to be transferred).<br>
        */</p>
      <p>How accurate can you sound card hw_ptr increase ?  period size
        or DMA  brust size ?<br>
      </p>
      <p><a moz-do-not-send="true"
href="http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081501.html">http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081501.html</a></p>
      <p>you can try Alexander's pcm_avail.c </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
pulseaudio-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:pulseaudio-discuss@lists.freedesktop.org">pulseaudio-discuss@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss">http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>