<div>Hi, all</div>
<div>&nbsp;</div>
<div>I am really wandering whether GStreamer supports transfering buffer with padding or stride.</div>
<div>How to send information to post element that only pats of buffer is effective.</div>
<div>Does caps negotiations support this function.</div>
<div>&nbsp;</div>
<div>If gstreamer can not support this feature, one aditional memcpy can not be saved, which may down 3~4fps.</div>
<div>&nbsp;</div>
<div>By the way OpenMAX support this feature.</div>
<div>Here is structure, </div>
<div>&nbsp;</div>
<div>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="blue" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: NSimSun">typedef</span></font><font face="新宋体" size="1">
<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"> <font color="blue"><span style="COLOR: blue">struct</span></font> OMX_VIDEO_PORTDEFINITIONTYPE {</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_STRING cMIMEType;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_NATIVE_DEVICETYPE pNativeRender;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><b><font face="新宋体" size="1"><span lang="EN-US" style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_U32 nFrameWidth;</span></font></b></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_U32 nFrameHeight;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><b><font face="新宋体" size="1"><span lang="EN-US" style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_S32 nStride;</span></font></b></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_U32 nSliceHeight;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_U32 nBitrate;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_U32 xFramerate;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_BOOL bFlagErrorConcealment;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_VIDEO_CODINGTYPE eCompressionFormat;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_COLOR_FORMATTYPE eColorFormat;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">&nbsp;&nbsp;&nbsp; OMX_NATIVE_WINDOWTYPE pNativeWindow;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">} OMX_VIDEO_PORTDEFINITIONTYPE;</span></font></p>
<p class="MsoNormal"><font face="Arial" color="navy" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">*&nbsp; nFrameWidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Width of frame to be used on channel if 
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uncompressed format is used.&nbsp; Use 0 for unknown,
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; don&#39;t care or variable
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp; nFrameHeight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Height of frame to be used on channel if 
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uncompressed format is used. Use 0 for unknown,
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; don&#39;t care or variable
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp; nStride&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Number of bytes per span of an image 
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (i.e. indicates the number of bytes to get
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from span N to span N+1, where negative stride
</span></font></p>
<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><font face="新宋体" color="green" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: NSimSun">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; indicates the image is bottom up
</span></font></p><br>Thanks</div>
<div>&nbsp;</div>
<div><br>&nbsp;</div>
<div><span class="gmail_quote">On 7/3/07, <b class="gmail_sendername">zhangfei gao</b> &lt;<a href="mailto:zhangfei.gao@gmail.com">zhangfei.gao@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<p>Hi,&nbsp; all</p>
<div>Does gstreamer support sub-square transfering.</div>
<div><br>For example the original data is a square(0, 0, 100, 100), with start point (0, 0), width is 100, height is 100. </div>
<div>Now I just transfer (0, 0, 50, 50), only the left half square from one plugin to the later plugin.</div>
<div>Is there any method or how to negotiate. </div>
<div>Does standard caps has&nbsp;any field to describe such information.</div>
<div><br>The reason is my codec is from third party, with a limitation its output has padding inside. <br>If standard buffer transering is without padding, memcpy is unavoidable.</div>
<div><br>Still, I think transfering sub-square is needed in many situations.<br>For example, if user want to zoom interest area, there must be some method other than memcpy.</div>
<div>&nbsp;</div>
<div>Could you share some ideas.</div>
<div><br>Thanks in advance</div></blockquote></div><br>