Hi all,<br><br>I am writing an application for udp client to receive the rtp payloaded packets.<br><br>The pipeline I use is on client and server is as below:<br>******************************************************************************************************************************<br>
SERVER:<br>gst-launch filesrc location=~/Desktop/h264-aac/<div id=":12k" class="ii gt">alien.mp4 ! qtdemux name=d \<br>d. ! queue ! rtph264pay ! udpsink port=1234 host=224.0.0.1 \<br>
d. ! queue ! rtpmp4apay ! udpsink port=1233 host=224.0.0.1<br><br>CLIENT:<br>gst-launch udpsrc uri=udp://<a href="http://224.0.0.1:1234/" target="_blank">224.0.0.1:1234</a>
caps="application/x-rtp, media=(string)video,
encoding-name=(string)H264, payload=(int)96" ! queue ! rtph264depay !
ffdec_h264 ! ffmpegcolorspace ! xvimagesink\<br>
udpsrc uri=udp://<a href="http://224.0.0.1:1233/" target="_blank">224.0.0.1:1233</a> caps="application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)MP4A-LATM, payload=(int)96" ! queue ! rtpmp4adepay ! faad ! audioconvert ! alsasink<br>
******************************************************************************************************************************<br><br>In my application I set the state of the pipeline to GST_STATE_PLAYING as below:<br><br>
===========================================================================<br> sres = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);<br> if (sres == GST_STATE_CHANGE_ASYNC) <br> {<br> gint timeout = 0;<br>
while (timeout < 5) {<br> sres = gst_element_get_state (pipeline, &new_state, &pending_state, <br> (1 * GST_SECOND));<br> g_print("GET state pipeline : new_state = %s pending_state = %s\n",<br>
gst_element_state_get_name (new_state), <br> gst_element_state_get_name (pending_state));<br> <br> timeout++;<br> }<br> }<br> else {<br> g_print ("Error changing pipeline state to PLAYING sres = %d\n", sres);<br>
return -1;<br> }<br>===========================================================================<br></div><br>But the state changes only to PAUSED and never to PLAYING. Could someone suggest me what could be done to change the pipeline state to PLAYING.<br>
<br>I had one more query about caps negotiation. How to dynamically set the caps on udpsrc element used on the CLIENT side?<br><br>Thanks in advance.<br>