basetransform: Assume size is the same if no transform_size/get_unit_size
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>
Fri, 11 Jun 2010 22:46:30 +0000 (18:46 -0400)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 14 Jun 2010 08:52:22 +0000 (10:52 +0200)
Subclasses that don't implemen transform_size should be assumed to produce output
buffers of the same size.

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

libs/gst/base/gstbasetransform.c

index 56e997b..a42c65b 100644 (file)
@@ -544,6 +544,11 @@ gst_base_transform_transform_size (GstBaseTransform * trans,
     /* if there is a custom transform function, use this */
     ret = klass->transform_size (trans, direction, caps, size, othercaps,
         othersize);
+  } else if (klass->get_unit_size == NULL) {
+    /* if there is no transform_size and no unit_size, it means the
+     * element does not modify the size of a buffer */
+    *othersize = size;
+    ret = TRUE;
   } else {
     /* there is no transform_size function, we have to use the unit_size
      * functions. This method assumes there is a fixed unit_size associated with