<div dir="ltr">Hi Peter,<div><br></div><div>I found the problem. In v4l2src, four buffers are acquired from the UVC driver, and each is mapped to user space and each wrapped in a GstMemory object which is then appended to a GstBuffer. However, in v4l2src gst_buffer_resize() can be called on a GstBuffer and this function allocates a new GstMemory object with an appropriately sized data area and copies the contents of the current GstMemory object's data area in to it. The old GstMemory object with a data area comprised of one of the four buffers previously acquired from the UVC driver is then replaced by the new GstMemory object whose data area was allocated in user space of which the UVC has no knowledge. The replaced GstMemory object is unreferenced (deallocated) and the UVC driver buffer is orphaned and it's lights out for the pipeline. I was able to hack a fix by removing the to instances of gst_buffer_resize() and placing the real size from vbuffer.bytesused in the GstBuffer metadata in v4l2src and then retrieving it from the GstBuffer metadata in uvch264src. I cannot think of a proper way to fix this right now.</div>
<div><br></div><div>Best Regards,</div><div><br></div><div>Rob</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 9, 2013 at 3:39 PM, Robert Krakora <span dir="ltr"><<a href="mailto:rob.krakora@messagenetsystems.com" target="_blank">rob.krakora@messagenetsystems.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Peter,<div><br></div><div>Yes, I made an array of garbage so that GstBuffer would not complain...v4l2src places a v4l2_buffer in the GstBuffer meta data as well as a pointer to the real memory that contains the JPEG data. When the GstBuffer gets to the uvch264src plugin, I modified the source to retrieve a pointer to the real memory containing the JPEG data from the GstBuffer meta data.</div>
<div><br></div><div>The difference between what is done in regards to v4l2src versus other plugins that I know of is that buffers are allocated via the UVC video driver from kernel space, mapped to user space and wrapped in a GstBuffer.</div>
<div><br></div><div>Best Regards,</div><div><br></div><div>Rob</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 9, 2013 at 3:34 PM, Peter Rennert <span dir="ltr"><<a href="mailto:p.rennert@cs.ucl.ac.uk" target="_blank">p.rennert@cs.ucl.ac.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Rob,<br>
<br>
I think GstBuffers and GstMemory goes far beyond my knowledge
about gstreamer. But if it would be a general error related to
GstBuffer and GstMemory, would that not lead to other applications
fail as well after some time?<br>
<br>
But what you were saying is that you can insert as often as you
want "fake" (but still valid) JPEG data into v4l2src and it will
not crash? I did not even try yet to capture from the cam with
v4l2. Did you try that?<br>
<br>
I was also thinking to try to stream a video with v4l2sink and
capture it using uvch264src (not sure if they are compatitble). Do
you think that should crash as well? I am sorry its getting late
here. I will try and do some experiments tomorrow on that.<div><div><br>
<br>
<br>
<br>
On 08/09/2013 08:03 PM, Robert Krakora wrote:<br>
</div></div></div><div><div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>I further modified v4l2src to pass a static dummy array
(instead of the real memory) wrapped in the GstBuffer with a
pointer to the real memory (as usual) in the meta data of the
GstBuffer. When the GstBuffer arrived at uvch264src I pluck
the real pointer out of the meta data in the chain function
and the JPEG parsing is not failing. I really, really think
that there is an issue with GstBuffer and/or GstMemory
corrupting memory.</div>
<div><br>
</div>
<div>Best Regards,</div>
<div><br>
</div>
<div>Rob</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Fri, Aug 9, 2013 at 9:15 AM, Robert
Krakora <span dir="ltr"><<a href="mailto:rob.krakora@messagenetsystems.com" target="_blank">rob.krakora@messagenetsystems.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>I placed the JPEG parse code in the UVC driver,
v4l2src and uvch264src plugins. The JPEG parse code did
not fail in the UVC driver but it did in the v4l2src and
uvch264src plugins. In the v4l2src plugin I noticed
that a pointer to the memory mapped form kernel space
was not only wrapped in a GstBuffer but also placed in
it's meta data. I then used the pointer that was placed
in the meta data as the pointer acted on by the JPEG
parse code and then the JPEG parse code in the v4l2src
plugin no longer failed (i.e. I removed the
gst_buffer_map() and gst_buffer_unmap() calls from
around the JPEG parse code in v4l2src and just used the
pointer from the meta data of the GstBuffer). I am
thinking that there is a bug or bugs in the GstMemory
class where memory is being merged, moved and replaced
that results in memory corruption. I compared UVC
driver logs from the JPEG parse code and uvch264src
plugin logs from the JPEG parse code and everything
jives segment size wise in regard to the first segment
encountered in the buffer until the failure where the
sizes of the first segments in both logs do not match
each other.</div>
<div><br>
</div>
<div>Best Regards,</div>
<div><br>
</div>
<div>Rob</div>
<div><br>
</div>
</div>
<div class="gmail_extra">
<div>
<div><br>
<br>
<div class="gmail_quote">On Fri, Aug 9, 2013 at 7:45
AM, Peter Rennert <span dir="ltr"><<a href="mailto:p.rennert@cs.ucl.ac.uk" target="_blank">p.rennert@cs.ucl.ac.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi
Rob,<br>
<br>
Is there a way for you to print both buffers
(uvch264src and UVC Driver) out and compare them?<br>
<br>
Maybe the v4l2src inserts some kind of metadata in
the buffer at some time stamps. Or maybe just
modifies somehow the two bytes after the first
0xff 0xe4.<br>
<br>
If that is the case then this line
(gst_uvc_h264_mjpg_demux_chain: 498):<br>
<br>
segment_size = GUINT16_FROM_BE (*((guint16
*) (info.data + i + 2)));<br>
<br>
<br>
will set the segment_size wrong.<br>
<br>
However, I compared your first segment size with
the one I've got earlier (email from the 25/07).
They are different. So whatever those bytes are
they are not static. It just pops into my mind
that perhaps the v4l2 swallows first bytes of the
stream. In this case the 0xff 0xe4 that the
uvch264src detects are actually image data rather
than part of the metadata.<br>
<br>
What puzzles me as well is that the first segment
size is parsed wrong and still it fails at the
last segment. Which is weird. I would expect that
if it gets a too large first segment it will
parse/copy too much of the buffer as the first
segment. The result should be that it would not be
able to find (i.e. skip) the second APP4 marker,
including its segment size tag and continue with
the third one. This is because i in the loop is
incremented with the segment_size to avoid looping
through the entire buffer in order to find the
APP4 markers (line 648).<span><font color="#888888"><br>
<br>
Peter</font></span>
<div>
<div><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
</div>
</div>
<div>-- <br>
<div dir="ltr">
<table cellpadding="2" cellspacing="0" width="426">
<colgroup><col width="422"></colgroup><tbody>
<tr>
<td style="border:none;padding:0in" valign="TOP" width="422">
<p><font face="Arial, sans-serif"><font size="4">Rob Krakora</font><font size="4">,</font><br>
Senior Software Engineer</font></p>
<p><font face="Arial, sans-serif">MessageNet
Systems<br>
101 E Carmel Dr, Suite 105<br>
Carmel, IN 46032</font></p>
<p><a href="http://www.messagenetcommunicationsystems.com/?utm_source=email+signature&utm_medium=email&utm_campaign=email+signature+to+homepage" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
</font><a href="mailto:rob.krakora@messagenetsystems.com" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">Rob.Krakora@MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
P: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial,
sans-serif">317.566.1677</font></font></a><font face="Arial, sans-serif">, 21</font><font face="Arial, sans-serif">2</font><font face="Arial, sans-serif"><br>
F: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial,
sans-serif">317.663.0808</font></font></a></p>
</td>
</tr>
<tr>
<td style="border-top-width:1px;border-style:solid none none;border-top-color:rgb(0,0,0);padding:0.02in 0in 0in" valign="TOP" width="422">
<p><font face="Arial, sans-serif"><font style="font-size:8pt">For the latest
news, information, and blogs, please be
sure to visit, follow, and like us...</font></font></p>
<p><font color="#1155cc"><a href="http://www.messagenetcommunicationsystems.com/get-the-message-out-blog/?utm_source=email+signature&utm_medium=email&utm_campaign=gmail+signature+to+blog" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_1406337e8f518bd3_SafeHtmlFilter_14040bc6244eae96_graphics46" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.youtube.com/user/MessageNetConnection/feed" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_1406337e8f518bd3_SafeHtmlFilter_14040bc6244eae96_graphics47" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.linkedin.com/company/messagenet-systems" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_1406337e8f518bd3_SafeHtmlFilter_14040bc6244eae96_graphics48" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://twitter.com/MessageNet" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_1406337e8f518bd3_SafeHtmlFilter_14040bc6244eae96_graphics49" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.facebook.com/MessageNetsystems" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_1406337e8f518bd3_SafeHtmlFilter_14040bc6244eae96_graphics50" align="BOTTOM" border="0" height="34" width="34"></a></font></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<table cellpadding="2" cellspacing="0" width="426">
<colgroup><col width="422"></colgroup><tbody>
<tr>
<td style="border:none;padding:0in" valign="TOP" width="422">
<p><font face="Arial, sans-serif"><font size="4">Rob
Krakora</font><font size="4">,</font><br>
Senior Software Engineer</font></p>
<p><font face="Arial, sans-serif">MessageNet Systems<br>
101 E Carmel Dr, Suite 105<br>
Carmel, IN 46032</font></p>
<p><a href="http://www.messagenetcommunicationsystems.com/?utm_source=email+signature&utm_medium=email&utm_campaign=email+signature+to+homepage" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
</font><a href="mailto:rob.krakora@messagenetsystems.com" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">Rob.Krakora@MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
P: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.566.1677</font></font></a><font face="Arial, sans-serif">, 21</font><font face="Arial, sans-serif">2</font><font face="Arial, sans-serif"><br>
F: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.663.0808</font></font></a></p>
</td>
</tr>
<tr>
<td style="border-top-width:1px;border-style:solid none none;border-top-color:rgb(0,0,0);padding:0.02in 0in 0in" valign="TOP" width="422">
<p><font face="Arial, sans-serif"><font style="font-size:8pt">For the latest news,
information, and blogs, please be sure to visit,
follow, and like us...</font></font></p>
<p><font color="#1155cc"><a href="http://www.messagenetcommunicationsystems.com/get-the-message-out-blog/?utm_source=email+signature&utm_medium=email&utm_campaign=gmail+signature+to+blog" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_SafeHtmlFilter_14040bc6244eae96_graphics46" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.youtube.com/user/MessageNetConnection/feed" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_SafeHtmlFilter_14040bc6244eae96_graphics47" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.linkedin.com/company/messagenet-systems" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_SafeHtmlFilter_14040bc6244eae96_graphics48" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://twitter.com/MessageNet" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_SafeHtmlFilter_14040bc6244eae96_graphics49" align="BOTTOM" border="0" height="34" width="34"></a> <a href="http://www.facebook.com/MessageNetsystems" style="color:rgb(17,85,204)" target="_blank"><img name="14064976736d8980_1406492e9177925d_SafeHtmlFilter_14040bc6244eae96_graphics50" align="BOTTOM" border="0" height="34" width="34"></a></font></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table width="426" cellpadding="2" cellspacing="0"><colgroup><col width="422"></colgroup><tbody><tr><td width="422" valign="TOP" style="border:none;padding:0in">
<p><font face="Arial, sans-serif"><font size="4">Rob Krakora</font><font size="4">,</font><br>Senior Software Engineer</font></p><p><font face="Arial, sans-serif">MessageNet Systems<br>101 E Carmel Dr, Suite 105<br>Carmel, IN 46032</font></p>
<p><a href="http://www.messagenetcommunicationsystems.com/?utm_source=email+signature&utm_medium=email&utm_campaign=email+signature+to+homepage" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
</font><a href="mailto:rob.krakora@messagenetsystems.com" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">Rob.Krakora@MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
P: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.566.1677</font></font></a><font face="Arial, sans-serif">, 21</font><font face="Arial, sans-serif">2</font><font face="Arial, sans-serif"><br>
F: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.663.0808</font></font></a></p></td></tr><tr><td width="422" valign="TOP" style="border-top-width:1px;border-style:solid none none;border-top-color:rgb(0,0,0);padding:0.02in 0in 0in">
<p><font face="Arial, sans-serif"><font style="font-size:8pt">For the latest news, information, and blogs, please be sure to visit, follow, and like us...</font></font></p><p><font color="#1155cc"><a href="http://www.messagenetcommunicationsystems.com/get-the-message-out-blog/?utm_source=email+signature&utm_medium=email&utm_campaign=gmail+signature+to+blog" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetcommunicationsystems.com/wp-content/uploads/2013/07/MessageNet_Logo_200x200-e1374867138718.jpg" name="14064976736d8980_SafeHtmlFilter_14040bc6244eae96_graphics46" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.youtube.com/user/MessageNetConnection/feed" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/youtube.png" name="14064976736d8980_SafeHtmlFilter_14040bc6244eae96_graphics47" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.linkedin.com/company/messagenet-systems" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/linkedin.png" name="14064976736d8980_SafeHtmlFilter_14040bc6244eae96_graphics48" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://twitter.com/MessageNet" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/twitter.png" name="14064976736d8980_SafeHtmlFilter_14040bc6244eae96_graphics49" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.facebook.com/MessageNetsystems" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/facebook.png" name="14064976736d8980_SafeHtmlFilter_14040bc6244eae96_graphics50" align="BOTTOM" width="34" height="34" border="0"></a></font></p>
</td></tr></tbody></table></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table width="426" cellpadding="2" cellspacing="0"><colgroup><col width="422"></colgroup><tbody><tr><td width="422" valign="TOP" style="border:none;padding:0in">
<p><font face="Arial, sans-serif"><font size="4">Rob Krakora</font><font size="4">,</font><br>Senior Software Engineer</font></p><p><font face="Arial, sans-serif">MessageNet Systems<br>101 E Carmel Dr, Suite 105<br>Carmel, IN 46032</font></p>
<p><a href="http://www.messagenetcommunicationsystems.com/?utm_source=email+signature&utm_medium=email&utm_campaign=email+signature+to+homepage" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
</font><a href="mailto:rob.krakora@messagenetsystems.com" style="color:rgb(17,85,204)" target="_blank"><font color="#1155cc"><font face="Arial, sans-serif">Rob.Krakora@MessageNetSystems.com</font></font></a><font face="Arial, sans-serif"><br>
P: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.566.1677</font></font></a><font face="Arial, sans-serif">, 21</font><font face="Arial, sans-serif">2</font><font face="Arial, sans-serif"><br>
F: </font><a style="color:rgb(17,85,204)"><font color="#1155cc"><font face="Arial, sans-serif">317.663.0808</font></font></a></p></td></tr><tr><td width="422" valign="TOP" style="border-top-width:1px;border-style:solid none none;border-top-color:rgb(0,0,0);padding:0.02in 0in 0in">
<p><font face="Arial, sans-serif"><font style="font-size:8pt">For the latest news, information, and blogs, please be sure to visit, follow, and like us...</font></font></p><p><font color="#1155cc"><a href="http://www.messagenetcommunicationsystems.com/get-the-message-out-blog/?utm_source=email+signature&utm_medium=email&utm_campaign=gmail+signature+to+blog" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetcommunicationsystems.com/wp-content/uploads/2013/07/MessageNet_Logo_200x200-e1374867138718.jpg" name="SafeHtmlFilter_14040bc6244eae96_graphics46" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.youtube.com/user/MessageNetConnection/feed" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/youtube.png" name="SafeHtmlFilter_14040bc6244eae96_graphics47" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.linkedin.com/company/messagenet-systems" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/linkedin.png" name="SafeHtmlFilter_14040bc6244eae96_graphics48" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://twitter.com/MessageNet" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/twitter.png" name="SafeHtmlFilter_14040bc6244eae96_graphics49" align="BOTTOM" width="34" height="34" border="0"></a> <a href="http://www.facebook.com/MessageNetsystems" style="color:rgb(17,85,204)" target="_blank"><img src="http://www.messagenetsystems.com/images/socialmediaicons/32/facebook.png" name="SafeHtmlFilter_14040bc6244eae96_graphics50" align="BOTTOM" width="34" height="34" border="0"></a></font></p>
</td></tr></tbody></table></div>
</div>