<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    I have a problem of connection between rtpbin and rtph264depay
    (maybe the problem is elsewhere).<br>
    Here is my pipelines, which executes correctly with gst-launch...<br>
    Talker machine :<br>
    gst-launch-1.0 rtpbin name=rtpbin filesrc location=video.mp4 !
    qtdemux name=d<br>
        d.audio_0 ! aacparse ! rtpmp4apay mtu=524 !
    rtpbin.send_rtp_sink_1<br>
        d.video_0 ! decodebin ! x264enc ! rtph264pay !
    rtpbin.send_rtp_sink_0<br>
        rtpbin.send_rtp_src_1 ! udpsink port=5004 host=$IP sync=false
    async=false<br>
        rtpbin.send_rtcp_src_1 ! udpsink port=5005 host=$IP sync=false
    async=false <br>
        udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1<br>
        rtpbin.send_rtp_src_0 ! udpsink port=5000 host=$IP sync=true
    async=false<br>
        rtpbin.send_rtcp_src_0 ! udpsink port=5001 host=$IP sync=false
    async=false<br>
        udpsrc port=5003 ! rtpbin.recv_rtcp_sink_0<br>
    <br>
    Listener machine:<br>
    gst-launch-1.0 rtpbin name=rtpbin<br>
       udpsrc caps=$VCAPS port=5000 ! rtpbin.recv_rtp_sink_0<br>
        <b>rtpbin.recv_rtp_src_0 ! rtph264depay</b> ! decodebin !
    videoconvert ! autovideosink<br>
        udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0<br>
        rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=$IP sync=false
    async=false<br>
        udpsrc caps=$ACAPS port=5004 ! rtpbin.recv_rtp_sink_1<br>
        rtpbin.send_rtp_src_1 ! rtpmp4adepay ! avdec_aac ! audioconvert
    ! alsasink<br>
        udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1<br>
        rtpbin.send_rtcp_src_1 !<br>
        udpsink port=5007 host=$IP sync=false async=false<br>
    <br>
    ...but not in an application. The problem is on listener side:
    rtph264depay refuse to link to recv_rtp_src_0 of rtpbin, instead it
    try to link with recv_rtp_src_1, which is not correct, because that
    is an "audio pad (consequently, the error code -4 is returned,
    meaning "pads do not have common format". Naturally, there is no
    problem for rtpmp4adepay. And, if I connect first rtpmp4adepay, it
    normally uses the pad recv_rtp_src_0, but rtph264depay want to use
    the same pad (why?), and then the error code -2 is returned, meaning
    "pad was already linked".  <br>
    <br>
    To make the links, I use the signal "pad-added" with
    g_signal_connect, and in the callback, I use gst_element_link to
    make the link. I have no problem with other links...<br>
            g_signal_connect(recv_rtpbin, "pad-added",
    G_CALLBACK(psa_listener_pad_cb), depay_video);<br>
            g_signal_connect(recv_rtpbin, "pad-added",
    G_CALLBACK(psa_listener_pad_cb), depay_audio);<br>
    <br>
    As recv_rtp_src_1 is a audio pad, then incompatible with
    rtph264depay, how to force linking of rtph264depay to a specific pad
    (here recv_rtp_src_0) for this plugin?<br>
    <br>
    Else have you an idea of the problem?<br>
    <br>
    Thanks,<br>
    Philippe<br>
    <div class="moz-signature"><br>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div class="moz-signature">
        <div class="moz-signature">
          <div class="moz-signature">
            <meta http-equiv="content-type" content="text/html;
              charset=UTF-8">
            <meta http-equiv="content-type" content="text/html;
              charset=UTF-8">
            <title></title>
            <meta http-equiv="content-type" content="text/html;
              charset=UTF-8">
          </div>
        </div>
      </div>
    </div>
  </body>
</html>