-2004-01-26 David Schleef <ds@schleef.org>
-
- reviewed by: <delete if not using a buddy>
-
- * docs/gst/tmpl/gstelement.sgml:
- * docs/gst/tmpl/gstplugin.sgml:
- * docs/gst/tmpl/gstreamer-unused.sgml:
- * docs/gst/tmpl/gstxml.sgml:
- * gst/gstelement.h:
- * gst/gstpad.c: (gst_pad_try_set_caps):
- * gst/gstqueue.c: (gst_queue_chain):
- * testsuite/caps/Makefile.am:
-
2004-01-26 Ronald Bultje <rbultje@ronald.bitfreak.net>
* docs/pwg/advanced_types.xml:
@code:
@message:
@debug:
-@...:
<!-- # Unused Parameters # -->
@element:
@error:
@gstelement: the object which received the signal.
@arg1: the error message
@arg2:
-<<<<<<< gstelement.sgml
-@:
-=======
-@:
-@:
->>>>>>> 1.59
@:
@:
@:
@origin:
@_gst_reserved:
+<!-- ##### FUNCTION gst_plugin_set_name ##### -->
+<para>
+
+</para>
+
+@plugin:
+@name:
+
+
<!-- ##### FUNCTION gst_plugin_get_name ##### -->
<para>
@Returns:
+<!-- ##### FUNCTION gst_plugin_get_longname ##### -->
+<para>
+
+</para>
+
+@plugin:
+@Returns:
+
+
<!-- ##### FUNCTION gst_plugin_get_filename ##### -->
<para>
@Returns:
-<!-- ##### FUNCTION gst_plugin_get_longname ##### -->
-<para>
-
-</para>
-
-@plugin:
-@Returns:
-
<!-- ##### FUNCTION gst_plugin_get_type_list ##### -->
<para>
@plugin:
@longname:
-<!-- ##### FUNCTION gst_plugin_set_name ##### -->
-<para>
-
-</para>
-
-@plugin:
-@name:
-
<!-- ##### FUNCTION gst_plugin_unload_all ##### -->
<para>
</para>
-@:
-@:
-@:
-
@gstxml: the object which received the signal.
@arg1:
@arg2:
</para>
-@gstxml: the object which received the signal.
-@arg1:
-@arg2:
+@:
+@:
+@:
#define GST_ELEMENT_CLOCK(obj) (((GstElement*)(obj))->clock)
#define GST_ELEMENT_PADS(obj) ((obj)->pads)
-#define gst_element_error(el, domain, code, message, debug, ...) \
-G_STMT_START { \
+#define gst_element_error(el, domain, code, message, debug) G_STMT_START { \
gst_element_error_full (GST_ELEMENT(el), \
GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \
_gst_element_error_printf message, \
_gst_element_error_printf debug, \
- __FILE__, GST_FUNCTION, __LINE__); \
-} G_STMT_END
+ __FILE__, GST_FUNCTION, __LINE__); } G_STMT_END
typedef struct _GstElementFactory GstElementFactory;
typedef struct _GstElementFactoryClass GstElementFactoryClass;
g_return_val_if_fail (GST_IS_REAL_PAD (pad), GST_PAD_LINK_REFUSED);
g_return_val_if_fail (!GST_FLAG_IS_SET (pad, GST_PAD_NEGOTIATING),
GST_PAD_LINK_REFUSED);
-
- /* setting non-fixed caps on a pad is not allowed */
- if (!gst_caps_is_fixed (caps)) {
- GST_CAT_INFO (GST_CAT_CAPS,
- "trying to set unfixed caps on pad %s:%s, not allowed",
- GST_DEBUG_PAD_NAME (pad));
- g_warning ("trying to set non fixed caps on pad %s:%s, not allowed",
- GST_DEBUG_PAD_NAME (pad));
-
- gst_caps_debug (caps, "unfixed caps");
- return GST_PAD_LINK_REFUSED;
- }
-
+
/* we allow setting caps on non-linked pads. It's ignored */
if (!GST_PAD_PEER (pad)) {
return GST_PAD_LINK_OK;
}
/* if the desired caps are already there, it's trivially ok */
- if (GST_PAD_CAPS (pad) && gst_caps_is_equal_fixed (caps,
- GST_PAD_CAPS (pad))) {
- return GST_PAD_LINK_OK;
+ if (GST_PAD_CAPS (pad)) {
+ GstCaps *intersection;
+ intersection = gst_caps_intersect (caps, GST_PAD_CAPS (pad));
+ if (!gst_caps_is_empty (intersection)) {
+ gst_caps_free (intersection);
+ return GST_PAD_LINK_OK;
+ }
+ gst_caps_free (intersection);
}
g_return_val_if_fail (GST_PAD_LINK_SRC (pad), GST_PAD_LINK_REFUSED);
* to make things read-only. Also keep our list uptodate. */
queue->cur_level.bytes -= GST_BUFFER_SIZE (data);
queue->cur_level.buffers --;
+ g_object_notify (G_OBJECT (queue), "current-level-buffers");
if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE)
queue->cur_level.time -= GST_BUFFER_DURATION (data);
/* Note that we only add buffers (not events) to the statistics */
if (GST_IS_BUFFER (data)) {
queue->cur_level.buffers++;
+ g_object_notify (G_OBJECT (queue), "current-level-buffers");
queue->cur_level.bytes += GST_BUFFER_SIZE (data);
if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE)
queue->cur_level.time += GST_BUFFER_DURATION (data);
* to make things read-only. Also keep our list uptodate. */
queue->cur_level.bytes -= GST_BUFFER_SIZE (data);
queue->cur_level.buffers --;
+ g_object_notify (G_OBJECT (queue), "current-level-buffers");
if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE)
queue->cur_level.time -= GST_BUFFER_DURATION (data);
/* Note that we only add buffers (not events) to the statistics */
if (GST_IS_BUFFER (data)) {
queue->cur_level.buffers++;
+ g_object_notify (G_OBJECT (queue), "current-level-buffers");
queue->cur_level.bytes += GST_BUFFER_SIZE (data);
if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE)
queue->cur_level.time += GST_BUFFER_DURATION (data);
intersect2 \
caps \
value_compare \
- value_intersect \
- it
+ value_intersect
tests_fail =
intersect2_LDADD = $(GST_LIBS)
intersect2_CFLAGS = $(GST_CFLAGS) $(XML_CFLAGS)
-it_LDADD = $(GST_LIBS)
-it_CFLAGS = $(GST_CFLAGS) $(XML_CFLAGS)
intersect2 \
caps \
value_compare \
- value_intersect \
- it
+ value_intersect
tests_fail =
intersect2_LDADD = $(GST_LIBS)
intersect2_CFLAGS = $(GST_CFLAGS) $(XML_CFLAGS)
-it_LDADD = $(GST_LIBS)
-it_CFLAGS = $(GST_CFLAGS) $(XML_CFLAGS)