<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR-CA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi gstreamer experts,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I'm using an imx6 dual plus on a custom board with the gstreamer1.0-imx-plugins to display some live CCTV camera feeds. I am finding that the hardware accelerated "imxvpudec" plugin used to decode H264 is introducing roughly a 4 frame
delay when compared with a software based implementation such as "avdec_h264"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now the problem is that the frame rate used by these feeds is fairly slow namely 6fps. So this amounts to a latency of roughly 666ms that gets added to the receive pipeline when using imxvpudec vs avdec_h264. If I accelerate the test
feed to 60fps, the latency diminishes accordingly…<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Since the final application needs to display 6 concurent streams using Qt, software H264 decoding can not be used as it would load the CPU too much. Neither can I increase the fps on the feeds.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I've reproduced the effect with the following pipelines:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Streaming PC:<o:p></o:p></p>
<p class="MsoNormal">------------------<o:p></o:p></p>
<p class="MsoNormal">launch-1.0 -v videotestsrc is-live=true ! clockoverlay time-format="%M:%S" halignment=left valignment=top shaded-background=true font-desc="Sans, 144" ! video/x-raw,width=640,height=480,framerate=6/1,profile=high ! x264enc bitrate=256
! video/x-h264 ! rtph264pay pt=96 ! udpsink host=239.0.12.1 port=5074 sync=false<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Receiving imx6 HW Decode:<o:p></o:p></p>
<p class="MsoNormal">------------------------------------<o:p></o:p></p>
<p class="MsoNormal">gst-launch-1.0 udpsrc uri=udp://239.0.12.1:5074 caps="application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264" ! rtph264depay ! h264parse ! imxvpudec ! imxeglvivsink
sync=false<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Receiving imx6 SW Decode:<o:p></o:p></p>
<p class="MsoNormal">-----------------------------------<o:p></o:p></p>
<p class="MsoNormal">gst-launch-1.0 udpsrc uri=udp://239.0.12.1:5074 caps="application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264" ! rtph264depay ! h264parse ! avdec_h264 ! imxeglvivsink
sync=false<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any thoughts in how to coherce the imxvpudec plugin to not introduce this (supposed) frame pipeline delay? Or is this a limitation on the imx VPU hardware or library?<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Olivier Bourgois<o:p></o:p></p>
</div>
</body>
</html>