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