mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
gst/base/gstbasetransform.c: passthrough elements can even do inplace on non writable buffers (as they don't touch th...
Original commit message from CVS: * gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer): passthrough elements can even do inplace on non writable buffers (as they don't touch them).
This commit is contained in:
parent
f02b655fc0
commit
cd599c3718
3 changed files with 20 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2005-08-31 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
|
||||||
|
passthrough elements can even do inplace on non writable
|
||||||
|
buffers (as they don't touch them).
|
||||||
|
|
||||||
2005-08-31 Stefan Kost <ensonic@users.sf.net>
|
2005-08-31 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* check/gst-libs/controller.c: (gst_test_mono_source_get_property),
|
* check/gst-libs/controller.c: (gst_test_mono_source_get_property),
|
||||||
|
|
|
@ -815,8 +815,13 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
|
||||||
GST_LOG_OBJECT (trans, "... and offset NONE");
|
GST_LOG_OBJECT (trans, "... and offset NONE");
|
||||||
|
|
||||||
if (trans->in_place) {
|
if (trans->in_place) {
|
||||||
/* check if we can do inplace and the buffer is writable */
|
/* passthrough elements or when the buffer is writable
|
||||||
if (bclass->transform_ip && gst_buffer_is_writable (inbuf)) {
|
* can be performed with the _ip method */
|
||||||
|
gboolean may_do_in_place = gst_buffer_is_writable (inbuf) ||
|
||||||
|
trans->passthrough;
|
||||||
|
|
||||||
|
/* check if we can and may do inplace */
|
||||||
|
if (bclass->transform_ip && may_do_in_place) {
|
||||||
/* in place transform and subclass supports method */
|
/* in place transform and subclass supports method */
|
||||||
GST_LOG_OBJECT (trans, "doing inplace transform");
|
GST_LOG_OBJECT (trans, "doing inplace transform");
|
||||||
gst_buffer_ref (inbuf);
|
gst_buffer_ref (inbuf);
|
||||||
|
|
|
@ -815,8 +815,13 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
|
||||||
GST_LOG_OBJECT (trans, "... and offset NONE");
|
GST_LOG_OBJECT (trans, "... and offset NONE");
|
||||||
|
|
||||||
if (trans->in_place) {
|
if (trans->in_place) {
|
||||||
/* check if we can do inplace and the buffer is writable */
|
/* passthrough elements or when the buffer is writable
|
||||||
if (bclass->transform_ip && gst_buffer_is_writable (inbuf)) {
|
* can be performed with the _ip method */
|
||||||
|
gboolean may_do_in_place = gst_buffer_is_writable (inbuf) ||
|
||||||
|
trans->passthrough;
|
||||||
|
|
||||||
|
/* check if we can and may do inplace */
|
||||||
|
if (bclass->transform_ip && may_do_in_place) {
|
||||||
/* in place transform and subclass supports method */
|
/* in place transform and subclass supports method */
|
||||||
GST_LOG_OBJECT (trans, "doing inplace transform");
|
GST_LOG_OBJECT (trans, "doing inplace transform");
|
||||||
gst_buffer_ref (inbuf);
|
gst_buffer_ref (inbuf);
|
||||||
|
|
Loading…
Reference in a new issue