From: <wt...@ke...> - 2008-08-18 09:59:23
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: wtay Date: Mon Aug 18 2008 09:59:33 UTC Log message: * libs/gst/base/gstbasetransform.c: (gst_base_transform_prepare_output_buffer): If the element is configured in passthrough mode but the prepare_output_buffer gave us a new output buffer, discard that buffer and reuse the input buffer. Modified files: . : ChangeLog libs/gst/base : gstbasetransform.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.4027&r2=1.4028 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/libs/gst/base/gstbasetransform.c.diff?r1=1.121&r2=1.122 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.4027 retrieving revision 1.4028 diff -u -d -r1.4027 -r1.4028 --- ChangeLog 15 Aug 2008 17:01:05 -0000 1.4027 +++ ChangeLog 18 Aug 2008 09:59:16 -0000 1.4028 @@ -1,3 +1,11 @@ +2008-08-18 Wim Taymans <wim...@co...> + + * libs/gst/base/gstbasetransform.c: + (gst_base_transform_prepare_output_buffer): + If the element is configured in passthrough mode but the + prepare_output_buffer gave us a new output buffer, discard that buffer + and reuse the input buffer. 2008-08-15 Wim Taymans <wim...@co...> Patch by: Ole André Vadla Ravnås <ole.andre.ravnas at tandberg com> Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/libs/gst/base/gstbasetransform.c,v retrieving revision 1.121 retrieving revision 1.122 diff -u -d -r1.121 -r1.122 --- gstbasetransform.c 14 Aug 2008 16:37:29 -0000 1.121 +++ gstbasetransform.c 18 Aug 2008 09:59:18 -0000 1.122 @@ -1236,6 +1236,13 @@ *out_buf = in_buf; } } else { + if (trans->passthrough && in_buf != *out_buf) { + /* we are asked to perform a passthrough transform but the input and + * output buffers are different. We have to discard the output buffer and + * reuse the input buffer. */ + GST_DEBUG_OBJECT (trans, "passthrough but different buffers"); + discard = TRUE; + } if (discard) { GST_DEBUG_OBJECT (trans, "discard buffer, reuse input buffer"); gst_buffer_unref (*out_buf); |