<div dir="ltr"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Hi,</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">We want to run Gstreamer on our embedded PPC platform to record 8 simultaneous HD streams (720P 12fps)</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">We are using Gstreamer 1.2.1 (Linux)</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Our testing pipeline is :</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">gst-launch-1.0 rtspsrc location=rtsp://xxx ! rtph264depay ! h264parse ! queue2 ! matroskamux ! filesink location=file.mkv</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">CPU consumption of each pipeline is around 10%. We would like to decrease it to 5-7%.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Using gst-launch-1.0 rtspsrc location=rtsp://xxx ! fakesink we see a CPU consumption of 7%.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">That's the reason why we are focusing right now on rtspsrc optimization.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">On X86 we profiled the pipeline ( rtspsrc location=rtsp://xxx ! fakesink) using callgrind.</span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium"> </span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">We saw high CPU consumption in gst_rtp_jitter_buffer_loop. It also looks like it requires lot of pad push.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">According to the code and the doc, rtp data are proccessed inside RtpBin that use elements gstrtpsession, gstrtpssrcdemux, gstjitterbuffer, gstrtpptdemux.</span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium"> </span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">We defined buffer-mode to none (=0) to reduce calculation inside jitterbuffer. We also changed latency to a minimal value (1000) and enabled drop-on-latency.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Regarding our system, we would have a local network that link HD cameras and ppc recorder.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">My questions:</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">- Considering a local network dedicated to video streaming, would it be possible to completely remove jitterbuffer ?</span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium"> </span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">    </span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">- As RTP packets are processed by jitterbuffer from gstrtpssrcdemux to gstrtpptdemux, could we directly connect gstrtpssrcdemux to gstrtpptdemux ?</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">    </span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">- Would it makes sense to write a minimal gstjitterbuffer ?</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">- As we see lot of pad push, would it be a good point to gather all rtpbin sub-elements to one element and thus have less pads ?</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">- Any other ideas ;) ?</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Thanks,</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Eloi</span><br></div>