sys/: Fixed a tricky bug. When caps renegotiation happens (only visible on ximagesink...
authorJulien Moutte <julien@moutte.net>
Mon, 28 Nov 2005 22:13:33 +0000 (22:13 +0000)
committerJulien Moutte <julien@moutte.net>
Mon, 28 Nov 2005 22:13:33 +0000 (22:13 +0000)
commitff7304769f2f5f6548cbbda3894b6d3c41e063fd
treeff6f4ec2994d1fc09ac1ba0be3ca2e68d2d62836
parent4ab53214007002d566ad13cfe50643738744bcb8
sys/: Fixed a tricky bug. When caps renegotiation happens (only visible on ximagesink but bug is in xv too) set_caps ...

Original commit message from CVS:
2005-11-28  Julien MOUTTE  <julien@moutte.net>

* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
(gst_ximagesink_setcaps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_setcaps): Fixed a tricky bug. When caps
renegotiation
happens (only visible on ximagesink but bug is in xv too)
set_caps was
destroying the internal x[v]image used to memcpy non locally
alloced
buffers so that it got renewed on next _chain. The issue is that
_expose will try to put that image as it reffed it in _put.
Using gst_buffer_unref instead of destroy fixes it !
ChangeLog
common
sys/ximage/ximagesink.c
sys/xvimage/xvimagesink.c