[Bug 695655] audiovisualizer: crash while clearing video frame

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Mar 12 18:05:41 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=695655
  GStreamer | gst-plugins-bad | 1.0.5

Tim-Philipp Müller <t.i.m> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |t.i.m at zen.co.uk
         Resolution|                            |FIXED
   Target Milestone|HEAD                        |1.0.6

--- Comment #5 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2013-03-13 01:05:34 UTC ---
Thanks, pushed:

commit c66fd54e78fbc777e928ad82d6cb5064676ab7ea
Author: Greg Rutz <greg at gsr-tek.com>
Date:   Mon Mar 11 21:55:28 2013 -0600

    audiovisualizer: fix improper video frame clear operation

    The current code is memsetting the GstVideoFrame.data address to 0s (which
    causes a segfault). This member is actually an array of data buffers (one
for
    each plane).  This fix iterates over each data plane to clear them all.

    https://bugzilla.gnome.org/show_bug.cgi?id=695655

It actually occurred to me that it's still not 100% correct, but it will work
fine for all cases we care about here (in case you wonder, it's e.g. possible
that we are operating on a buffer that represents part of a larger picture, so
has a large stride, and we shouldn't overwrite the 'padding' data then, because
that's other parts of the image not exposed here; so really we need to clear
line-by-line to accommodate that. And then memsetting 0s only works for RGB,
not for YUV, say. But that can all be handled in a generic _clear_frame()
function some day).

Committed same fix to copy in libvisual in -base as well:


commit c480bac5b7c9628f97d2459bbde534abd219e5c6
Author: Greg Rutz <greg at gsr-tek.com>
Date:   Mon Mar 11 21:55:28 2013 -0600

    libvisual: fix improper video frame clear operation

    The current code is memsetting the GstVideoFrame.data address to 0s (which
    causes a segfault). This member is actually an array of data buffers (one
for
    each plane).  This fix iterates over each data plane to clear them all.

    https://bugzilla.gnome.org/show_bug.cgi?id=695655

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list