<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    How is the pipeline behavior with this? gst-launch-1.0 uridecodebin
    uri=<a moz-do-not-send="true" class="moz-txt-link-rfc2396E"
      href="http://10.0.1.120:50002/m/NDLNA/396487.flac">"http://10.0.1.120:50002/m/NDLNA/396487.flac"</a>
    buffer-size=4000000 buffer-duration=0 ! audioconvert ! audioresample
    ! autoaudiosink<br>
    <br>
    <div class="moz-cite-prefix">On 2016-09-03 11:53, Jonathan Miles
      wrote:<br>
    </div>
    <blockquote
cite="mid:VI1PR0501MB235063CDA4BC23616E1DB144FAE40@VI1PR0501MB2350.eurprd05.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
      <div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
        <p>Thanks for your help.</p>
        <p><br>
        </p>
        <p>Here's the pipeline image: <a moz-do-not-send="true"
            href="http://imgur.com/a/WV5DF" class="OWAAutoLink"
            id="LPlnk191881">http://imgur.com/a/WV5DF</a></p>
        <p><span style="font-size: 12pt;">For the sake of completeness,
            here's the the drop-out (PLAYING->PAUSED): </span><a
            moz-do-not-send="true" href="http://imgur.com/a/dBnhq"
            class="OWAAutoLink" id="LPlnk649215" style="font-size:
            12pt;">http://imgur.com/a/dBnhq</a><br>
        </p>
        <p><span style="font-size: 12pt;">And restart
            (PAUSED->PLAYING): <a moz-do-not-send="true"
              href="http://imgur.com/a/IqMoU" class="OWAAutoLink"
              id="LPlnk837712">http://imgur.com/a/IqMoU</a></span></p>
        <p><br>
        </p>
        <p>Assuming I'm looking at the right part of uridecodebin,
          here's the queue size set-up:</p>
        <p><br>
        </p>
        <div>0:00:03.801279251   786   0x28af50 DEBUG          
          uridecodebin
          gsturidecodebin.c:1110:decoded_pad_event_probe:<decodebin0:src_0>
          found bitrate 0   </div>
        <div>0:00:03.892754459   786   0x28af50 DEBUG          
          uridecodebin
          gsturidecodebin.c:1110:decoded_pad_event_probe:<decodebin0:src_0>
          found bitrate 1411429</div>
        <div>0:00:03.899845626   786   0x28af50 DEBUG          
          uridecodebin
          gsturidecodebin.c:1065:configure_stream_buffering:<uridecodebin0>
          overall bitrate 1411429</div>
        <div>0:00:03.915355626   786   0x28af50 DEBUG          
          uridecodebin
          gsturidecodebin.c:1077:configure_stream_buffering:<uridecodebin0>
          queue buffering time 0:00:02.000000000</div>
        <div>0:00:03.917613084   786   0x28af50 DEBUG          
          uridecodebin
          gsturidecodebin.c:1080:configure_stream_buffering:<uridecodebin0>
          corresponds to buffer size 352857</div>
      </div>
      <hr style="display:inline-block;width:98%" tabindex="-1">
      <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt"
          face="Calibri, sans-serif" color="#000000"><b>From:</b>
          gstreamer-devel
          <a class="moz-txt-link-rfc2396E" href="mailto:gstreamer-devel-bounces@lists.freedesktop.org"><gstreamer-devel-bounces@lists.freedesktop.org></a> on
          behalf of Carlos Rafael Giani <a class="moz-txt-link-rfc2396E" href="mailto:dv@pseudoterminal.org"><dv@pseudoterminal.org></a><br>
          <b>Sent:</b> 02 September 2016 19:29:58<br>
          <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
          <b>Subject:</b> Re: Audio dropouts that disappear when queue2
          logging is enabled</font>
        <div> </div>
      </div>
      <div>Can you also produce a dot dump? Just run the gst-launch line
        with the GST_DEBUG_DUMP_DOT_DIR environment variable set to "."
        or "/tmp/". In that directory, GStreamer will then generate a
        bunch of .dot files. Pick the one with "PAUSED_PLAYING" in its
        filename, convert it to PNG with the dot tool (dot -Tpng -o
        dot-dump.png <filename.dot>), and put it on Imgur.<br>
        <br>
        It is possible that the maximum internal queue2 size is too
        small. I've had this problem with FLAC before. The two most
        common reasons for this (which I've observed) were: (1) queue2
        figured out a size that is too low because it looked at the
        incoming data rate, which just happened to be low at this moment
        (2) uridecodebin got a bogus bitrate from the FLAC parser that
        is way too low (can happen with FLACs that start with silence),
        so it calculates a small size based on that.<br>
        <br>
        <div class="moz-cite-prefix">On 2016-09-02 17:05, Jonathan Miles
          wrote:<br>
        </div>
        <blockquote
cite="mid:VI1PR0501MB235052587BA3C6568C43EC59FAE50@VI1PR0501MB2350.eurprd05.prod.outlook.com"
          type="cite">
          <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
          <div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
            <div>Here's the info from the identity element:</div>
            <div><br>
            </div>
            <div>/GstPipeline:pipeline0/GstIdentity:identity0:
              last-message = chain   ******* (identity0:sink) (18432
              bytes, dts: none, pts: 0:00:51.408979591, duration:
              0:00:00.104489796, offset: -1, offset_end: -1, flags:
              00000000 ) 0xb4180df8</div>
            <div>/GstPipeline:pipeline0/GstIdentity:identity0:
              last-message = chain   ******* (identity0:sink) (18432
              bytes, dts: none, pts: 0:00:51.513469387, duration:
              0:00:00.104489796, offset: -1, offset_end: -1, flags:
              00000000 ) 0xb4f2ec10</div>
            <div>Buffering, setting pipeline to PAUSED ...</div>
            <div>Done buffering, setting pipeline to PLAYING ...</div>
            <div>/GstPipeline:pipeline0/GstIdentity:identity0:
              last-message = chain   ******* (identity0:sink) (18432
              bytes, dts: none, pts: 0:00:51.617959183, duration:
              0:00:00.104489796, offset: -1, offset_end: -1, flags:
              00000000 ) 0xb4f12200</div>
            <div>/GstPipeline:pipeline0/GstIdentity:identity0:
              last-message = chain   ******* (identity0:sink) (18432
              bytes, dts: none, pts: 0:00:51.722448979, duration:
              0:00:00.104489796, offset: -1, offset_end: -1, flags:
              00000000 ) 0xb4f2e990</div>
            <div>/GstPipeline:pipeline0/GstIdentity:identity0:
              last-message = chain   ******* (identity0:sink) (18432
              bytes, dts: none, pts: 0:00:51.826938775, duration:
              0:00:00.104489796, offset: -1, offset_end: -1, flags:
              00000000 ) 0xb43d18f0</div>
            <br>
          </div>
          <hr style="display:inline-block;width:98%" tabindex="-1">
          <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt"
              face="Calibri, sans-serif" color="#000000"><b>From:</b>
              gstreamer-devel
              <a moz-do-not-send="true" class="moz-txt-link-rfc2396E"
                href="mailto:gstreamer-devel-bounces@lists.freedesktop.org">
                <gstreamer-devel-bounces@lists.freedesktop.org></a>
              on behalf of Carlos Rafael Giani
              <a moz-do-not-send="true" class="moz-txt-link-rfc2396E"
                href="mailto:dv@pseudoterminal.org"><dv@pseudoterminal.org></a><br>
              <b>Sent:</b> 02 September 2016 15:55:25<br>
              <b>To:</b> <a moz-do-not-send="true"
                class="moz-txt-link-abbreviated"
                href="mailto:gstreamer-devel@lists.freedesktop.org">
                gstreamer-devel@lists.freedesktop.org</a><br>
              <b>Subject:</b> Re: Audio dropouts that disappear when
              queue2 logging is enabled</font>
            <div> </div>
          </div>
          <div>
            <p>It is possible that downstream consumes the entire
              buffered data in one go. Try this:</p>
            <p><br>
            </p>
            <p>gst-launch-1.0 -v uridecodebin uri=<a
                moz-do-not-send="true" class="moz-txt-link-rfc2396E"
                href="http://10.0.1.120:50002/m/NDLNA/396487.flac">"http://10.0.1.120:50002/m/NDLNA/396487.flac"</a>
              ! identity silent=false ! audioconvert ! audioresample !
              autoaudiosink<br>
            </p>
            <p><br>
            </p>
            <p>Then you'll get lines from the identity element which
              tell you about the size of the passing buffers. Paste a
              few of those lines here.<br>
            </p>
            <p><br>
            </p>
            <br>
            <div class="moz-cite-prefix">On 2016-09-02 16:39, Jonathan
              Miles wrote:<br>
            </div>
            <blockquote
cite="mid:VI1PR0501MB2350A64C9A6A1AF017BB68BFFAE50@VI1PR0501MB2350.eurprd05.prod.outlook.com"
              type="cite">
              <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
              <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
              <div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
                <p>Tweaking the logging, I'm seeing the following dance
                  between queue2 and souphttpsrc:</p>
                <p><br>
                </p>
                <div>Done buffering, setting pipeline to PLAYING ...</div>
                <div>0:00:20.721441002  3095   0x286150 INFO            
                       queue2
                  gstqueue2.c:2447:gst_queue2_locked_dequeue:<queue2-0>
                  cur_level.bytes=0</div>
                <div>0:00:20.721910210  3095   0x286150 INFO            
                       queue2
                  gstqueue2.c:1070:gst_queue2_get_buffering_message:<queue2-0>
                  Going to post buffering: 0%</div>
                <div>0:00:20.723109877  3095   0x3f6ac0 INFO            
                       queue2
                  gstqueue2.c:2328:gst_queue2_locked_enqueue:<queue2-0>
                  cur_level.bytes=886192</div>
                <div>buffering... 0%</div>
                <div>Buffering, setting pipeline to PAUSED ...</div>
                <div>0:00:20.731298335  3095   0x3f6ac0 INFO            
                       queue2
                  gstqueue2.c:1070:gst_queue2_get_buffering_message:<queue2-0>
                  Going to post buffering: 100%</div>
                <div>0:00:20.795157794  3095   0x3f6ac0 DEBUG          
                   souphttpsrc
                  gstsouphttpsrc.c:1640:gst_soup_http_src_read_buffer:<source>
                  Read 947616 bytes from http input</div>
                <div>0:00:20.797286460  3095   0x3f6ac0 DEBUG          
                   souphttpsrc
                  gstsouphttpsrc.c:1744:gst_soup_http_src_create:<source>
                  Returning 0 ok</div>
                <div>buffering... 100%</div>
                <div>Done buffering, setting pipeline to PLAYING ...</div>
                <div>0:00:26.157894003  3095   0x286150 INFO            
                       queue2
                  gstqueue2.c:2447:gst_queue2_locked_dequeue:<queue2-0>
                  cur_level.bytes=0</div>
                <div>0:00:26.158368253  3095   0x286150 INFO            
                       queue2
                  gstqueue2.c:1070:gst_queue2_get_buffering_message:<queue2-0>
                  Going to post buffering: 0%</div>
                <div>0:00:26.159438128  3095   0x3f6ac0 INFO            
                       queue2
                  gstqueue2.c:2328:gst_queue2_locked_enqueue:<queue2-0>
                  cur_level.bytes=947616</div>
                <div>buffering... 0%</div>
                <div>Buffering, setting pipeline to PAUSED ...</div>
                <div>0:00:26.165946669  3095   0x3f6ac0 INFO            
                       queue2
                  gstqueue2.c:1070:gst_queue2_get_buffering_message:<queue2-0>
                  Going to post buffering: 100%</div>
                <div>0:00:26.230684461  3095   0x3f6ac0 DEBUG          
                   souphttpsrc
                  gstsouphttpsrc.c:1640:gst_soup_http_src_read_buffer:<source>
                  Read 947896 bytes from http input</div>
                <div>0:00:26.232809503  3095   0x3f6ac0 DEBUG          
                   souphttpsrc
                  gstsouphttpsrc.c:1744:gst_soup_http_src_create:<source>
                  Returning 0 ok</div>
                <div>buffering... 100%</div>
                <div>Done buffering, setting pipeline to PLAYING ...</div>
                <p><br>
                </p>
                <p>It looks like queue2 is sending the "buffering 0%"
                  message before souphttpsrc has had a chance to re-fill
                  the queue.</p>
                <p><br>
                </p>
                <p>Some more info on my set-up</p>
                <p><br>
                </p>
                <p> - Building from git master</p>
                <p> - Crossed compiled for ARM</p>
                <p> - Running on an ARM AM335x (like a Beagle Bone)</p>
                <p> - Linux 3.8.11 - no kernel pre-emption enabled</p>
              </div>
              <hr style="display:inline-block;width:98%" tabindex="-1">
              <div id="divRplyFwdMsg" dir="ltr"><font
                  style="font-size:11pt" face="Calibri, sans-serif"
                  color="#000000"><b>From:</b> gstreamer-devel
                  <a moz-do-not-send="true"
                    class="moz-txt-link-rfc2396E"
                    href="mailto:gstreamer-devel-bounces@lists.freedesktop.org">
<gstreamer-devel-bounces@lists.freedesktop.org></a> on behalf of
                  Jonathan Miles <a moz-do-not-send="true"
                    class="moz-txt-link-rfc2396E"
                    href="mailto:jonathan.miles@cambridgeaudio.com">
                    <jonathan.miles@cambridgeaudio.com></a><br>
                  <b>Sent:</b> 02 September 2016 11:57:55<br>
                  <b>To:</b> <a moz-do-not-send="true"
                    class="moz-txt-link-abbreviated"
                    href="mailto:gstreamer-devel@lists.freedesktop.org">
                    gstreamer-devel@lists.freedesktop.org</a><br>
                  <b>Subject:</b> Audio dropouts that disappear when
                  queue2 logging is enabled</font>
                <div> </div>
              </div>
              <div>
                <div id="divtagdefaultwrapper" style="font-size:12pt;
                  color:#000000; background-color:#FFFFFF;
                  font-family:Calibri,Arial,Helvetica,sans-serif">
                  <div>While playing a FLAC file from a Synology NAS,
                    I'm getting audio dropouts as a result
                    of re-buffering:</div>
                  <div><br>
                  </div>
                  <div>
                    <div>~ # gst-launch-1.0 playbin uri=<a
                        moz-do-not-send="true"
                        class="moz-txt-link-rfc2396E"
                        href="http://10.0.1.120:50002/m/NDLNA/396487.flac">"http://10.0.1.120:50002/m/NDLNA/396487.flac"</a></div>
                    <div>Setting pipeline to PAUSED ...</div>
                    <div>Pipeline is PREROLLING ...</div>
                    <div>WARNING: from element
                      /GstPlayBin:playbin0/GstPlaySink:playsink: No
                      volume control found</div>
                    <div>Additional debug info:</div>
                    <div>/home/jonathanm/build/v010-a/build-glibc-glibc/work/armv7a-vfp-neon-oe-linux-gnueabi/gstreamer1.0-plugins-base/git-r0/git/gst/playback/gstplaysink.c(2857):
                      gen_audio_chain ():
                      /GstPlayBin:playbin0/GstPlaySink:playsink:</div>
                    <div>Volume/mute is not available</div>
                    <div>Redistribute latency...</div>
                    <div>Pipeline is PREROLLED ...</div>
                    <div>Setting pipeline to PLAYING ...</div>
                    <div>New clock: GstAudioSinkClock</div>
                    <div>Buffering, setting pipeline to PAUSED ...</div>
                    <div>Done buffering, setting pipeline to PLAYING ...</div>
                    <div>Buffering, setting pipeline to PAUSED ...</div>
                    <div>Done buffering, setting pipeline to PLAYING ...</div>
                    <div><br>
                    </div>
                    If I enable queue2 debugging (GST_DEBUG="queue2:5"),
                    the audio drop-outs disappear, as the pipeline
                    doesn't get set to PAUSED, although it looks like
                    the rebuffering is still happening:</div>
                  <div><br>
                  </div>
                  <div>
                    <div>0:00:32.967181462  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:842:apply_buffer:<queue2-0>
                      position updated to 0:00:00.000000000</div>
                    <div>0:00:32.967705879  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:740:update_time_level:<queue2-0>
                      sink 0:00:00.000000000, src 0:00:00.000000000</div>
                    <div>0:00:32.968154921  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:1221:update_out_rates:<queue2-0>
                      rates: period 5.950074, out 1048576</div>
                    <div>0:00:32.968559296  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:1239:update_out_rates:<queue2-0>
                      rates: out 266973.567011, time 0:00:00.000000000</div>
                    <div>0:00:32.969009754  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:1199:update_in_rates:<queue2-0>
                      rates: in 1361330.412743, time 0:00:00.000000000</div>
                    <div>0:00:32.969451212  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:1004:get_buffering_level:<queue2-0>
                      buffering 0, level 0</div>
                    <div>0:00:32.969777004  1648   0x2cfb50 DEBUG      
                                queue2
                      gstqueue2.c:1122:update_buffering:<queue2-0>
                      buffering 0 percent</div>
                    <div>0:00:32.972558504  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:842:apply_buffer:<queue2-0>
                      position updated to 0:00:00.000000000</div>
                    <div>0:00:32.973054296  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:740:update_time_level:<queue2-0>
                      sink 0:00:00.000000000, src 0:00:00.000000000</div>
                    <div>0:00:32.973499504  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:1199:update_in_rates:<queue2-0>
                      rates: in 1361330.412743, time 0:00:00.779502162</div>
                    <div>0:00:32.973981379  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:1199:update_in_rates:<queue2-0>
                      rates: in 1361330.412743, time 0:00:00.779502162</div>
                    <div>0:00:32.974428254  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:1004:get_buffering_level:<queue2-0>
                      buffering 1, level 1000000</div>
                    <div>0:00:32.974764921  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:1116:update_buffering:<queue2-0>
                      buffering 100 percent</div>
                    <div>0:00:32.975315546  1648   0x4408c0 DEBUG      
                                queue2
                      gstqueue2.c:1070:gst_queue2_get_buffering_message:<queue2-0>
                      Going to post buffering: 100%</div>
                    <div>Done buffering, setting pipeline to PLAYING ...</div>
                    <br>
                  </div>
                  <div>Anyone got any ideas as to what might be going
                    here?</div>
                  <div><br>
                  </div>
                  <div>Thanks,</div>
                  <div><br>
                  </div>
                  <div>Jonathan</div>
                </div>
                <br>
                <br>
                Audio Partnership PLC, Gallery Court, Hankey Place,
                London SE1 4BB, UK Reg No. 2953313 This e-mail is
                confidential and for the addressee only. Please refer to
                <a moz-do-not-send="true"
                  href="https://www.cambridgeaudio.com/disclaimer"
                  target="_blank">
                  Disclaimer</a> for important notices. </div>
              <br>
              <br>
              Audio Partnership PLC, Gallery Court, Hankey Place, London
              SE1 4BB, UK Reg No. 2953313 This e-mail is confidential
              and for the addressee only. Please refer to
              <a moz-do-not-send="true"
                href="https://www.cambridgeaudio.com/disclaimer"
                target="_blank">
                Disclaimer</a> for important notices. <br>
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br>
              <pre wrap="">_______________________________________________
gstreamer-devel mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
            </blockquote>
            <br>
          </div>
          <br>
          <br>
          Audio Partnership PLC, Gallery Court, Hankey Place, London SE1
          4BB, UK Reg No. 2953313 This e-mail is confidential and for
          the addressee only. Please refer to
          <a moz-do-not-send="true"
            href="https://www.cambridgeaudio.com/disclaimer"
            target="_blank">
            Disclaimer</a> for important notices. <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <br>
          <pre wrap="">_______________________________________________
gstreamer-devel mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
        </blockquote>
        <br>
      </div>
      <br>
      <br>
      Audio Partnership PLC, Gallery Court, Hankey Place, London SE1
      4BB, UK Reg No. 2953313
      This e-mail is confidential and for the addressee only. Please
      refer to <a moz-do-not-send="true"
        href="https://www.cambridgeaudio.com/disclaimer" target="_blank">Disclaimer</a>
      for important notices. <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>