v4l2transform: Add propose_allocation

This should remove 1 copy between the decoder and the transform.
This commit is contained in:
Nicolas Dufresne 2014-03-27 13:21:25 -04:00
parent 0488984f82
commit 527df8b888

View file

@ -316,8 +316,6 @@ activate_failed:
return GST_FLOW_ERROR; return GST_FLOW_ERROR;
} }
/* TODO */
#if 0
static gboolean static gboolean
gst_v4l2_transform_propose_allocation (GstBaseTransform * trans, gst_v4l2_transform_propose_allocation (GstBaseTransform * trans,
GstQuery * decide_query, GstQuery * query) GstQuery * decide_query, GstQuery * query)
@ -325,14 +323,17 @@ gst_v4l2_transform_propose_allocation (GstBaseTransform * trans,
GstV4l2Transform *self = GST_V4L2_TRANSFORM (trans); GstV4l2Transform *self = GST_V4L2_TRANSFORM (trans);
gboolean ret = FALSE; gboolean ret = FALSE;
/* FIXME propose alloc this need to be moved from src to v4l2object */ if (decide_query == NULL)
if (gst_v4l2_object_propose_allocation (self->v4l2output, query)) ret = TRUE;
else
ret = gst_v4l2_object_propose_allocation (self->v4l2output, query);
if (ret)
ret = GST_BASE_TRANSFORM_CLASS (parent_class)->propose_allocation (trans, ret = GST_BASE_TRANSFORM_CLASS (parent_class)->propose_allocation (trans,
query); decide_query, query);
return ret; return ret;
} }
#endif
/* copies the given caps */ /* copies the given caps */
static GstCaps * static GstCaps *
@ -604,11 +605,8 @@ gst_v4l2_transform_class_init (GstV4l2TransformClass * klass)
GST_DEBUG_FUNCPTR (gst_v4l2_transform_sink_event); GST_DEBUG_FUNCPTR (gst_v4l2_transform_sink_event);
base_transform_class->decide_allocation = base_transform_class->decide_allocation =
GST_DEBUG_FUNCPTR (gst_v4l2_transform_decide_allocation); GST_DEBUG_FUNCPTR (gst_v4l2_transform_decide_allocation);
/* TODO */
#if 0
base_transform_class->propose_allocation = base_transform_class->propose_allocation =
GST_DEBUG_FUNCPTR (gst_v4l2_transform_propose_allocation); GST_DEBUG_FUNCPTR (gst_v4l2_transform_propose_allocation);
#endif
base_transform_class->transform_caps = base_transform_class->transform_caps =
GST_DEBUG_FUNCPTR (gst_v4l2_transform_transform_caps); GST_DEBUG_FUNCPTR (gst_v4l2_transform_transform_caps);
base_transform_class->fixate_caps = base_transform_class->fixate_caps =