<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Edip,<br>
    <br>
    While I appreciate the thought in your answer, a timed wait is not
    the right way to handle a race condition - which is ultimately what
    using the on-bye-ssrc signal to inject an EOS is.  Nor will it work
    in my (exceedingly time sensitive) application - it would introduce
    notable lags to the user.<br>
    <br>
    I've tried using idle waits (as you have), but the on-bye-ssrc
    signal fires before any of my (canned) audio makes it through the
    RTPBin - meaning the pad is already idle.  If there isn't something
    I'm missing, it seems like this is a bug.  It would take a couple
    thousand lines of (C) code to work around this from the outside. 
    From the inside its probably a couple dozen at most to examine state
    when sending RTCP packets (which is where the UDP sink for RTCP gets
    its EOS) or to examine RTP packets and see if they've all arrived
    yet.<br>
    <br>
    Steve<br>
    <br>
    <div class="moz-cite-prefix">On 01/08/2016 10:16 PM, edip demirbilek
      wrote:<br>
    </div>
    <blockquote
      cite="mid:97B81C7B-CCA5-4F37-931D-DF21DD930654@gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div class="">Hello Steve,</div>
      <div class=""><br class="">
      </div>
      <div class="">I had similar problem. I have solved it by adding
        some sleep between sending EOS and changing the pipeline state
        in each step. This might not be the nicest solution but it is
        working for me. </div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">On the server side:</b></div>
      <div class=""><br class="">
      </div>
      <div class="">bus.connect('message::eos', on_eos)</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="">def eos():</div>
        <div class="">    pipeline.send_event(gst.Event.new_eos())</div>
        <div class="">    time.sleep(<sometime>)</div>
        <div class="">    pipeline.set_state(gst.State.NULL)</div>
        <div class="">    time.sleep(<sometime>)</div>
        <div class="">    mainloop.quit()</div>
      </div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">On the client side:</b></div>
      <div class=""><br class="">
      </div>
      <div class="">rtpbin.connect('on-bye-ssrc', on_bye_ssrc)</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="">def on_bye_ssrc(rtpbin, sessionid, ssrc):</div>
        <div class="">     gobject.idle_add (eos)</div>
      </div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="">def eos():</div>
        <div class="">    pipeline.send_event(gst.Event.new_eos())</div>
        <div class="">    time.sleep(<sometime>)</div>
        <div class="">    pipeline.set_state(gst.State.NULL)</div>
        <div class="">    time.sleep(<sometime>)</div>
        <div class="">    mainloop.quit()</div>
      </div>
      <div class=""><br class="">
      </div>
      <div class="">Regards</div>
      <div class="">Edip</div>
      <br class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">On Jan 8, 2016, at 9:52 PM, Steven Presser <<a
              moz-do-not-send="true" href="mailto:steve160@gmail.com"
              class=""><a class="moz-txt-link-abbreviated" href="mailto:steve160@gmail.com">steve160@gmail.com</a></a>> wrote:</div>
          <br class="Apple-interchange-newline">
          <div class=""><span style="font-family: Helvetica; font-size:
              12px; font-style: normal; font-variant: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">I've put together an
              application which uses RTP and RTCP to stream short
              (~10-20s) spurts of audio.  However, on the receiving
              side, I never get an EOS on the SSRC's pad.  Can anyone
              tell me what I'm missing?  PNGs of the pipelines are at
              the link below, as are logs.</span><br style="font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant: normal; font-weight: normal; letter-spacing:
              normal; orphans: auto; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal; widows:
              auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
              class="">
          </div>
        </blockquote>
      </div>
      <br class="">
      <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="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>